64-bit complex number array.
var Complex64Array = require( '@stdlib/array/complex64' );
Creates a 64-bit complex number array.
var arr = new Complex64Array();
// returns <Complex64Array>
Creates a 64-bit complex number array having a specified length
.
var arr = new Complex64Array( 10 );
// returns <Complex64Array>
var len = arr.length;
// returns 10
Creates a 64-bit complex number array from a typed array containing interleaves real and imaginary components.
var Float32Array = require( '@stdlib/array/float32' );
var buf = new Float32Array( [ 1.0, -1.0, 2.0, -2.0 ] ); // [ re, im, re, im ]
// returns <Float32Array>[ 1.0, -1.0, 2.0, -2.0 ]
var arr = new Complex64Array( buf );
// returns <Complex64Array>
var len = arr.length;
// returns 2
Creates a 64-bit complex number array from an array-like object
or iterable.
var Complex64 = require( '@stdlib/complex/float32' );
// From an array of interleaved real and imaginary components:
var arr1 = new Complex64Array( [ 1.0, -1.0, 2.0, -2.0 ] );
// returns <Complex64Array>
var len = arr1.length;
// returns 2
// From an array containing complex numbers:
var buf = [ new Complex64( 1.0, -1.0 ), new Complex64( 2.0, -2.0 ) ];
var arr2 = new Complex64Array( buf );
len = arr2.length;
// returns 2
Returns a 64-bit complex number array view of an ArrayBuffer
.
var ArrayBuffer = require( '@stdlib/array/buffer' );
var buf = new ArrayBuffer( 240 );
var arr1 = new Complex64Array( buf );
// returns <Complex64Array>
var len = arr1.length;
// returns 30
var arr2 = new Complex64Array( buf, 8 );
// returns <Complex64Array>
len = arr2.length;
// returns 29
var arr3 = new Complex64Array( buf, 8, 20 );
// returns <Complex64Array>
len = arr3.length;
// returns 20
Static property returning the size (in bytes) of each array element.
var nbytes = Complex64Array.BYTES_PER_ELEMENT;
// returns 8
Pointer to the underlying data buffer.
var arr = new Complex64Array( 2 );
// returns <Complex64Array>
var buf = arr.buffer;
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0 ]
Size (in bytes) of the array.
var arr = new Complex64Array( 10 );
// returns <Complex64Array>
var nbytes = arr.byteLength;
// returns 80
Offset (in bytes) of the array from the start of its underlying ArrayBuffer
.
var ArrayBuffer = require( '@stdlib/array/buffer' );
var arr = new Complex64Array( 10 );
// returns <Complex64Array>
var offset = arr.byteOffset;
// returns 0
var buf = new ArrayBuffer( 240 );
arr = new Complex64Array( buf, 64 );
// returns <Complex64Array>
offset = arr.byteOffset;
// returns 64
Size (in bytes) of each array element.
var arr = new Complex64Array( 10 );
// returns <Complex64Array>
var nbytes = arr.BYTES_PER_ELEMENT;
// returns 8
Number of array elements.
var arr = new Complex64Array( 10 );
// returns <Complex64Array>
var len = arr.length;
// returns 10
Creates a new 64-bit complex number array from an array-like object
or an iterable.
var Complex64 = require( '@stdlib/complex/float32' );
// Create an array from interleaved real and imaginary components:
var arr = Complex64Array.from( [ 1.0, -1.0 ] );
// returns <Complex64Array>
var len = arr.length;
// returns 1
// Create an array from an array of complex numbers:
arr = Complex64Array.from( [ new Complex64( 1.0, -1.0 ) ] );
// returns <Complex64Array>
len = arr.length;
// returns 1
To invoke a function for each src
value, provide a callback function. If a src
array contains complex numbers, the callback must return either a complex number
var Complex64 = require( '@stdlib/complex/float32' );
var real = require( '@stdlib/complex/real' );
var imag = require( '@stdlib/complex/imag' );
function map( v ) {
return new Complex64( real(v)*2.0, imag(v)*2.0 );
}
// Create a source array:
var src = [ new Complex64( 1.0, -1.0 ) ];
// Create a new complex number array by scaling the source array:
var arr = Complex64Array.from( src, map );
// returns <Complex64Array>
var len = arr.length;
// returns 1
var z = arr.get( 0 );
// returns <Complex64>
var re = real( z );
// returns 2.0
var im = imag( z );
// returns -2.0
or an array containing real and imaginary components
var Complex64 = require( '@stdlib/complex/float32' );
var real = require( '@stdlib/complex/real' );
var imag = require( '@stdlib/complex/imag' );
function map( v ) {
return [ real(v)*2.0, imag(v)*2.0 ];
}
// Create a source array:
var src = [ new Complex64( 1.0, -1.0 ) ];
// Create a new complex number array by scaling the source array:
var arr = Complex64Array.from( src, map );
// returns <Complex64Array>
var len = arr.length;
// returns 1
var z = arr.get( 0 );
// returns <Complex64>
var re = real( z );
// returns 2.0
var im = imag( z );
// returns -2.0
If a src
array contains interleaved real and imaginary components, the callback is invoked for each component.
var Float32Array = require( '@stdlib/array/float32' );
var Complex64 = require( '@stdlib/complex/float32' );
var real = require( '@stdlib/complex/real' );
var imag = require( '@stdlib/complex/imag' );
function map( v ) {
return v * 2.0;
}
// Create a source array:
var src = new Float32Array( [ 1.0, -1.0 ] );
// Create a new complex number array by scaling the source array:
var arr = Complex64Array.from( src, map );
// returns <Complex64Array>
var len = arr.length;
// returns 1
var z = arr.get( 0 );
// returns <Complex64>
var re = real( z );
// returns 2.0
var im = imag( z );
// returns -2.0
-
While a
Complex64Array
strives to maintain consistency with typed arrays, deviations from typed array behavior are as follows:- The constructor does not require the
new
operator. - The constructor supports a broader variety of input argument types in order to better accommodate complex number input.
- Accessing array elements using bracket syntax (e.g.,
Z[i]
) is not supported. Instead, one must use the.get()
method which returns a value compatible with complex number output. - The
set
method has extended behavior in order to support complex numbers.
- The constructor does not require the
var Complex64 = require( '@stdlib/complex/float32' );
var Float32Array = require( '@stdlib/array/float32' );
var Complex64Array = require( '@stdlib/array/complex64' );
var arr;
var out;
// Create a complex array by specifying a length:
out = new Complex64Array( 3 );
console.log( out );
// Create a complex array from an array of complex numbers:
arr = [
new Complex64( 1.0, -1.0 ),
new Complex64( -3.14, 3.14 ),
new Complex64( 0.5, 0.5 )
];
out = new Complex64Array( arr );
console.log( out );
// Create a complex array from an interleaved typed array:
arr = new Float32Array( [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ] );
out = new Complex64Array( arr );
console.log( out );
// Create a complex array from an array buffer:
arr = new Float32Array( [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ] );
out = new Complex64Array( arr.buffer );
console.log( out );
// Create a complex array from an array buffer view:
arr = new Float32Array( [ 1.0, -1.0, -3.14, 3.14, 0.5, 0.5 ] );
out = new Complex64Array( arr.buffer, 8, 2 );
console.log( out );