2020
2121/// <reference types="@stdlib/types"/>
2222
23- import { ArrayLike , TypedArray , Complex128Array as Complex128ArrayInterface } from '@stdlib/types/array' ;
23+ import { Iterator as Iter , IterableIterator } from '@stdlib/types/iter' ;
24+ import { ArrayLike , RealOrComplexTypedArray , Complex128Array as Complex128ArrayInterface } from '@stdlib/types/array' ;
2425import { ComplexLike , Complex128 } from '@stdlib/types/object' ;
2526import ArrayBuffer = require( '@stdlib/array/buffer' ) ;
2627
28+ // Define a union type representing both iterable and non-iterable iterators:
29+ type Iterator = Iter | IterableIterator ;
30+
2731/**
2832* Class for creating a 128-bit complex number array.
2933*/
@@ -95,7 +99,7 @@ declare class Complex128Array implements Complex128ArrayInterface {
9599 * var len = arr.length;
96100 * // returns 2
97101 */
98- 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
99103
100104 /**
101105 * Length (in bytes) of the array.
@@ -128,7 +132,7 @@ declare class Complex128Array implements Complex128ArrayInterface {
128132 * var nbytes = arr.BYTES_PER_ELEMENT;
129133 * // returns 16
130134 */
131- readonly BYTES_PER_ELEMENT : number ;
135+ readonly BYTES_PER_ELEMENT : 16 ;
132136
133137 /**
134138 * Number of array elements.
@@ -141,6 +145,74 @@ declare class Complex128Array implements Complex128ArrayInterface {
141145 */
142146 readonly length : number ;
143147
148+ /**
149+ * Copies a sequence of elements within the array to the position starting at `target`.
150+ *
151+ * @param target - index at which to start copying elements
152+ * @param start - source index at which to copy elements from
153+ * @param end - source index at which to stop copying elements from
154+ * @returns modified array
155+ *
156+ * @example
157+ * var Complex128 = require( `@stdlib/complex/float64` );
158+ * var real = require( `@stdlib/complex/real` );
159+ * var imag = require( `@stdlib/complex/imag` );
160+ *
161+ * var arr = new Complex128Array( 4 );
162+ *
163+ * // Set the array elements:
164+ * arr.set( new Complex128( 1.0, 1.0 ), 0 );
165+ * arr.set( new Complex128( 2.0, 2.0 ), 1 );
166+ * arr.set( new Complex128( 3.0, 3.0 ), 2 );
167+ * arr.set( new Complex128( 4.0, 4.0 ), 3 );
168+ *
169+ * // Copy the first two elements to the last two elements:
170+ * arr.copyWithin( 2, 0, 2 );
171+ *
172+ * // Get the last array element:
173+ * var z = arr.get( 3 );
174+ *
175+ * var re = real( z );
176+ * // returns 2.0
177+ *
178+ * var im = imag( z );
179+ * // returns 2.0
180+ */
181+ copyWithin ( target : number , start : number , end ?: number ) : Complex128Array ;
182+
183+ /**
184+ * Returns an iterator for iterating over array key-value pairs.
185+ *
186+ * @returns iterator
187+ *
188+ * @example
189+ * var Complex128 = require( `@stdlib/complex/float64` );
190+ *
191+ * var arr = [
192+ * new Complex128( 1.0, 1.0 ),
193+ * new Complex128( 2.0, 2.0 ),
194+ * new Complex128( 3.0, 3.0 )
195+ * ];
196+ * arr = new Complex128Array( arr );
197+ *
198+ * // Create an iterator:
199+ * var it = arr.entries();
200+ *
201+ * // Iterate over the key-value pairs...
202+ * var v = it.next().value;
203+ * // returns [ 0, <Complex128> ]
204+ *
205+ * v = it.next().value;
206+ * // returns [ 1, <Complex128> ]
207+ *
208+ * v = it.next().value;
209+ * // returns [ 2, <Complex128> ]
210+ *
211+ * var bool = it.next().done;
212+ * // returns true
213+ */
214+ entries ( ) : Iterator ;
215+
144216 /**
145217 * Returns an array element.
146218 *
@@ -218,7 +290,7 @@ declare class Complex128Array implements Complex128ArrayInterface {
218290 * im = imag( z );
219291 * // returns -1.0
220292 */
221- set ( value : ArrayLike < number | ComplexLike > | Complex128Array | 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
222294}
223295
224296/**
@@ -292,7 +364,7 @@ interface Constructor {
292364 * var len = arr.length;
293365 * // returns 2
294366 */
295- new ( arg ?: number | TypedArray | ArrayLike < number | ComplexLike > | ArrayBuffer | Iterable < number | ComplexLike > , byteOffset ?: number , length ?: number ) : Complex128Array ; // tslint-disable-line max-line-length
367+ new ( arg ?: number | RealOrComplexTypedArray | ArrayLike < number | ComplexLike > | ArrayBuffer | Iterable < number | ComplexLike > , byteOffset ?: number , length ?: number ) : Complex128Array ; // tslint-disable-line max-line-length
296368
297369 /**
298370 * 128-bit complex number array constructor.
@@ -361,7 +433,7 @@ interface Constructor {
361433 * var len = arr.length;
362434 * // returns 2
363435 */
364- ( arg ?: number | TypedArray | ArrayLike < number | ComplexLike > | ArrayBuffer | Iterable < number | ComplexLike > , byteOffset ?: number , length ?: number ) : Complex128Array ; // tslint-disable-line max-line-length
436+ ( arg ?: number | RealOrComplexTypedArray | ArrayLike < number | ComplexLike > | ArrayBuffer | Iterable < number | ComplexLike > , byteOffset ?: number , length ?: number ) : Complex128Array ; // tslint-disable-line max-line-length
365437
366438 /**
367439 * Constructor name.
@@ -370,7 +442,7 @@ interface Constructor {
370442 * var str = Complex128Array.name;
371443 * // returns 'Complex128Array'
372444 */
373- readonly name : string ;
445+ readonly name : 'Complex128Array' ;
374446
375447 /**
376448 * Size (in bytes) of each array element.
@@ -379,7 +451,7 @@ interface Constructor {
379451 * var nbytes = Complex128Array.BYTES_PER_ELEMENT;
380452 * // returns 16
381453 */
382- readonly BYTES_PER_ELEMENT : number ;
454+ readonly BYTES_PER_ELEMENT : 16 ;
383455
384456 /**
385457 * Creates a new 128-bit complex number array from an array-like object or an iterable.
@@ -423,7 +495,7 @@ interface Constructor {
423495 * var len = arr.length;
424496 * // returns 1
425497 */
426- from ( src : ArrayLike < number | ComplexLike > | Iterable < number | ComplexLike > , clbk ?: Function , thisArg ?: any ) : Complex128Array ; // tslint:disable-line:max-line-length
498+ from ( src : ArrayLike < number | ComplexLike > | RealOrComplexTypedArray | Iterable < number | ComplexLike > , clbk ?: Function , thisArg ?: any ) : Complex128Array ; // tslint:disable-line:max-line-length
427499
428500 /**
429501 * Creates a new 128-bit complex number array from a variable number of arguments.
0 commit comments