@stdlib/ndarray-vector-ctor 0.1.0

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.
@@ -0,0 +1,927 @@
1
+ /*
2
+ * @license Apache-2.0
3
+ *
4
+ * Copyright (c) 2025 The Stdlib Authors.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ // TypeScript Version: 4.1
20
+
21
+ /* eslint-disable @typescript-eslint/unified-signatures */
22
+
23
+ /// <reference types="@stdlib/types"/>
24
+
25
+ import { DataTypeMap, TypedDataTypeMap, Order, Mode } from '@stdlib/types/ndarray';
26
+ import { Collection, AccessorArrayLike } from '@stdlib/types/array';
27
+ import ArrayBuffer = require( '@stdlib/array-buffer' );
28
+
29
+ /**
30
+ * Interface describing function options.
31
+ */
32
+ interface Options {
33
+ /**
34
+ * Array order (either 'row-major' (C-style) or 'column-major' (Fortran-style)).
35
+ */
36
+ order?: Order;
37
+
38
+ /**
39
+ * Specifies how to handle a linear index which exceeds array dimensions (default: 'throw').
40
+ */
41
+ mode?: Mode;
42
+
43
+ /**
44
+ * Boolean indicating whether an array should be read-only (default: false).
45
+ */
46
+ readonly?: boolean;
47
+ }
48
+
49
+ /**
50
+ * Interface for the function returned by the factory method.
51
+ */
52
+ interface GenericVector {
53
+ /**
54
+ * Creates a vector (i.e., a one-dimensional ndarray).
55
+ *
56
+ * @param options - function options
57
+ * @param options.readonly - boolean indicating whether to return a read-only vector
58
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
59
+ * @param options.order - memory layout (either row-major or column-major)
60
+ * @returns one-dimensional ndarray
61
+ */
62
+ ( options?: Options ): DataTypeMap<number>['generic'];
63
+
64
+ /**
65
+ * Creates a vector (i.e., a one-dimensional ndarray).
66
+ *
67
+ * @param length - vector length
68
+ * @param options - function options
69
+ * @param options.readonly - boolean indicating whether to return a read-only vector
70
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
71
+ * @param options.order - memory layout (either row-major or column-major)
72
+ * @returns one-dimensional ndarray
73
+ */
74
+ ( length: number, options?: Options ): DataTypeMap<number>['generic'];
75
+
76
+ /**
77
+ * Creates a vector (i.e., a one-dimensional ndarray).
78
+ *
79
+ * @param obj - array-like object or iterable from which to generate a vector
80
+ * @param options - function options
81
+ * @param options.readonly - boolean indicating whether to return a read-only vector
82
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
83
+ * @param options.order - memory layout (either row-major or column-major)
84
+ * @returns one-dimensional ndarray
85
+ */
86
+ <T = unknown>( obj: Collection<T> | AccessorArrayLike<T> | Iterable<T>, options?: Options ): DataTypeMap<T>['generic'];
87
+ }
88
+
89
+ /**
90
+ * Interface for the function returned by the factory method.
91
+ */
92
+ interface TypedVector<T extends keyof TypedDataTypeMap> {
93
+ /**
94
+ * Creates a vector (i.e., a one-dimensional ndarray).
95
+ *
96
+ * @param options - function options
97
+ * @param options.readonly - boolean indicating whether to return a read-only vector
98
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
99
+ * @param options.order - memory layout (either row-major or column-major)
100
+ * @returns one-dimensional ndarray
101
+ */
102
+ ( options?: Options ): TypedDataTypeMap[T];
103
+
104
+ /**
105
+ * Creates a vector (i.e., a one-dimensional ndarray).
106
+ *
107
+ * @param length - vector length
108
+ * @param options - function options
109
+ * @param options.readonly - boolean indicating whether to return a read-only vector
110
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
111
+ * @param options.order - memory layout (either row-major or column-major)
112
+ * @returns one-dimensional ndarray
113
+ */
114
+ ( length: number, options?: Options ): TypedDataTypeMap[T];
115
+
116
+ /**
117
+ * Creates a vector (i.e., a one-dimensional ndarray).
118
+ *
119
+ * @param obj - array-like object or iterable from which to generate a vector
120
+ * @param options - function options
121
+ * @param options.readonly - boolean indicating whether to return a read-only vector
122
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
123
+ * @param options.order - memory layout (either row-major or column-major)
124
+ * @returns one-dimensional ndarray
125
+ */
126
+ ( obj: Collection<unknown> | AccessorArrayLike<unknown> | Iterable<unknown>, options?: Options ): TypedDataTypeMap[T];
127
+
128
+ /**
129
+ * Creates a vector (i.e., a one-dimensional ndarray).
130
+ *
131
+ * @param buffer - underlying ArrayBuffer
132
+ * @param options - function options
133
+ * @param options.readonly - boolean indicating whether to return a read-only vector
134
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
135
+ * @param options.order - memory layout (either row-major or column-major)
136
+ * @returns one-dimensional ndarray
137
+ */
138
+ ( buffer: ArrayBuffer, options?: Options ): TypedDataTypeMap[T];
139
+
140
+ /**
141
+ * Creates a vector (i.e., a one-dimensional ndarray).
142
+ *
143
+ * @param buffer - underlying ArrayBuffer
144
+ * @param byteOffset - integer byte offset specifying the location of the first vector element
145
+ * @param options - function options
146
+ * @param options.readonly - boolean indicating whether to return a read-only vector
147
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
148
+ * @param options.order - memory layout (either row-major or column-major)
149
+ * @returns one-dimensional ndarray
150
+ */
151
+ ( buffer: ArrayBuffer, byteOffset: number, options?: Options ): TypedDataTypeMap[T];
152
+
153
+ /**
154
+ * Creates a vector (i.e., a one-dimensional ndarray).
155
+ *
156
+ * @param buffer - underlying ArrayBuffer
157
+ * @param byteOffset - integer byte offset specifying the location of the first vector element
158
+ * @param length - view length; if not provided, the view spans from the byteOffset to the end of the underlying ArrayBuffer
159
+ * @param options - function options
160
+ * @param options.readonly - boolean indicating whether to return a read-only vector
161
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
162
+ * @param options.order - memory layout (either row-major or column-major)
163
+ * @returns one-dimensional ndarray
164
+ */
165
+ ( buffer: ArrayBuffer, byteOffset: number, length: number, options?: Options ): TypedDataTypeMap[T];
166
+ }
167
+
168
+ /**
169
+ * Interface for creating a vector (i.e., a one-dimensional ndarray).
170
+ */
171
+ interface Vector {
172
+ /**
173
+ * Creates a vector (i.e., a one-dimensional ndarray).
174
+ *
175
+ * @param dtype - data type (default: 'float64')
176
+ * @param options - function options
177
+ * @param options.readonly - boolean indicating whether to return a read-only vector
178
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
179
+ * @param options.order - memory layout (either row-major or column-major)
180
+ * @returns one-dimensional ndarray
181
+ *
182
+ * @example
183
+ * var numel = require( '@stdlib/ndarray-numel' );
184
+ * var getDType = require( '@stdlib/ndarray-dtype' );
185
+ *
186
+ * var arr = vector();
187
+ * // returns <ndarray>
188
+ *
189
+ * var len = numel( arr );
190
+ * // returns 0
191
+ *
192
+ * var dt = getDType( arr );
193
+ * // returns 'float64'
194
+ *
195
+ * @example
196
+ * var numel = require( '@stdlib/ndarray-numel' );
197
+ * var getDType = require( '@stdlib/ndarray-dtype' );
198
+ *
199
+ * var arr = vector( 'float32' );
200
+ * // returns <ndarray>
201
+ *
202
+ * var len = numel( arr );
203
+ * // returns 0
204
+ *
205
+ * var dt = getDType( arr );
206
+ * // returns 'float32'
207
+ *
208
+ * @example
209
+ * var numel = require( '@stdlib/ndarray-numel' );
210
+ * var getDType = require( '@stdlib/ndarray-dtype' );
211
+ *
212
+ * var arr = vector( 'float32', {} );
213
+ * // returns <ndarray>
214
+ *
215
+ * var len = numel( arr );
216
+ * // returns 0
217
+ *
218
+ * var dt = getDType( arr );
219
+ * // returns 'float32'
220
+ */
221
+ <T = number, U extends keyof DataTypeMap<T> = 'float64'>( dtype?: U, options?: Options ): DataTypeMap<T>[U];
222
+
223
+ /**
224
+ * Creates a vector (i.e., a one-dimensional ndarray).
225
+ *
226
+ * @param options - function options
227
+ * @param options.readonly - boolean indicating whether to return a read-only vector
228
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
229
+ * @param options.order - memory layout (either row-major or column-major)
230
+ * @returns one-dimensional ndarray
231
+ *
232
+ * @example
233
+ * var numel = require( '@stdlib/ndarray-numel' );
234
+ * var getDType = require( '@stdlib/ndarray-dtype' );
235
+ *
236
+ * var arr = vector( {} );
237
+ * // returns <ndarray>
238
+ *
239
+ * var len = numel( arr );
240
+ * // returns 0
241
+ *
242
+ * var dt = getDType( arr );
243
+ * // returns 'float64'
244
+ */
245
+ <U extends keyof DataTypeMap<number> = 'float64'>( options: Options ): DataTypeMap<number>[U];
246
+
247
+ /**
248
+ * Creates a vector (i.e., a one-dimensional ndarray).
249
+ *
250
+ * @param length - vector length
251
+ * @param dtype - data type (default: 'float64')
252
+ * @param options - function options
253
+ * @param options.readonly - boolean indicating whether to return a read-only vector
254
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
255
+ * @param options.order - memory layout (either row-major or column-major)
256
+ * @returns one-dimensional ndarray
257
+ *
258
+ * @example
259
+ * var numel = require( '@stdlib/ndarray-numel' );
260
+ * var getDType = require( '@stdlib/ndarray-dtype' );
261
+ *
262
+ * var arr = vector( 2 );
263
+ * // returns <ndarray>
264
+ *
265
+ * var len = numel( arr );
266
+ * // returns 2
267
+ *
268
+ * var dt = getDType( arr );
269
+ * // returns 'float64'
270
+ *
271
+ * @example
272
+ * var numel = require( '@stdlib/ndarray-numel' );
273
+ * var getDType = require( '@stdlib/ndarray-dtype' );
274
+ *
275
+ * var arr = vector( 2, 'float32' );
276
+ * // returns <ndarray>
277
+ *
278
+ * var len = numel( arr );
279
+ * // returns 2
280
+ *
281
+ * var dt = getDType( arr );
282
+ * // returns 'float32'
283
+ *
284
+ * @example
285
+ * var numel = require( '@stdlib/ndarray-numel' );
286
+ * var getDType = require( '@stdlib/ndarray-dtype' );
287
+ *
288
+ * var arr = vector( 2, 'float32', {} );
289
+ * // returns <ndarray>
290
+ *
291
+ * var len = numel( arr );
292
+ * // returns 2
293
+ *
294
+ * var dt = getDType( arr );
295
+ * // returns 'float32'
296
+ */
297
+ <T = number, U extends keyof DataTypeMap<T> = 'float64'>( length: number, dtype?: U, options?: Options ): DataTypeMap<T>[U];
298
+
299
+ /**
300
+ * Creates a vector (i.e., a one-dimensional ndarray).
301
+ *
302
+ * @param length - vector length
303
+ * @param options - function options
304
+ * @param options.readonly - boolean indicating whether to return a read-only vector
305
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
306
+ * @param options.order - memory layout (either row-major or column-major)
307
+ * @returns one-dimensional ndarray
308
+ *
309
+ * @example
310
+ * var numel = require( '@stdlib/ndarray-numel' );
311
+ * var getDType = require( '@stdlib/ndarray-dtype' );
312
+ *
313
+ * var arr = vector( 2, {} );
314
+ * // returns <ndarray>
315
+ *
316
+ * var len = numel( arr );
317
+ * // returns 2
318
+ *
319
+ * var dt = getDType( arr );
320
+ * // returns 'float64'
321
+ */
322
+ <U extends keyof DataTypeMap<number> = 'float64'>( length: number, options: Options ): DataTypeMap<number>[U];
323
+
324
+ /**
325
+ * Creates a vector (i.e., a one-dimensional ndarray).
326
+ *
327
+ * @param obj - array-like object or iterable from which to generate a vector
328
+ * @param dtype - data type (default: 'float64')
329
+ * @param options - function options
330
+ * @param options.readonly - boolean indicating whether to return a read-only vector
331
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
332
+ * @param options.order - memory layout (either row-major or column-major)
333
+ * @returns one-dimensional ndarray
334
+ *
335
+ * @example
336
+ * var numel = require( '@stdlib/ndarray-numel' );
337
+ * var getDType = require( '@stdlib/ndarray-dtype' );
338
+ *
339
+ * var arr = vector( [ 1.0, 2.0 ] );
340
+ * // returns <ndarray>
341
+ *
342
+ * var len = numel( arr );
343
+ * // returns 2
344
+ *
345
+ * var dt = getDType( arr );
346
+ * // returns 'float64'
347
+ *
348
+ * @example
349
+ * var numel = require( '@stdlib/ndarray-numel' );
350
+ * var getDType = require( '@stdlib/ndarray-dtype' );
351
+ *
352
+ * var arr = vector( [ 1, 2 ], 'int32' );
353
+ * // returns <ndarray>
354
+ *
355
+ * var len = numel( arr );
356
+ * // returns 2
357
+ *
358
+ * var dt = getDType( arr );
359
+ * // returns 'int32'
360
+ *
361
+ * @example
362
+ * var numel = require( '@stdlib/ndarray-numel' );
363
+ * var getDType = require( '@stdlib/ndarray-dtype' );
364
+ *
365
+ * var arr = vector( [ 1, 2 ], 'int32', {} );
366
+ * // returns <ndarray>
367
+ *
368
+ * var len = numel( arr );
369
+ * // returns 2
370
+ *
371
+ * var dt = getDType( arr );
372
+ * // returns 'int32'
373
+ */
374
+ <T = unknown, U extends keyof DataTypeMap<T> = 'float64'>( obj: Collection<T> | AccessorArrayLike<T> | Iterable<T>, dtype?: U, options?: Options ): DataTypeMap<T>[U];
375
+
376
+ /**
377
+ * Creates a vector (i.e., a one-dimensional ndarray).
378
+ *
379
+ * @param obj - array-like object or iterable from which to generate a vector
380
+ * @param options - function options
381
+ * @param options.readonly - boolean indicating whether to return a read-only vector
382
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
383
+ * @param options.order - memory layout (either row-major or column-major)
384
+ * @returns one-dimensional ndarray
385
+ *
386
+ * @example
387
+ * var numel = require( '@stdlib/ndarray-numel' );
388
+ * var getDType = require( '@stdlib/ndarray-dtype' );
389
+ *
390
+ * var arr = vector( [ 1.0, 2.0 ], {} );
391
+ * // returns <ndarray>
392
+ *
393
+ * var len = numel( arr );
394
+ * // returns 2
395
+ *
396
+ * var dt = getDType( arr );
397
+ * // returns 'float64'
398
+ */
399
+ <T = unknown, U extends keyof DataTypeMap<T> = 'float64'>( obj: Collection<T> | AccessorArrayLike<T> | Iterable<T>, options: Options ): DataTypeMap<T>[U];
400
+
401
+ /**
402
+ * Creates a vector (i.e., a one-dimensional ndarray).
403
+ *
404
+ * @param buffer - underlying ArrayBuffer
405
+ * @param dtype - data type (default: 'float64')
406
+ * @param options - function options
407
+ * @param options.readonly - boolean indicating whether to return a read-only vector
408
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
409
+ * @param options.order - memory layout (either row-major or column-major)
410
+ * @returns one-dimensional ndarray
411
+ *
412
+ * @example
413
+ * var numel = require( '@stdlib/ndarray-numel' );
414
+ * var getDType = require( '@stdlib/ndarray-dtype' );
415
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
416
+ *
417
+ * var buf = new ArrayBuffer( 16 );
418
+ * var arr = vector( buf );
419
+ * // returns <ndarray>
420
+ *
421
+ * var len = numel( arr );
422
+ * // returns 2
423
+ *
424
+ * var dt = getDType( arr );
425
+ * // returns 'float64'
426
+ *
427
+ * @example
428
+ * var numel = require( '@stdlib/ndarray-numel' );
429
+ * var getDType = require( '@stdlib/ndarray-dtype' );
430
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
431
+ *
432
+ * var buf = new ArrayBuffer( 16 );
433
+ * var arr = vector( buf, 'float32' );
434
+ * // returns <ndarray>
435
+ *
436
+ * var len = numel( arr );
437
+ * // returns 4
438
+ *
439
+ * var dt = getDType( arr );
440
+ * // returns 'float32'
441
+ *
442
+ * @example
443
+ * var numel = require( '@stdlib/ndarray-numel' );
444
+ * var getDType = require( '@stdlib/ndarray-dtype' );
445
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
446
+ *
447
+ * var buf = new ArrayBuffer( 16 );
448
+ * var arr = vector( buf, 'float32', {} );
449
+ * // returns <ndarray>
450
+ *
451
+ * var len = numel( arr );
452
+ * // returns 4
453
+ *
454
+ * var dt = getDType( arr );
455
+ * // returns 'float32'
456
+ */
457
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, dtype?: U, options?: Options ): TypedDataTypeMap[U];
458
+
459
+ /**
460
+ * Creates a vector (i.e., a one-dimensional ndarray).
461
+ *
462
+ * @param buffer - underlying ArrayBuffer
463
+ * @param options - function options
464
+ * @param options.readonly - boolean indicating whether to return a read-only vector
465
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
466
+ * @param options.order - memory layout (either row-major or column-major)
467
+ * @returns one-dimensional ndarray
468
+ *
469
+ * @example
470
+ * var numel = require( '@stdlib/ndarray-numel' );
471
+ * var getDType = require( '@stdlib/ndarray-dtype' );
472
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
473
+ *
474
+ * var buf = new ArrayBuffer( 16 );
475
+ * var arr = vector( buf, {} );
476
+ * // returns <ndarray>
477
+ *
478
+ * var len = numel( arr );
479
+ * // returns 2
480
+ *
481
+ * var dt = getDType( arr );
482
+ * // returns 'float64'
483
+ */
484
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, options: Options ): TypedDataTypeMap[U];
485
+
486
+ /**
487
+ * Creates a vector (i.e., a one-dimensional ndarray).
488
+ *
489
+ * @param buffer - underlying ArrayBuffer
490
+ * @param byteOffset - integer byte offset specifying the location of the first vector element (default: 0)
491
+ * @param dtype - data type (default: 'float64')
492
+ * @param options - function options
493
+ * @param options.readonly - boolean indicating whether to return a read-only vector
494
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
495
+ * @param options.order - memory layout (either row-major or column-major)
496
+ * @returns one-dimensional ndarray
497
+ *
498
+ * @example
499
+ * var numel = require( '@stdlib/ndarray-numel' );
500
+ * var getDType = require( '@stdlib/ndarray-dtype' );
501
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
502
+ *
503
+ * var buf = new ArrayBuffer( 16 );
504
+ * var arr = vector( buf, 8 );
505
+ * // returns <ndarray>
506
+ *
507
+ * var len = numel( arr );
508
+ * // returns 1
509
+ *
510
+ * var dt = getDType( arr );
511
+ * // returns 'float64'
512
+ *
513
+ * @example
514
+ * var numel = require( '@stdlib/ndarray-numel' );
515
+ * var getDType = require( '@stdlib/ndarray-dtype' );
516
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
517
+ *
518
+ * var buf = new ArrayBuffer( 16 );
519
+ * var arr = vector( buf, 8, 'float32' );
520
+ * // returns <ndarray>
521
+ *
522
+ * var len = numel( arr );
523
+ * // returns 2
524
+ *
525
+ * var dt = getDType( arr );
526
+ * // returns 'float32'
527
+ *
528
+ * @example
529
+ * var numel = require( '@stdlib/ndarray-numel' );
530
+ * var getDType = require( '@stdlib/ndarray-dtype' );
531
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
532
+ *
533
+ * var buf = new ArrayBuffer( 16 );
534
+ * var arr = vector( buf, 8, 'float32', {} );
535
+ * // returns <ndarray>
536
+ *
537
+ * var len = numel( arr );
538
+ * // returns 2
539
+ *
540
+ * var dt = getDType( arr );
541
+ * // returns 'float32'
542
+ */
543
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, byteOffset?: number, dtype?: U, options?: Options ): TypedDataTypeMap[U];
544
+
545
+ /**
546
+ * Creates a vector (i.e., a one-dimensional ndarray).
547
+ *
548
+ * @param buffer - underlying ArrayBuffer
549
+ * @param byteOffset - integer byte offset specifying the location of the first vector element
550
+ * @param options - function options
551
+ * @param options.readonly - boolean indicating whether to return a read-only vector
552
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
553
+ * @param options.order - memory layout (either row-major or column-major)
554
+ * @returns one-dimensional ndarray
555
+ *
556
+ * @example
557
+ * var numel = require( '@stdlib/ndarray-numel' );
558
+ * var getDType = require( '@stdlib/ndarray-dtype' );
559
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
560
+ *
561
+ * var buf = new ArrayBuffer( 16 );
562
+ * var arr = vector( buf, 8 );
563
+ * // returns <ndarray>
564
+ *
565
+ * var len = numel( arr );
566
+ * // returns 1
567
+ *
568
+ * var dt = getDType( arr );
569
+ * // returns 'float64'
570
+ *
571
+ * @example
572
+ * var numel = require( '@stdlib/ndarray-numel' );
573
+ * var getDType = require( '@stdlib/ndarray-dtype' );
574
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
575
+ *
576
+ * var buf = new ArrayBuffer( 16 );
577
+ * var arr = vector( buf, 8, {} );
578
+ * // returns <ndarray>
579
+ *
580
+ * var len = numel( arr );
581
+ * // returns 1
582
+ *
583
+ * var dt = getDType( arr );
584
+ * // returns 'float64'
585
+ */
586
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, byteOffset: number, options: Options ): TypedDataTypeMap[U];
587
+
588
+ /**
589
+ * Creates a vector (i.e., a one-dimensional ndarray).
590
+ *
591
+ * @param buffer - underlying ArrayBuffer
592
+ * @param byteOffset - integer byte offset specifying the location of the first vector element (default: 0)
593
+ * @param length - view length; if not provided, the view spans from the byteOffset to the end of the underlying ArrayBuffer
594
+ * @param dtype - data type (default: 'float64')
595
+ * @param options - function options
596
+ * @param options.readonly - boolean indicating whether to return a read-only vector
597
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
598
+ * @param options.order - memory layout (either row-major or column-major)
599
+ * @returns one-dimensional ndarray
600
+ *
601
+ * @example
602
+ * var numel = require( '@stdlib/ndarray-numel' );
603
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
604
+ *
605
+ * var buf = new ArrayBuffer( 32 );
606
+ * var arr = vector( buf, 8, 2 );
607
+ * // returns <ndarray>
608
+ *
609
+ * var len = numel( arr );
610
+ * // returns 2
611
+ *
612
+ * var dt = getDType( arr );
613
+ * // returns 'float64'
614
+ *
615
+ * @example
616
+ * var numel = require( '@stdlib/ndarray-numel' );
617
+ * var getDType = require( '@stdlib/ndarray-dtype' );
618
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
619
+ *
620
+ * var buf = new ArrayBuffer( 32 );
621
+ * var arr = vector( buf, 8, 2, 'int32' );
622
+ * // returns <ndarray>
623
+ *
624
+ * var len = numel( arr );
625
+ * // returns 2
626
+ *
627
+ * var dt = getDType( arr );
628
+ * // returns 'int32'
629
+ *
630
+ * @example
631
+ * var numel = require( '@stdlib/ndarray-numel' );
632
+ * var getDType = require( '@stdlib/ndarray-dtype' );
633
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
634
+ *
635
+ * var buf = new ArrayBuffer( 32 );
636
+ * var arr = vector( buf, 8, 2, 'int32', {} );
637
+ * // returns <ndarray>
638
+ *
639
+ * var len = numel( arr );
640
+ * // returns 2
641
+ *
642
+ * var dt = getDType( arr );
643
+ * // returns 'int32'
644
+ */
645
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, byteOffset?: number, length?: number, dtype?: U, options?: Options ): TypedDataTypeMap[U];
646
+
647
+ /**
648
+ * Creates a vector (i.e., a one-dimensional ndarray).
649
+ *
650
+ * @param buffer - underlying ArrayBuffer
651
+ * @param byteOffset - integer byte offset specifying the location of the first vector element
652
+ * @param length - view length; if not provided, the view spans from the byteOffset to the end of the underlying ArrayBuffer
653
+ * @param options - function options
654
+ * @param options.readonly - boolean indicating whether to return a read-only vector
655
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
656
+ * @param options.order - memory layout (either row-major or column-major)
657
+ * @returns one-dimensional ndarray
658
+ *
659
+ * @example
660
+ * var numel = require( '@stdlib/ndarray-numel' );
661
+ * var getDType = require( '@stdlib/ndarray-dtype' );
662
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
663
+ *
664
+ * var buf = new ArrayBuffer( 32 );
665
+ * var arr = vector( buf, 8, 2, {} );
666
+ * // returns <ndarray>
667
+ *
668
+ * var len = numel( arr );
669
+ * // returns 2
670
+ *
671
+ * var dt = getDType( arr );
672
+ * // returns 'float64'
673
+ */
674
+ <U extends keyof TypedDataTypeMap = 'float64'>( buffer: ArrayBuffer, byteOffset: number, length: number, options: Options ): TypedDataTypeMap[U];
675
+
676
+ /**
677
+ * Returns a function for creating a vector (i.e., a one-dimensional ndarray).
678
+ *
679
+ * @param dtype - data type
680
+ * @param options - function options
681
+ * @param options.readonly - boolean indicating whether to return a read-only vector by default
682
+ * @param options.mode - specifies the default behavior when handling indices which exceed vector dimensions
683
+ * @param options.order - default memory layout (either row-major or column-major)
684
+ * @returns function for creating a vector
685
+ *
686
+ * @example
687
+ * var getDType = require( '@stdlib/ndarray-dtype' );
688
+ * var numel = require( '@stdlib/ndarray-numel' );
689
+ *
690
+ * var Float32Vector = vector.factory( 'float32' );
691
+ *
692
+ * var arr = new Float32Vector( [ 1, 2, 3 ] );
693
+ * // returns <ndarray>
694
+ *
695
+ * var dt = getDType( arr );
696
+ * // returns 'float32'
697
+ *
698
+ * var len = numel( arr );
699
+ * // returns 3
700
+ *
701
+ * @example
702
+ * var getDType = require( '@stdlib/ndarray-dtype' );
703
+ * var numel = require( '@stdlib/ndarray-numel' );
704
+ *
705
+ * var Float32Vector = vector.factory( 'float32' );
706
+ *
707
+ * var arr = new Float32Vector( 3 );
708
+ * // returns <ndarray>
709
+ *
710
+ * var dt = getDType( arr );
711
+ * // returns 'float32'
712
+ *
713
+ * var len = numel( arr );
714
+ * // returns 3
715
+ *
716
+ * @example
717
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
718
+ * var getDType = require( '@stdlib/ndarray-dtype' );
719
+ * var numel = require( '@stdlib/ndarray-numel' );
720
+ *
721
+ * var Float32Vector = vector.factory( 'float32' );
722
+ *
723
+ * var buf = new ArrayBuffer( 12 );
724
+ * var arr = new Float32Vector( buf );
725
+ * // returns <ndarray>
726
+ *
727
+ * var dt = getDType( arr );
728
+ * // returns 'float32'
729
+ *
730
+ * var len = numel( arr );
731
+ * // returns 3
732
+ *
733
+ * @example
734
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
735
+ * var getDType = require( '@stdlib/ndarray-dtype' );
736
+ * var numel = require( '@stdlib/ndarray-numel' );
737
+ *
738
+ * var Float32Vector = vector.factory( 'float32' );
739
+ *
740
+ * var buf = new ArrayBuffer( 12 );
741
+ * var arr = new Float32Vector( buf, 4 );
742
+ * // returns <ndarray>
743
+ *
744
+ * var dt = getDType( arr );
745
+ * // returns 'float32'
746
+ *
747
+ * var len = numel( arr );
748
+ * // returns 2
749
+ *
750
+ * @example
751
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
752
+ * var getDType = require( '@stdlib/ndarray-dtype' );
753
+ * var numel = require( '@stdlib/ndarray-numel' );
754
+ *
755
+ * var Float32Vector = vector.factory( 'float32' );
756
+ *
757
+ * var buf = new ArrayBuffer( 12 );
758
+ * var arr = new Float32Vector( buf, 4, 1 );
759
+ * // returns <ndarray>
760
+ *
761
+ * var dt = getDType( arr );
762
+ * // returns 'float32'
763
+ *
764
+ * var len = numel( arr );
765
+ * // returns 1
766
+ */
767
+ factory<T extends keyof TypedDataTypeMap>( dtype: T, options?: Options ): TypedVector<T>;
768
+
769
+ /**
770
+ * Returns a function for creating a vector (i.e., a one-dimensional ndarray).
771
+ *
772
+ * @param dtype - data type
773
+ * @param options - function options
774
+ * @param options.readonly - boolean indicating whether to return a read-only vector by default
775
+ * @param options.mode - specifies the default behavior when handling indices which exceed vector dimensions
776
+ * @param options.order - default memory layout (either row-major or column-major)
777
+ * @returns function for creating a vector
778
+ *
779
+ * @example
780
+ * var getDType = require( '@stdlib/ndarray-dtype' );
781
+ * var numel = require( '@stdlib/ndarray-numel' );
782
+ *
783
+ * var GenericVector = vector.factory( 'generic' );
784
+ *
785
+ * var arr = new GenericVector( [ 1, 2, 3 ] );
786
+ * // returns <ndarray>
787
+ *
788
+ * var dt = getDType( arr );
789
+ * // returns 'generic'
790
+ *
791
+ * var len = numel( arr );
792
+ * // returns 3
793
+ *
794
+ * @example
795
+ * var getDType = require( '@stdlib/ndarray-dtype' );
796
+ * var numel = require( '@stdlib/ndarray-numel' );
797
+ *
798
+ * var GenericVector = vector.factory( 'generic' );
799
+ *
800
+ * var arr = new GenericVector( 3 );
801
+ * // returns <ndarray>
802
+ *
803
+ * var dt = getDType( arr );
804
+ * // returns 'generic'
805
+ *
806
+ * var len = numel( arr );
807
+ * // returns 3
808
+ */
809
+ factory( dtype: 'generic', options?: Options ): GenericVector;
810
+ }
811
+
812
+ /**
813
+ * Creates a vector (i.e., a one-dimensional ndarray).
814
+ *
815
+ * @param arg - length, typed array, array-like object, buffer, or iterable
816
+ * @param byteOffset - integer byte offset specifying the location of the first vector element (default: 0)
817
+ * @param length - view length; if not provided, the view spans from the byteOffset to the end of the underlying ArrayBuffer
818
+ * @param dtype - data type (default: 'float64')
819
+ * @param options - function options
820
+ * @param options.readonly - boolean indicating whether to return a read-only vector
821
+ * @param options.mode - specifies how to handle indices which exceed vector dimensions
822
+ * @param options.order - memory layout (either row-major or column-major)
823
+ * @returns one-dimensional ndarray
824
+ *
825
+ * @example
826
+ * var getDType = require( '@stdlib/ndarray-dtype' );
827
+ * var numel = require( '@stdlib/ndarray-numel' );
828
+ *
829
+ * var arr = vector();
830
+ * // returns <ndarray>
831
+ *
832
+ * var len = numel( arr );
833
+ * // returns 0
834
+ *
835
+ * var dt = getDType( arr );
836
+ * // returns 'float64'
837
+ *
838
+ * @example
839
+ * var getDType = require( '@stdlib/ndarray-dtype' );
840
+ * var numel = require( '@stdlib/ndarray-numel' );
841
+ *
842
+ * var arr = vector( 2 );
843
+ * // returns <ndarray>
844
+ *
845
+ * var len = numel( arr );
846
+ * // returns 2
847
+ *
848
+ * var dt = getDType( arr );
849
+ * // returns 'float64'
850
+ *
851
+ * @example
852
+ * var getDType = require( '@stdlib/ndarray-dtype' );
853
+ * var numel = require( '@stdlib/ndarray-numel' );
854
+ *
855
+ * var arr = vector( [ 1.0, 2.0 ] );
856
+ * // returns <ndarray>
857
+ *
858
+ * var len = numel( arr );
859
+ * // returns 2
860
+ *
861
+ * var dt = getDType( arr );
862
+ * // returns 'float64'
863
+ *
864
+ * @example
865
+ * var getDType = require( '@stdlib/ndarray-dtype' );
866
+ * var numel = require( '@stdlib/ndarray-numel' );
867
+ *
868
+ * var arr = vector( [ 1.0, 2.0 ], 'float32' );
869
+ * // returns <ndarray>
870
+ *
871
+ * var len = numel( arr );
872
+ * // returns 2
873
+ *
874
+ * var dt = getDType( arr );
875
+ * // returns 'float32'
876
+ *
877
+ * @example
878
+ * var numel = require( '@stdlib/ndarray-numel' );
879
+ * var getDType = require( '@stdlib/ndarray-dtype' );
880
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
881
+ *
882
+ * var buf = new ArrayBuffer( 32 );
883
+ * var arr = vector( buf, 8, 2, 'int32' );
884
+ * // returns <ndarray>
885
+ *
886
+ * var len = numel( arr );
887
+ * // returns 2
888
+ *
889
+ * var dt = getDType( arr );
890
+ * // returns 'int32'
891
+ *
892
+ * @example
893
+ * var numel = require( '@stdlib/ndarray-numel' );
894
+ * var getDType = require( '@stdlib/ndarray-dtype' );
895
+ * var ArrayBuffer = require( '@stdlib/array-buffer' );
896
+ *
897
+ * var buf = new ArrayBuffer( 32 );
898
+ * var arr = vector( buf, 8, 2, 'int32', {} );
899
+ * // returns <ndarray>
900
+ *
901
+ * var len = numel( arr );
902
+ * // returns 2
903
+ *
904
+ * var dt = getDType( arr );
905
+ * // returns 'int32'
906
+ *
907
+ * @example
908
+ * var getDType = require( '@stdlib/ndarray-dtype' );
909
+ * var numel = require( '@stdlib/ndarray-numel' );
910
+ *
911
+ * var Float32Vector = vector.factory( 'float32' );
912
+ *
913
+ * var arr = new Float32Vector( [ 1, 2, 3 ] );
914
+ * // returns <ndarray>
915
+ *
916
+ * var dt = getDType( arr );
917
+ * // returns 'float32'
918
+ *
919
+ * var len = numel( arr );
920
+ * // returns 3
921
+ */
922
+ declare var vector: Vector;
923
+
924
+
925
+ // EXPORTS //
926
+
927
+ export = vector;