Skip to content
Draft
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
20 changes: 20 additions & 0 deletions lib/node_modules/@stdlib/ndarray/base/ctor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,26 @@ var nbytes = arr.BYTES_PER_ELEMENT;
// returns 4
```

For half-precision floating-point numbers:

```javascript
var Float16Array = require( '@stdlib/array/float16' );

// Specify the array configuration:
var buffer = new Float16Array( [ 1, 2, 3, 4 ] );
var shape = [ 2, 2 ];
var order = 'row-major';
var strides = [ 2, 1 ];
var offset = 0;

// Create a new ndarray:
var arr = ndarray( 'float16', buffer, shape, strides, offset, order );

// Get the number of bytes per element:
var nbytes = arr.BYTES_PER_ELEMENT;
// returns 2
```

If size of each array element is unknown, the property value is `null`.

```javascript
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ var CTORS = {
'uint16': 'new Uint16Array( [ {{data}} ] )',
'int32': 'new Int32Array( [ {{data}} ] )',
'uint32': 'new Uint32Array( [ {{data}} ] )',
'float16': 'new Float16Array( [ {{data}} ] )',
'float32': 'new Float32Array( [ {{data}} ] )',
'float64': 'new Float64Array( [ {{data}} ] )',
'generic': '[ {{data}} ]',
Expand Down
25 changes: 25 additions & 0 deletions lib/node_modules/@stdlib/ndarray/to-string/benchmark/benchmark.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );
var numel = require( '@stdlib/ndarray/base/numel' );
var zeroTo = require( '@stdlib/array/base/zero-to' );
var zeros = require( '@stdlib/ndarray/zeros' );
var format = require( '@stdlib/string/format' );
var ndarray = require( '@stdlib/ndarray/ctor' );
var pkg = require( './../package.json' ).name;
Expand Down Expand Up @@ -97,3 +98,27 @@ bench( format( '%s:order=column-major', pkg ), function benchmark( b ) {
b.pass( 'benchmark finished' );
b.end();
});

bench( format( '%s:dtype=float16', pkg ), function benchmark( b ) {
var arr;
var out;
var i;

arr = zeros( [ 10, 10, 10 ], {
'dtype': 'float16'
});

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
out = ndarray2string( arr );
if ( typeof out !== 'string' ) {
b.fail( 'should return a string' );
}
}
b.toc();
if ( !isString( out ) ) {
b.fail( 'should return a string' );
}
b.pass( 'benchmark finished' );
b.end();
});
11 changes: 11 additions & 0 deletions lib/node_modules/@stdlib/ndarray/to-string/docs/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,17 @@ import { ndarray } from '@stdlib/types/ndarray';
*
* var str = ndarray2string( x );
* // returns <string>
*
* @example
* var zeros = require( '@stdlib/ndarray/zeros' );
*
* var x = zeros( [ 2, 2 ], {
* 'dtype': 'float16'
* });
* // returns <ndarray>
*
* var str = ndarray2string( x );
* // returns <string>
*/
declare function ndarray2string( x: ndarray ): string;

Expand Down
12 changes: 12 additions & 0 deletions lib/node_modules/@stdlib/ndarray/to-string/lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@
*
* var str = ndarray2string( x );
* // returns <string>
*
* @example
* var zeros = require( '@stdlib/ndarray/zeros' );
* var ndarray2string = require( '@stdlib/ndarray/to-string' );
*
* var x = zeros( [ 2, 2 ], {
* 'dtype': 'float16'
* });
* // returns <ndarray>
*
* var str = ndarray2string( x );
* // returns <string>
*/

// MODULES //
Expand Down
12 changes: 12 additions & 0 deletions lib/node_modules/@stdlib/ndarray/to-string/lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ var CTORS = {
'uint16': 'new Uint16Array( [ {{data}} ] )',
'int32': 'new Int32Array( [ {{data}} ] )',
'uint32': 'new Uint32Array( [ {{data}} ] )',
'float16': 'new Float16Array( [ {{data}} ] )',
'float32': 'new Float32Array( [ {{data}} ] )',
'float64': 'new Float64Array( [ {{data}} ] )',
'generic': '[ {{data}} ]',
Expand Down Expand Up @@ -122,6 +123,17 @@ function serializeComplexElement( x, sub ) {
*
* var str = ndarray2string( x );
* // returns <string>
*
* @example
* var zeros = require( '@stdlib/ndarray/zeros' );
*
* var x = zeros( [ 2, 2 ], {
* 'dtype': 'float16'
* });
* // returns <ndarray>
*
* var str = ndarray2string( x );
* // returns <string>
*/
function ndarray2string( x ) {
var serialize;
Expand Down
55 changes: 55 additions & 0 deletions lib/node_modules/@stdlib/ndarray/to-string/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

var tape = require( 'tape' );
var Float64Array = require( '@stdlib/array/float64' );
var Float16Array = require( '@stdlib/array/float16' );
var Complex64Array = require( '@stdlib/array/complex64' );
var Complex128Array = require( '@stdlib/array/complex128' );
var BooleanArray = require( '@stdlib/array/bool' );
Expand Down Expand Up @@ -94,6 +95,60 @@ tape( 'the function serializes an ndarray as a string (row-major)', function tes
t.end();
});

tape( 'the function serializes an ndarray as a string (dtype=float16, row-major)', function test( t ) {
var expected;
var strides;
var actual;
var buffer;
var offset;
var dtype;
var order;
var shape;
var arr;

dtype = 'float16';
buffer = new Float16Array( [ 1.0, 2.0, 3.0, 4.0 ] );
shape = [ 2, 2 ];
order = 'row-major';
strides = [ 2, 1 ];
offset = 0;

arr = ndarray( dtype, buffer, shape, strides, offset, order );

expected = 'ndarray( \'float16\', new Float16Array( [ 1, 2, 3, 4 ] ), [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )';
actual = ndarray2string( arr );
t.strictEqual( actual, expected, 'returns expected value' );

t.end();
});

tape( 'the function serializes an ndarray as a string (dtype=float16, column-major)', function test( t ) {
var expected;
var strides;
var actual;
var buffer;
var offset;
var dtype;
var order;
var shape;
var arr;

dtype = 'float16';
buffer = new Float16Array( [ 1.0, 2.0, 3.0, 4.0 ] );
shape = [ 2, 2 ];
order = 'column-major';
strides = [ 1, 2 ];
offset = 0;

arr = ndarray( dtype, buffer, shape, strides, offset, order );

expected = 'ndarray( \'float16\', new Float16Array( [ 1, 2, 3, 4 ] ), [ 2, 2 ], [ 1, 2 ], 0, \'column-major\' )';
actual = ndarray2string( arr );
t.strictEqual( actual, expected, 'returns expected value' );

t.end();
});

tape( 'the function serializes an ndarray as a string (row-major, negative strides)', function test( t ) {
var expected;
var strides;
Expand Down
Loading