@stdlib/array-complex64 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,10 +21,9 @@
21
21
  /// <reference types="@stdlib/types"/>
22
22
 
23
23
  import { Iterator as Iter, IterableIterator } from '@stdlib/types/iter';
24
- import { ArrayLike, TypedArray } from '@stdlib/types/array';
25
- import { ComplexLike } from '@stdlib/types/object';
24
+ import { ArrayLike, RealOrComplexTypedArray, Complex64Array as Complex64ArrayInterface } from '@stdlib/types/array';
25
+ import { ComplexLike, Complex64 } from '@stdlib/types/object';
26
26
  import ArrayBuffer = require( '@stdlib/array-buffer' );
27
- import Complex64 = require( '@stdlib/complex-float32' );
28
27
 
29
28
  // Define a union type representing both iterable and non-iterable iterators:
30
29
  type Iterator = Iter | IterableIterator;
@@ -32,7 +31,7 @@ type Iterator = Iter | IterableIterator;
32
31
  /**
33
32
  * Class for creating a 64-bit complex number array.
34
33
  */
35
- declare class Complex64Array {
34
+ declare class Complex64Array implements Complex64ArrayInterface {
36
35
  /**
37
36
  * 64-bit complex number array constructor.
38
37
  *
@@ -100,7 +99,7 @@ declare class Complex64Array {
100
99
  * var len = arr.length;
101
100
  * // returns 2
102
101
  */
103
- constructor( arg?: number | TypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ); // tslint:disable-line:max-line-length
102
+ constructor( arg?: number | RealOrComplexTypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ); // tslint:disable-line:max-line-length
104
103
 
105
104
  /**
106
105
  * Length (in bytes) of the array.
@@ -133,7 +132,7 @@ declare class Complex64Array {
133
132
  * var nbytes = arr.BYTES_PER_ELEMENT;
134
133
  * // returns 8
135
134
  */
136
- readonly BYTES_PER_ELEMENT: number;
135
+ readonly BYTES_PER_ELEMENT: 8;
137
136
 
138
137
  /**
139
138
  * Number of array elements.
@@ -156,8 +155,8 @@ declare class Complex64Array {
156
155
  *
157
156
  * @example
158
157
  * var Complex64 = require( `@stdlib/complex/float32` );
159
- * var real = require( `@stdlib/complex/real` );
160
- * var imag = require( `@stdlib/complex/imag` );
158
+ * var realf = require( `@stdlib/complex/realf` );
159
+ * var imagf = require( `@stdlib/complex/imagf` );
161
160
  *
162
161
  * var arr = new Complex64Array( 4 );
163
162
  *
@@ -173,10 +172,10 @@ declare class Complex64Array {
173
172
  * // Get the last array element:
174
173
  * var z = arr.get( 3 );
175
174
  *
176
- * var re = real( z );
175
+ * var re = realf( z );
177
176
  * // returns 2.0
178
177
  *
179
- * var im = imag( z );
178
+ * var im = imagf( z );
180
179
  * // returns 2.0
181
180
  */
182
181
  copyWithin( target: number, start: number, end?: number ): Complex64Array;
@@ -234,27 +233,6 @@ declare class Complex64Array {
234
233
  */
235
234
  get( i: number ): Complex64 | void;
236
235
 
237
- /**
238
- * Returns an array element.
239
- *
240
- * @param out - output array
241
- * @param i - element index
242
- * @throws index argument must be a nonnegative integer
243
- * @returns array element
244
- *
245
- * @example
246
- * var arr = new Complex64Array( 10 );
247
- *
248
- * var z = arr.get( 0 );
249
- * // returns <Complex64>
250
- *
251
- * arr.set( [ 1.0, -1.0 ], 0 );
252
- *
253
- * z = arr.get( [ 0.0, 0.0 ], 0 );
254
- * // returns [ 1.0, -1.0 ]
255
- */
256
- get( out: ArrayLike<number>, i: number ): ArrayLike<number> | void;
257
-
258
236
  /**
259
237
  * Sets an array element.
260
238
  *
@@ -287,18 +265,18 @@ declare class Complex64Array {
287
265
  * @throws target array lacks sufficient storage to accommodate source values
288
266
  *
289
267
  * @example
290
- * var real = require( `@stdlib/complex/real` );
291
- * var imag = require( `@stdlib/complex/imag` );
268
+ * var realf = require( `@stdlib/complex/realf` );
269
+ * var imagf = require( `@stdlib/complex/imagf` );
292
270
  *
293
271
  * var arr = new Complex64Array( 10 );
294
272
  *
295
273
  * var z = arr.get( 0 );
296
274
  * // returns <Complex64>
297
275
  *
298
- * var re = real( z );
276
+ * var re = realf( z );
299
277
  * // returns 0.0
300
278
  *
301
- * var im = imag( z );
279
+ * var im = imagf( z );
302
280
  * // returns 0.0
303
281
  *
304
282
  * arr.set( [ 1.0, -1.0 ], 0 );
@@ -306,19 +284,19 @@ declare class Complex64Array {
306
284
  * z = arr.get( 0 );
307
285
  * // returns <Complex64>
308
286
  *
309
- * re = real( z );
287
+ * re = realf( z );
310
288
  * // returns 1.0
311
289
  *
312
- * im = imag( z );
290
+ * im = imagf( z );
313
291
  * // returns -1.0
314
292
  */
315
- set( value: ArrayLike<number | ComplexLike> | Complex64Array | ComplexLike, i?: number ): void; // tslint:disable-line:max-line-length
293
+ set( value: ArrayLike<number | ComplexLike> | RealOrComplexTypedArray | ComplexLike, i?: number ): void; // tslint:disable-line:max-line-length
316
294
  }
317
295
 
318
296
  /**
319
297
  * Interface defining a 64-bit complex number array constructor which is both "newable" and "callable".
320
298
  */
321
- interface Constructor {
299
+ interface Complex64ArrayConstructor {
322
300
  /**
323
301
  * 64-bit complex number array constructor.
324
302
  *
@@ -386,7 +364,7 @@ interface Constructor {
386
364
  * var len = arr.length;
387
365
  * // returns 2
388
366
  */
389
- new( arg?: number | TypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ): Complex64Array; // tslint-disable-line max-line-length
367
+ new( arg?: number | RealOrComplexTypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ): Complex64Array; // tslint-disable-line max-line-length
390
368
 
391
369
  /**
392
370
  * 64-bit complex number array constructor.
@@ -455,7 +433,7 @@ interface Constructor {
455
433
  * var len = arr.length;
456
434
  * // returns 2
457
435
  */
458
- ( arg?: number | TypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ): Complex64Array; // tslint-disable-line max-line-length
436
+ ( arg?: number | RealOrComplexTypedArray | ArrayLike<number | ComplexLike> | ArrayBuffer | Iterable<number | ComplexLike>, byteOffset?: number, length?: number ): Complex64Array; // tslint-disable-line max-line-length
459
437
 
460
438
  /**
461
439
  * Constructor name.
@@ -464,7 +442,7 @@ interface Constructor {
464
442
  * var str = Complex64Array.name;
465
443
  * // returns 'Complex64Array'
466
444
  */
467
- readonly name: string;
445
+ readonly name: 'Complex64Array';
468
446
 
469
447
  /**
470
448
  * Size (in bytes) of each array element.
@@ -473,7 +451,7 @@ interface Constructor {
473
451
  * var nbytes = Complex64Array.BYTES_PER_ELEMENT;
474
452
  * // returns 8
475
453
  */
476
- readonly BYTES_PER_ELEMENT: number;
454
+ readonly BYTES_PER_ELEMENT: 8;
477
455
 
478
456
  /**
479
457
  * Creates a new 64-bit complex number array from an array-like object or an iterable.
@@ -504,11 +482,11 @@ interface Constructor {
504
482
  *
505
483
  * @example
506
484
  * var Complex64 = require( `@stdlib/complex/float32` );
507
- * var real = require( `@stdlib/complex/real` );
508
- * var imag = require( `@stdlib/complex/imag` );
485
+ * var realf = require( `@stdlib/complex/realf` );
486
+ * var imagf = require( `@stdlib/complex/imagf` );
509
487
  *
510
488
  * function clbk( v ) {
511
- * return new Complex64( real(v)*2.0, imag(v)*2.0 );
489
+ * return new Complex64( realf(v)*2.0, imagf(v)*2.0 );
512
490
  * }
513
491
  *
514
492
  * var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );
@@ -517,7 +495,7 @@ interface Constructor {
517
495
  * var len = arr.length;
518
496
  * // returns 1
519
497
  */
520
- from( src: ArrayLike<number | ComplexLike> | Iterable<number | ComplexLike>, clbk?: Function, thisArg?: any ): Complex64Array; // tslint:disable-line:max-line-length
498
+ from( src: ArrayLike<number | ComplexLike> | RealOrComplexTypedArray | Iterable<number | ComplexLike>, clbk?: Function, thisArg?: any ): Complex64Array; // tslint:disable-line:max-line-length
521
499
 
522
500
  /**
523
501
  * Creates a new 64-bit complex number array from a variable number of arguments.
@@ -602,7 +580,7 @@ interface Constructor {
602
580
  * var len = arr.length;
603
581
  * // returns 2
604
582
  */
605
- declare var ctor: Constructor;
583
+ declare var ctor: Complex64ArrayConstructor;
606
584
 
607
585
 
608
586
  // EXPORTS //
@@ -21,11 +21,11 @@
21
21
  import Complex64Array = require( './index' );
22
22
  import Complex64 = require( '@stdlib/complex-float32' );
23
23
  import ArrayBuffer = require( '@stdlib/array-buffer' );
24
- import real = require( '@stdlib/complex-real' );
25
- import imag = require( '@stdlib/complex-imag' );
24
+ import realf = require( '@stdlib/complex-realf' );
25
+ import imagf = require( '@stdlib/complex-imagf' );
26
26
 
27
27
  const clbk = ( v: Complex64 ) => {
28
- return new Complex64( real( v ) * 2.0, imag( v ) * 2.0 );
28
+ return new Complex64( realf( v ) * 2.0, imagf( v ) * 2.0 );
29
29
  };
30
30
 
31
31
 
package/lib/from_array.js CHANGED
@@ -21,8 +21,8 @@
21
21
  // MODULES //
22
22
 
23
23
  var isComplexLike = require( '@stdlib/assert-is-complex-like' );
24
- var real = require( '@stdlib/complex-real' );
25
- var imag = require( '@stdlib/complex-imag' );
24
+ var realf = require( '@stdlib/complex-realf' );
25
+ var imagf = require( '@stdlib/complex-imagf' );
26
26
 
27
27
 
28
28
  // MAIN //
@@ -48,8 +48,8 @@ function fromArray( buf, arr ) {
48
48
  if ( !isComplexLike( v ) ) {
49
49
  return null;
50
50
  }
51
- buf[ j ] = real( v );
52
- buf[ j+1 ] = imag( v );
51
+ buf[ j ] = realf( v );
52
+ buf[ j+1 ] = imagf( v );
53
53
  j += 2; // stride
54
54
  }
55
55
  return buf;
@@ -22,8 +22,8 @@
22
22
 
23
23
  var isArrayLikeObject = require( '@stdlib/assert-is-array-like-object' );
24
24
  var isComplexLike = require( '@stdlib/assert-is-complex-like' );
25
- var real = require( '@stdlib/complex-real' );
26
- var imag = require( '@stdlib/complex-imag' );
25
+ var realf = require( '@stdlib/complex-realf' );
26
+ var imagf = require( '@stdlib/complex-imagf' );
27
27
 
28
28
 
29
29
  // MAIN //
@@ -43,19 +43,17 @@ function fromIterator( it ) {
43
43
  out = [];
44
44
  while ( true ) {
45
45
  v = it.next();
46
- z = v.value;
47
- if ( z ) {
48
- if ( isArrayLikeObject( z ) && z.length >= 2 ) {
49
- out.push( z[ 0 ], z[ 1 ] );
50
- } else if ( isComplexLike( z ) ) {
51
- out.push( real( z ), imag( z ) );
52
- } else {
53
- return new TypeError( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `'+z+'`.' );
54
- }
55
- }
56
46
  if ( v.done ) {
57
47
  break;
58
48
  }
49
+ z = v.value;
50
+ if ( isArrayLikeObject( z ) && z.length >= 2 ) {
51
+ out.push( z[ 0 ], z[ 1 ] );
52
+ } else if ( isComplexLike( z ) ) {
53
+ out.push( realf( z ), imagf( z ) );
54
+ } else {
55
+ return new TypeError( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `'+z+'`.' );
56
+ }
59
57
  }
60
58
  return out;
61
59
  }
@@ -22,8 +22,8 @@
22
22
 
23
23
  var isArrayLikeObject = require( '@stdlib/assert-is-array-like-object' );
24
24
  var isComplexLike = require( '@stdlib/assert-is-complex-like' );
25
- var real = require( '@stdlib/complex-real' );
26
- var imag = require( '@stdlib/complex-imag' );
25
+ var realf = require( '@stdlib/complex-realf' );
26
+ var imagf = require( '@stdlib/complex-imagf' );
27
27
 
28
28
 
29
29
  // MAIN //
@@ -46,22 +46,19 @@ function fromIteratorMap( it, clbk, thisArg ) {
46
46
  out = [];
47
47
  i = -1;
48
48
  while ( true ) {
49
- i += 1;
50
49
  v = it.next();
51
- z = v.value;
52
- if ( z ) {
53
- z = clbk.call( thisArg, z, i );
54
- if ( isArrayLikeObject( z ) && z.length >= 2 ) {
55
- out.push( z[ 0 ], z[ 1 ] );
56
- } else if ( isComplexLike( z ) ) {
57
- out.push( real( z ), imag( z ) );
58
- } else {
59
- return new TypeError( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `'+z+'`.' );
60
- }
61
- }
62
50
  if ( v.done ) {
63
51
  break;
64
52
  }
53
+ i += 1;
54
+ z = clbk.call( thisArg, v.value, i );
55
+ if ( isArrayLikeObject( z ) && z.length >= 2 ) {
56
+ out.push( z[ 0 ], z[ 1 ] );
57
+ } else if ( isComplexLike( z ) ) {
58
+ out.push( realf( z ), imagf( z ) );
59
+ } else {
60
+ return new TypeError( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `'+z+'`.' );
61
+ }
65
62
  }
66
63
  return out;
67
64
  }
package/lib/index.js CHANGED
@@ -86,9 +86,9 @@
86
86
 
87
87
  // MODULES //
88
88
 
89
- var Complex64Array = require( './main.js' );
89
+ var main = require( './main.js' );
90
90
 
91
91
 
92
92
  // EXPORTS //
93
93
 
94
- module.exports = Complex64Array;
94
+ module.exports = main;