Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Vector

Create a vector (i.e., a one-dimensional ndarray).

Usage

var vector = require( '@stdlib/ndarray/vector/ctor' );

vector( [dtype][, options] )

Returns a one-dimensional ndarray having a specified data type.

var getDType = require( '@stdlib/ndarray/dtype' );
var numel = require( '@stdlib/ndarray/numel' );

var arr = vector();
// returns <ndarray>

var len = numel( arr );
// returns 0

var dt = getDType( arr );
// returns 'float64'

By default, the function returns an ndarray having a float64 data type. To specify an alternative data type, provide a dtype argument.

var getDType = require( '@stdlib/ndarray/dtype' );
var numel = require( '@stdlib/ndarray/numel' );

var arr = vector( 'int32' );
// returns <ndarray>

var len = numel( arr );
// returns 0

var dt = getDType( arr );
// returns 'int32'

The function accepts the following options:

  • order: specifies whether an ndarray is 'row-major' (C-style) or 'column-major' (Fortran-style). Default: 'row-major'.
  • mode: specifies how to handle indices which exceed array dimensions (see ndarray). Default: 'throw'.
  • readonly: boolean indicating whether an array should be read-only. Default: false.

vector( length[, dtype][, options] )

Returns a one-dimensional ndarray having a specified length.

var numel = require( '@stdlib/ndarray/numel' );

var arr1 = vector( 5 );
// returns <ndarray>

var len1 = numel( arr1 );
// returns 5

var arr2 = vector( 5, 'uint8' );
// returns <ndarray>

var len2 = numel( arr2 );
// returns 5

vector( obj[, dtype][, options] )

Creates a one-dimensional ndarray from an array-like object or iterable.

var numel = require( '@stdlib/ndarray/numel' );

var arr1 = vector( [ 0.5, 0.5, 0.5 ] );
// returns <ndarray>

var len1 = numel( arr1 );
// returns 3

var arr2 = vector( [ 0.5, 0.5, 0.5 ], 'float32' );
// returns <ndarray>

var len2 = numel( arr2 );
// returns 3

vector( buffer[, byteOffset[, length]][, dtype][, options] )

Returns a one-dimensional ndarray view of an ArrayBuffer.

var ArrayBuffer = require( '@stdlib/array/buffer' );
var getDType = require( '@stdlib/ndarray/dtype' );
var numel = require( '@stdlib/ndarray/numel' );

var buf = new ArrayBuffer( 32 );

var arr1 = vector( buf );
// returns <ndarray>

var len1 = numel( arr1 );
// returns 4

var dt1 = getDType( arr1 );
// returns 'float64'

var arr2 = vector( buf, 'float32' );
// returns <ndarray>

var len2 = numel( arr2 );
// returns 8

var dt2 = getDType( arr2 );
// returns 'float32'

var arr3 = vector( buf, 16 );
// returns <ndarray>

var len3 = numel( arr3 );
// returns 2

var dt3 = getDType( arr3 );
// returns 'float64'

var arr4 = vector( buf, 16, 'float32' );
// returns <ndarray>

var len4 = numel( arr4 );
// returns 4

var dt4 = getDType( arr4 );
// returns 'float32'

var arr5 = vector( buf, 16, 1 );
// returns <ndarray>

var len5 = numel( arr5 );
// returns 1

var dt5 = getDType( arr5 );
// returns 'float64'

var arr6 = vector( buf, 10, 4, 'int16' );
// returns <ndarray>

var len6 = numel( arr6 );
// returns 4

var dt6 = getDType( arr6 );
// returns 'int16'

vector.factory( dtype[, options] )

Returns a function for creating a one-dimensional ndarray.

var getDType = require( '@stdlib/ndarray/dtype' );
var numel = require( '@stdlib/ndarray/numel' );

var Float32Vector = vector.factory( 'float32' );

var arr = new Float32Vector( [ 1, 2, 3 ] );
// returns <ndarray>

var dt = getDType( arr );
// returns 'float32'

var len = numel( arr );
// returns 3

The function supports the following parameters:

  • dtype: data type.
  • options: function options (optional).

The function accepts the following options:

  • order: specifies whether the default memory layout for a returned ndarray should be 'row-major' (C-style) or 'column-major' (Fortran-style). Default: 'row-major'.
  • mode: specifies the default behavior when handling indices which exceed array dimensions (see ndarray). Default: 'throw'.
  • readonly: boolean indicating whether to return a read-only ndarray by default. Default: false.

The function returned by the factory method supports the same arguments and options as vector above, except for the dtype argument, as the returned function always returns a one-dimensional ndarray having the same data type.

When providing options to the returned function, the provided option values override the defaults established during function creation.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var cartesianProduct = require( '@stdlib/array/cartesian-product' );
var unzip = require( '@stdlib/utils/unzip' );
var dtypes = require( '@stdlib/ndarray/dtypes' );
var sum = require( '@stdlib/blas/ext/sum' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var vector = require( '@stdlib/ndarray/vector/ctor' );

// Create an array of random array lengths:
var lens = discreteUniform( 10, 5, 15, {
    'dtype': 'int32'
});

// Resolve a list of supported ndarray real-valued data types:
var dts = dtypes( 'real_and_generic' );

// Create length-dtype pairs:
var pairs = cartesianProduct( lens, dts );

// Split the pairs into individual arguments:
var args = unzip( pairs );

// Define a callback to create a random vector and return the sum of all vector elements:
function clbk( len, dtype ) {
    var x = vector( discreteUniform( len, 0, 100 ), dtype );
    return sum( x ).get();
}

// Apply the callback and print the results:
logEachMap( 'len: %2d. dtype: %7s. sum: %d.', args[ 0 ], args[ 1 ], clbk );