Float32ArrayLE
Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in little-endian byte order.
In contrast to the Float32Array
typed array constructor which stores values according to the host platform byte order, the Float32ArrayLE
constructor always accesses elements in little-endian byte order. Such enforcement can be particularly advantageous when working with memory buffers which do not necessarily follow host platform byte order, such as WebAssembly memory.
Usage
var Float32ArrayLE = require( '@stdlib/array/little-endian-float32' );
Float32ArrayLE()
A typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in little-endian byte order.
var arr = new Float32ArrayLE();
// returns <Float32ArrayLE>
Float32ArrayLE( length )
Returns a typed array having a specified length.
var arr = new Float32ArrayLE( 5 );
// returns <Float32ArrayLE>
Float32ArrayLE( typedarray )
Creates a typed array from another typed array.
var Float32Array = require( '@stdlib/array/float32' );
var arr1 = new Float32Array( [ 0.5, 0.5, 0.5 ] );
var arr2 = new Float32ArrayLE( arr1 );
// returns <Float32ArrayLE>
var v = arr2.get( 0 );
// returns 0.5
Float32ArrayLE( obj )
Creates a typed array from an array-like object or iterable.
var arr = new Float32ArrayLE( [ 0.5, 0.5, 0.5 ] );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 0.5
Float32ArrayLE( buffer[, byteOffset[, length]] )
Returns a typed array view of an ArrayBuffer
.
var ArrayBuffer = require( '@stdlib/array/buffer' );
var buf = new ArrayBuffer( 32 );
var arr = new Float32ArrayLE( buf, 0, 4 );
// returns <Float32ArrayLE>
Properties
Float32ArrayLE.BYTES_PER_ELEMENT
Number of bytes per view element.
var nbytes = Float32ArrayLE.BYTES_PER_ELEMENT;
// returns 4
Float32ArrayLE.name
Typed array constructor name.
var str = Float32ArrayLE.name;
// returns 'Float32ArrayLE'
Float32ArrayLE.prototype.buffer
Read-only property which returns the ArrayBuffer
referenced by the typed array.
var arr = new Float32ArrayLE( 5 );
var buf = arr.buffer;
// returns <ArrayBuffer>
Float32ArrayLE.prototype.byteLength
Read-only property which returns the length (in bytes) of the typed array.
var arr = new Float32ArrayLE( 5 );
var byteLength = arr.byteLength;
// returns 20
Float32ArrayLE.prototype.byteOffset
Read-only property which returns the offset (in bytes) of the typed array from the start of its ArrayBuffer
.
var arr = new Float32ArrayLE( 5 );
var byteOffset = arr.byteOffset;
// returns 0
Float32ArrayLE.prototype.BYTES_PER_ELEMENT
Number of bytes per view element.
var arr = new Float32ArrayLE( 5 );
var nbytes = arr.BYTES_PER_ELEMENT;
// returns 4
Float32ArrayLE.prototype.length
Read-only property which returns the number of view elements.
var arr = new Float32ArrayLE( 5 );
var len = arr.length;
// returns 5
Methods
Float32ArrayLE.from( src[, map[, thisArg]] )
Creates a new typed array from an array-like object or an iterable.
var arr = Float32ArrayLE.from( [ 1.0, -1.0 ] );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 1.0
To invoke a function for each src
value, provide a callback function.
function mapFcn( v ) {
return v * 2.0;
}
var arr = Float32ArrayLE.from( [ 1.0, -1.0 ], mapFcn );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 2.0
A callback function is provided two arguments:
- value: source value.
- index: source index.
To set the callback execution context, provide a thisArg
.
function mapFcn( v ) {
this.count += 1;
return v * 2.0;
}
var ctx = {
'count': 0
};
var arr = Float32ArrayLE.from( [ 1.0, -1.0 ], mapFcn, ctx );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 2.0
var n = ctx.count;
// returns 2
Float32ArrayLE.of( element0[, element1[, ...elementN]] )
Creates a new typed array from a variable number of arguments.
var arr = Float32ArrayLE.of( 1.0, -1.0 );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 1.0
Float32ArrayLE.prototype.get( i )
Returns an array element located at a nonnegative integer position (index) i
.
var arr = new Float32ArrayLE( 10 );
// Set the first element:
arr.set( 1.0, 0 );
// Get the first element:
var v = arr.get( 0 );
// returns 1.0
If provided an out-of-bounds index, the method returns undefined
.
var arr = new Float32ArrayLE( 10 );
var v = arr.get( 100 );
// returns undefined
Float32ArrayLE.prototype.set( arr[, offset] )
Sets array elements.
var arr = new Float32ArrayLE( [ 1.0, 2.0, 3.0 ] );
// returns <Float32ArrayLE>
var v = arr.get( 0 );
// returns 1.0
v = arr.get( 1 );
// returns 2.0
// Set the first two array elements:
arr.set( [ 4.0, 5.0 ] );
v = arr.get( 0 );
// returns 4.0
v = arr.get( 1 );
// returns 5.0
By default, the method starts writing values at the first array index. To specify an alternative index, provide an index offset
.
var arr = new Float32ArrayLE( [ 1.0, 2.0, 3.0 ] );
// returns <Float32ArrayLE>
// Set the last two array elements:
arr.set( [ 4.0, 5.0 ], 1 );
var v = arr.get( 1 );
// returns 4.0
v = arr.get( 2 );
// returns 5.0
A few notes:
- If
i
is out-of-bounds, the method throws an error. - If a target array cannot accommodate all values (i.e., the length of source array plus
i
exceeds the target array length), the method throws an error. - If provided a typed array which shares an
ArrayBuffer
with the target array, the method will intelligently copy the source range to the destination range.
Float32ArrayLE.prototype.toString()
Serializes an array as a string.
var arr = new Float32ArrayLE( [ 1.0, 2.0, 3.0 ] );
var str = arr.toString();
// returns '1,2,3'
Notes
While a
Float32ArrayLE
strives to maintain (but does not guarantee) consistency with typed arrays, significant deviations from ECMAScript-defined typed array behavior are as follows:- The constructor does not require the
new
operator. - Accessing array elements using bracket syntax (e.g.,
X[i]
) is not supported. Instead, one must use the.get()
method.
- The constructor does not require the
Examples
var Float32Array = require( '@stdlib/array/float32' );
var logEach = require( '@stdlib/console/log-each' );
var Float32ArrayLE = require( '@stdlib/array/little-endian-float32' );
// Create a typed array by specifying a length:
var out = new Float32ArrayLE( 3 );
logEach( '%s', out );
// Create a typed array from an array:
var arr = [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ];
out = new Float32ArrayLE( arr );
logEach( '%s', out );
// Create a typed array from an array buffer:
arr = new Float32Array( [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ] ); // host byte order
out = new Float32ArrayLE( arr.buffer );
logEach( '%s', out );
// Create a typed array from an array buffer view:
arr = new Float32Array( [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ] ); // host byte order
out = new Float32ArrayLE( arr.buffer, 8, 2 );
logEach( '%s', out );