Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ bench( format( '%s::1d,base', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2 ], 'row-major' )
Expand Down Expand Up @@ -72,6 +73,7 @@ bench( format( '%s::1d,non-base', pkg ), function benchmark( b ) {
values = [
empty( [ 2 ], { 'dtype': 'float64' } ),
empty( [ 2 ], { 'dtype': 'float32' } ),
empty( [ 2 ], { 'dtype': 'float16' } ),
empty( [ 2 ], { 'dtype': 'int32' } ),
empty( [ 2 ], { 'dtype': 'complex128' } ),
empty( [ 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -106,6 +108,7 @@ bench( format( '%s::1d,base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2 ], 'row-major' )
Expand Down Expand Up @@ -142,6 +145,7 @@ bench( format( '%s::1d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
empty( [ 2 ], { 'dtype': 'float64' } ),
empty( [ 2 ], { 'dtype': 'float32' } ),
empty( [ 2 ], { 'dtype': 'float16' } ),
empty( [ 2 ], { 'dtype': 'int32' } ),
empty( [ 2 ], { 'dtype': 'complex128' } ),
empty( [ 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -178,6 +182,7 @@ bench( format( '%s::2d,base', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -210,6 +215,7 @@ bench( format( '%s::2d,non-base', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -244,6 +250,7 @@ bench( format( '%s::2d,base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -280,6 +287,7 @@ bench( format( '%s::2d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -316,6 +324,7 @@ bench( format( '%s::3d,base', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -348,6 +357,7 @@ bench( format( '%s::3d,non-base', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -382,6 +392,7 @@ bench( format( '%s::3d,base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -418,6 +429,7 @@ bench( format( '%s::3d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -454,6 +466,7 @@ bench( format( '%s::4d,base', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -486,6 +499,7 @@ bench( format( '%s::4d,non-base', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -520,6 +534,7 @@ bench( format( '%s::4d,base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -556,6 +571,7 @@ bench( format( '%s::4d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -592,6 +608,7 @@ bench( format( '%s::5d,base', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -624,6 +641,7 @@ bench( format( '%s::5d,non-base', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down Expand Up @@ -658,6 +676,7 @@ bench( format( '%s::5d,base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
baseEmpty( 'float64', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'float16', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'int32', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'complex128', [ 2, 2, 2, 2, 2 ], 'row-major' ),
baseEmpty( 'generic', [ 2, 2, 2, 2, 2 ], 'row-major' )
Expand Down Expand Up @@ -694,6 +713,7 @@ bench( format( '%s::5d,non-base,out-of-bounds', pkg ), function benchmark( b ) {
values = [
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float16' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' } ),
empty( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' } )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

/// <reference types="@stdlib/types"/>

import { typedndarray, genericndarray, float64ndarray, float32ndarray, int32ndarray, int16ndarray, int8ndarray, uint32ndarray, uint16ndarray, uint8ndarray, uint8cndarray, complex128ndarray, complex64ndarray } from '@stdlib/types/ndarray';
import { typedndarray, genericndarray, float64ndarray, float32ndarray, float16ndarray, int32ndarray, int16ndarray, int8ndarray, uint32ndarray, uint16ndarray, uint8ndarray, uint8cndarray, complex128ndarray, complex64ndarray } from '@stdlib/types/ndarray';

/**
* Interface defining function options.
Expand Down Expand Up @@ -112,6 +112,46 @@ declare function sliceDimensionTo( x: float64ndarray, dim: number, stop: number,
*/
declare function sliceDimensionTo( x: float32ndarray, dim: number, stop: number, options?: Options ): float32ndarray;

/**
* Returns a read-only truncated view of an input ndarray along a specified dimension.
*
* @param x - input array
* @param dim - index of dimension to slice
* @param stop - ending index (exclusive)
* @param options - function options
* @param options.strict - boolean indicating whether to enforce strict bounds checking
* @returns output array
*
* @example
* var typedarray = require( '@stdlib/array/typed' );
* var ndarray = require( '@stdlib/ndarray/ctor' );
* var ndarray2array = require( '@stdlib/ndarray/to-array' );
*
* var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float16' );
* var shape = [ 3, 2 ];
* var strides = [ 2, 1 ];
* var offset = 0;
*
* var x = ndarray( 'float16', 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 = sliceDimensionTo( x, 0, 2 );
* // returns <ndarray>
*
* sh = y.shape;
* // returns [ 2, 2 ]
*
* arr = ndarray2array( y );
* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]
*/
declare function sliceDimensionTo( x: float16ndarray, dim: number, stop: number, options?: Options ): float16ndarray;

/**
* Returns a read-only truncated view of an input ndarray along a specified dimension.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import sliceDimensionTo = require( './index' );

sliceDimensionTo( empty( 'float64', sh, order ), 1, s ); // $ExpectType float64ndarray
sliceDimensionTo( empty( 'float32', sh, order ), 1, s ); // $ExpectType float32ndarray
sliceDimensionTo( empty( 'float16', sh, order ), 1, s ); // $ExpectType float16ndarray
sliceDimensionTo( empty( 'complex128', sh, order ), 1, s ); // $ExpectType complex128ndarray
sliceDimensionTo( empty( 'complex64', sh, order ), 1, s ); // $ExpectType complex64ndarray
sliceDimensionTo( empty( 'int32', sh, order ), 1, s ); // $ExpectType int32ndarray
Expand All @@ -42,6 +43,7 @@ import sliceDimensionTo = require( './index' );

sliceDimensionTo( empty( 'float64', sh, order ), 1, s, { 'strict': false } ); // $ExpectType float64ndarray
sliceDimensionTo( empty( 'float32', sh, order ), 1, s, { 'strict': false } ); // $ExpectType float32ndarray
sliceDimensionTo( empty( 'float16', sh, order ), 1, s, { 'strict': false } ); // $ExpectType float16ndarray
sliceDimensionTo( empty( 'complex128', sh, order ), 1, s, { 'strict': false } ); // $ExpectType complex128ndarray
sliceDimensionTo( empty( 'complex64', sh, order ), 1, s, { 'strict': false } ); // $ExpectType complex64ndarray
sliceDimensionTo( empty( 'int32', sh, order ), 1, s, { 'strict': false } ); // $ExpectType int32ndarray
Expand All @@ -54,6 +56,7 @@ import sliceDimensionTo = require( './index' );

sliceDimensionTo( empty( 'float64', sh, order ), 1, s, { 'strict': true } ); // $ExpectType float64ndarray
sliceDimensionTo( empty( 'float32', sh, order ), 1, s, { 'strict': true } ); // $ExpectType float32ndarray
sliceDimensionTo( empty( 'float16', sh, order ), 1, s, { 'strict': true } ); // $ExpectType float16ndarray
sliceDimensionTo( empty( 'complex128', sh, order ), 1, s, { 'strict': true } ); // $ExpectType complex128ndarray
sliceDimensionTo( empty( 'complex64', sh, order ), 1, s, { 'strict': true } ); // $ExpectType complex64ndarray
sliceDimensionTo( empty( 'int32', sh, order ), 1, s, { 'strict': true } ); // $ExpectType int32ndarray
Expand Down
13 changes: 13 additions & 0 deletions lib/node_modules/@stdlib/ndarray/slice-dimension-to/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -488,19 +488,25 @@ tape( 'in non-strict mode, the function returns an empty array when an ending in
var stop;
var i;

/* eslint-disable stdlib/line-closing-bracket-spacing */

values = [
zeros( [ 1 ], { 'dtype': 'float64' } ),
zeros( [ 1, 1 ], { 'dtype': 'float32' } ),
zeros( [ 1, 1 ], { 'dtype': 'float16' } ),
zeros( [ 1, 1, 1 ], { 'dtype': 'int32' } ),
zeros( [ 1, 1, 1, 1 ], { 'dtype': 'uint32' } ),
zeros( [ 1, 1, 1, 1, 1 ], { 'dtype': 'complex128' } )
];

/* eslint-enable stdlib/line-closing-bracket-spacing */

stop = [
-10,
-20,
-20,
-20,
-20,
-10
];
for ( i = 0; i < values.length; i++ ) {
Expand All @@ -521,17 +527,23 @@ tape( 'the function returns an empty array when an ending index is the first ele
var dim;
var i;

/* eslint-disable stdlib/line-closing-bracket-spacing */

values = [
zeros( [ 1 ], { 'dtype': 'float64' } ),
zeros( [ 1, 1 ], { 'dtype': 'float32' } ),
zeros( [ 1, 1 ], { 'dtype': 'float16' } ),
zeros( [ 1, 1, 1 ], { 'dtype': 'int32' } ),
zeros( [ 1, 1, 1, 1 ], { 'dtype': 'uint32' } ),
zeros( [ 1, 1, 1, 1, 1 ], { 'dtype': 'complex128' } )
];

/* eslint-enable stdlib/line-closing-bracket-spacing */

dim = [
0,
1,
1,
0,
1,
4
Expand All @@ -542,6 +554,7 @@ tape( 'the function returns an empty array when an ending index is the first ele
0,
0,
0,
0,
0
];
for ( i = 0; i < values.length; i++ ) {
Expand Down
Loading