Skip to content

Commit

Permalink
feat: add ndarray/base/to-reversed
Browse files Browse the repository at this point in the history
PR-URL: #2861
Ref: #2656
Co-authored-by: Athan Reines <[email protected]>
Reviewed-by: Athan Reines <[email protected]>
  • Loading branch information
headlessNode and kgryte authored Sep 7, 2024
1 parent 1233cc4 commit 8bcb738
Show file tree
Hide file tree
Showing 12 changed files with 1,227 additions and 434 deletions.
436 changes: 2 additions & 434 deletions lib/node_modules/@stdlib/ndarray/base/reverse/docs/types/index.d.ts

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import reverse = require( './index' );
reverse( empty( 'uint16', sh, order ), false ); // $ExpectType uint16ndarray
reverse( empty( 'uint8', sh, order ), false ); // $ExpectType uint8ndarray
reverse( empty( 'uint8c', sh, order ), false ); // $ExpectType uint8cndarray
reverse( empty( 'generic', sh, order ), false ); // $ExpectType genericndarray<number>

reverse( empty( 'float64', sh, order ), true ); // $ExpectType float64ndarray
reverse( empty( 'float32', sh, order ), true ); // $ExpectType float32ndarray
Expand All @@ -50,6 +51,7 @@ import reverse = require( './index' );
reverse( empty( 'uint16', sh, order ), true ); // $ExpectType uint16ndarray
reverse( empty( 'uint8', sh, order ), true ); // $ExpectType uint8ndarray
reverse( empty( 'uint8c', sh, order ), true ); // $ExpectType uint8cndarray
reverse( empty( 'generic', sh, order ), false ); // $ExpectType genericndarray<number>
}

// The compiler throws an error if the function is provided a first argument which is not an ndarray...
Expand Down
171 changes: 171 additions & 0 deletions lib/node_modules/@stdlib/ndarray/base/to-reversed/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<!--
@license Apache-2.0
Copyright (c) 2024 The Stdlib Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

# toReversed

> Return a new ndarray where the order of elements of an input ndarray is reversed along each dimension.
<!-- Section to include introductory text. Make sure to keep an empty line after the intro `section` element and another before the `/section` close. -->

<section class="intro">

</section>

<!-- /.intro -->

<!-- Package usage documentation. -->

<section class="usage">

## Usage

```javascript
var toReversed = require( '@stdlib/ndarray/base/to-reversed' );
```

#### toReversed( x )

Returns a new ndarray where the order of elements of an input ndarray is reversed along each dimension.

```javascript
var ndarray = require( '@stdlib/ndarray/ctor' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );

var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];
var shape = [ 3, 2 ];
var strides = [ 2, 1 ];
var offset = 0;

var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );
// returns <ndarray>

var sh = x.shape;
// returns [ 3, 2 ]

var arr = ndarray2array( x );
// returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]

var y = toReversed( x );
// returns <ndarray>

sh = y.shape;
// returns [ 3, 2 ]

arr = ndarray2array( y );
// returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]
```

The function accepts the following arguments:

- **x**: input ndarray.

</section>

<!-- /.usage -->

<!-- Package usage notes. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->

<section class="notes">

</section>

<!-- /.notes -->

<!-- Package usage examples. -->

<section class="examples">

## Examples

<!-- eslint no-undef: "error" -->

```javascript
var array = require( '@stdlib/ndarray/array' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var zeroTo = require( '@stdlib/array/base/zero-to' );
var toReversed = require( '@stdlib/ndarray/base/to-reversed' );

// Create a linear ndarray buffer:
var buf = zeroTo( 16 );

// Create a one-dimensional ndarray:
var x1 = array( buf, {
'shape': [ 16 ]
});

// Reverse element order:
var y1 = toReversed( x1, false );
// returns <ndarray>

var a1 = ndarray2array( y1 );
// returns [ 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ]

// Create a two-dimensional ndarray:
var x2 = array( buf, {
'shape': [ 4, 4 ]
});

// Reverse element order:
var y2 = toReversed( x2, false );
// returns <ndarray>

var a2 = ndarray2array( y2 );
// returns [ [ 15, 14, 13, 12 ], [ 11, 10, 9, 8 ], [ 7, 6, 5, 4 ], [ 3, 2, 1, 0 ] ]

// Create a three-dimensional ndarray:
var x3 = array( buf, {
'shape': [ 2, 4, 2 ]
});

// Reverse element order:
var y3 = toReversed( x3, false );
// returns <ndarray>

var a3 = ndarray2array( y3 );
// returns [ [ [ 15, 14 ], [ 13, 12 ], [ 11, 10 ], [ 9, 8 ] ], [ [ 7, 6 ], [ 5, 4 ], [ 3, 2 ], [ 1, 0 ] ] ]
```

</section>

<!-- /.examples -->

<!-- Section to include cited references. If references are included, add a horizontal rule *before* the section. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->

<section class="references">

</section>

<!-- /.references -->

<!-- Section for related `stdlib` packages. Do not manually edit this section, as it is automatically populated. -->

<section class="related">

</section>

<!-- /.related -->

<!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->

<section class="links">

</section>

<!-- /.links -->
Loading

0 comments on commit 8bcb738

Please sign in to comment.