@stdlib/blas-base-wasm 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.
- package/LICENSE +177 -0
- package/NOTICE +1 -0
- package/README.md +204 -0
- package/SECURITY.md +5 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +7 -0
- package/docs/types/index.d.ts +1025 -0
- package/lib/index.js +330 -0
- package/package.json +110 -0
|
@@ -0,0 +1,1025 @@
|
|
|
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 max-lines */
|
|
22
|
+
|
|
23
|
+
import ccopy = require( '@stdlib/blas-base-ccopy' );
|
|
24
|
+
import cscal = require( '@stdlib/blas-base-cscal' );
|
|
25
|
+
import csrot = require( '@stdlib/blas-base-csrot' );
|
|
26
|
+
import cswap = require( '@stdlib/blas-base-cswap' );
|
|
27
|
+
import dasum = require( '@stdlib/blas-base-dasum' );
|
|
28
|
+
import daxpy = require( '@stdlib/blas-base-daxpy' );
|
|
29
|
+
import dcopy = require( '@stdlib/blas-base-dcopy' );
|
|
30
|
+
import ddot = require( '@stdlib/blas-base-ddot' );
|
|
31
|
+
import dnrm2 = require( '@stdlib/blas-base-dnrm2' );
|
|
32
|
+
import drot = require( '@stdlib/blas-base-drot' );
|
|
33
|
+
import drotm = require( '@stdlib/blas-base-drotm' );
|
|
34
|
+
import dscal = require( '@stdlib/blas-base-dscal' );
|
|
35
|
+
import dsdot = require( '@stdlib/blas-base-dsdot' );
|
|
36
|
+
import dswap = require( '@stdlib/blas-base-dswap' );
|
|
37
|
+
import dznrm2 = require( '@stdlib/blas-base-dznrm2' );
|
|
38
|
+
import idamax = require( '@stdlib/blas-base-idamax' );
|
|
39
|
+
import isamax = require( '@stdlib/blas-base-isamax' );
|
|
40
|
+
import sasum = require( '@stdlib/blas-base-sasum' );
|
|
41
|
+
import saxpy = require( '@stdlib/blas-base-saxpy' );
|
|
42
|
+
import scasum = require( '@stdlib/blas-base-scasum' );
|
|
43
|
+
import scnrm2 = require( '@stdlib/blas-base-scnrm2' );
|
|
44
|
+
import scopy = require( '@stdlib/blas-base-scopy' );
|
|
45
|
+
import sdot = require( '@stdlib/blas-base-sdot' );
|
|
46
|
+
import sdsdot = require( '@stdlib/blas-base-sdsdot' );
|
|
47
|
+
import snrm2 = require( '@stdlib/blas-base-snrm2' );
|
|
48
|
+
import srot = require( '@stdlib/blas-base-srot' );
|
|
49
|
+
import srotm = require( '@stdlib/blas-base-srotm' );
|
|
50
|
+
import sscal = require( '@stdlib/blas-base-sscal' );
|
|
51
|
+
import sswap = require( '@stdlib/blas-base-sswap' );
|
|
52
|
+
import zcopy = require( '@stdlib/blas-base-zcopy' );
|
|
53
|
+
import zdrot = require( '@stdlib/blas-base-zdrot' );
|
|
54
|
+
import zswap = require( '@stdlib/blas-base-zswap' );
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Interface describing the `wasm` namespace.
|
|
58
|
+
*/
|
|
59
|
+
interface Namespace {
|
|
60
|
+
/**
|
|
61
|
+
* Copies values from one complex single-precision floating-point vector to another complex single-precision floating-point vector.
|
|
62
|
+
*
|
|
63
|
+
* @param N - number of indexed elements
|
|
64
|
+
* @param x - input array
|
|
65
|
+
* @param strideX - `x` stride length
|
|
66
|
+
* @param y - output array
|
|
67
|
+
* @param strideY - `y` stride length
|
|
68
|
+
* @returns output array
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
72
|
+
*
|
|
73
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
74
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
75
|
+
*
|
|
76
|
+
* ns.ccopy( x.length, x, 1, y, 1 );
|
|
77
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
81
|
+
*
|
|
82
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
83
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
84
|
+
*
|
|
85
|
+
* ns.ccopy.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
86
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
87
|
+
*/
|
|
88
|
+
ccopy: typeof ccopy;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Scales a single-precision complex floating-point vector by a single-precision complex floating-point constant.
|
|
92
|
+
*
|
|
93
|
+
* @param N - number of indexed elements
|
|
94
|
+
* @param alpha - scalar constant
|
|
95
|
+
* @param x - input array
|
|
96
|
+
* @param strideX - `x` stride length
|
|
97
|
+
* @returns input array
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
101
|
+
* var Complex64 = require( '@stdlib/complex-float32-ctor' );
|
|
102
|
+
*
|
|
103
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
104
|
+
* var alpha = new Complex64( 2.0, 2.0 );
|
|
105
|
+
*
|
|
106
|
+
* ns.cscal( 3, alpha, x, 1 );
|
|
107
|
+
* // x => <Complex64Array>[ -2.0, 6.0, -2.0, 14.0, -2.0, 22.0 ]
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
111
|
+
* var Complex64 = require( '@stdlib/complex-float32-ctor' );
|
|
112
|
+
*
|
|
113
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
114
|
+
* var alpha = new Complex64( 2.0, 2.0 );
|
|
115
|
+
*
|
|
116
|
+
* ns.cscal.ndarray( 3, alpha, x, 1, 0 );
|
|
117
|
+
* // x => <Complex64Array>[ -2.0, 6.0, -2.0, 14.0, -2.0, 22.0 ]
|
|
118
|
+
*/
|
|
119
|
+
cscal: typeof cscal;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Applies a plane rotation.
|
|
123
|
+
*
|
|
124
|
+
* @param N - number of indexed elements
|
|
125
|
+
* @param x - first input array
|
|
126
|
+
* @param strideX - `x` stride length
|
|
127
|
+
* @param y - second input array
|
|
128
|
+
* @param strideY - `y` stride length
|
|
129
|
+
* @param c - cosine of the angle of rotation
|
|
130
|
+
* @param s - sine of the angle of rotation
|
|
131
|
+
* @returns `y`
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
135
|
+
*
|
|
136
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
|
|
137
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
138
|
+
*
|
|
139
|
+
* ns.csrot( 2, x, 2, y, 1, 0.8, 0.6 );
|
|
140
|
+
* // x => <Complex64Array>[ ~0.8, ~1.6, 3.0, 4.0, 4.0, ~4.8, 7.0, 8.0 ]
|
|
141
|
+
* // y => <Complex64Array>[ ~-0.6, ~-1.2, -3.0, ~-3.6, 0.0, 0.0, 0.0, 0.0 ]
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
145
|
+
*
|
|
146
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
|
|
147
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
148
|
+
*
|
|
149
|
+
* ns.csrot.ndarray( 2, x, 2, 0, y, 1, 0, 0.8, 0.6 );
|
|
150
|
+
* // x => <Complex64Array>[ ~0.8, ~1.6, 3.0, 4.0, 4.0, ~4.8, 7.0, 8.0 ]
|
|
151
|
+
* // y => <Complex64Array>[ ~-0.6, ~-1.2, -3.0, ~-3.6, 0.0, 0.0, 0.0, 0.0 ]
|
|
152
|
+
*/
|
|
153
|
+
csrot: typeof csrot;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Interchanges two complex single-precision floating-point vectors.
|
|
157
|
+
*
|
|
158
|
+
* @param N - number of indexed elements
|
|
159
|
+
* @param x - first input array
|
|
160
|
+
* @param strideX - `x` stride length
|
|
161
|
+
* @param y - second input array
|
|
162
|
+
* @param strideY - `y` stride length
|
|
163
|
+
* @returns `y`
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
167
|
+
*
|
|
168
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
169
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
170
|
+
*
|
|
171
|
+
* ns.cswap( x.length, x, 1, y, 1 );
|
|
172
|
+
* // x => <Complex64Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]
|
|
173
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
177
|
+
*
|
|
178
|
+
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
179
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
180
|
+
*
|
|
181
|
+
* ns.cswap.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
182
|
+
* // x => <Complex64Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]
|
|
183
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
184
|
+
*/
|
|
185
|
+
cswap: typeof cswap;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Computes the sum of the absolute values.
|
|
189
|
+
*
|
|
190
|
+
* @param N - number of indexed elements
|
|
191
|
+
* @param x - input array
|
|
192
|
+
* @param stride - stride length
|
|
193
|
+
* @returns sum of absolute values
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
197
|
+
*
|
|
198
|
+
* var x = new Float64Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
199
|
+
*
|
|
200
|
+
* var z = ns.dasum( x.length, x, 1 );
|
|
201
|
+
* // returns 21.0
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
205
|
+
*
|
|
206
|
+
* var x = new Float64Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
207
|
+
*
|
|
208
|
+
* var z = ns.dasum.ndarray( x.length, x, 1, 0 );
|
|
209
|
+
* // returns 21.0
|
|
210
|
+
*/
|
|
211
|
+
dasum: typeof dasum;
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Multiplies a vector `x` by a constant `alpha` and adds the result to `y`.
|
|
215
|
+
*
|
|
216
|
+
* @param N - number of indexed elements
|
|
217
|
+
* @param alpha - constant
|
|
218
|
+
* @param x - input array
|
|
219
|
+
* @param strideX - `x` stride length
|
|
220
|
+
* @param y - output array
|
|
221
|
+
* @param strideY - `y` stride length
|
|
222
|
+
* @returns output array
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
226
|
+
*
|
|
227
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
228
|
+
* var y = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );
|
|
229
|
+
*
|
|
230
|
+
* ns.daxpy( x.length, 5.0, x, 1, y, 1 );
|
|
231
|
+
* // y => <Float64Array>[ 6.0, 11.0, 16.0, 21.0, 26.0 ]
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
235
|
+
*
|
|
236
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
237
|
+
* var y = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );
|
|
238
|
+
*
|
|
239
|
+
* ns.daxpy.ndarray( x.length, 5.0, x, 1, 0, y, 1, 0 );
|
|
240
|
+
* // y => <Float64Array>[ 6.0, 11.0, 16.0, 21.0, 26.0 ]
|
|
241
|
+
*/
|
|
242
|
+
daxpy: typeof daxpy;
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Copies values from `x` into `y`.
|
|
246
|
+
*
|
|
247
|
+
* @param N - number of indexed elements
|
|
248
|
+
* @param x - input array
|
|
249
|
+
* @param strideX - `x` stride length
|
|
250
|
+
* @param y - output array
|
|
251
|
+
* @param strideY - `y` stride length
|
|
252
|
+
* @returns output array
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
256
|
+
*
|
|
257
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
258
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
259
|
+
*
|
|
260
|
+
* ns.dcopy( x.length, x, 1, y, 1 );
|
|
261
|
+
* // y => <Float64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
265
|
+
*
|
|
266
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
267
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
268
|
+
*
|
|
269
|
+
* ns.dcopy.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
270
|
+
* // y => <Float64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
271
|
+
*/
|
|
272
|
+
dcopy: typeof dcopy;
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Computes the dot product of `x` and `y`.
|
|
276
|
+
*
|
|
277
|
+
* @param N - number of indexed elements
|
|
278
|
+
* @param x - first input array
|
|
279
|
+
* @param strideX - `x` stride length
|
|
280
|
+
* @param y - second input array
|
|
281
|
+
* @param strideY - `y` stride length
|
|
282
|
+
* @returns dot product
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
286
|
+
*
|
|
287
|
+
* var x = new Float64Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
288
|
+
* var y = new Float64Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
289
|
+
*
|
|
290
|
+
* var z = ns.ddot( x.length, x, 1, y, 1 );
|
|
291
|
+
* // returns -5.0
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
295
|
+
*
|
|
296
|
+
* var x = new Float64Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
297
|
+
* var y = new Float64Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
298
|
+
*
|
|
299
|
+
* var z = ns.ddot.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
300
|
+
* // returns -5.0
|
|
301
|
+
*/
|
|
302
|
+
ddot: typeof ddot;
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Computes the L2-norm of a double-precision floating-point vector.
|
|
306
|
+
*
|
|
307
|
+
* @param N - number of indexed elements
|
|
308
|
+
* @param x - input array
|
|
309
|
+
* @param stride - stride length
|
|
310
|
+
* @returns L2-norm
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
314
|
+
*
|
|
315
|
+
* var x = new Float64Array( [ 1.0, -2.0, 2.0 ] );
|
|
316
|
+
*
|
|
317
|
+
* var z = ns.dnrm2( x.length, x, 1 );
|
|
318
|
+
* // returns 3.0
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
322
|
+
*
|
|
323
|
+
* var x = new Float64Array( [ 1.0, -2.0, 2.0 ] );
|
|
324
|
+
*
|
|
325
|
+
* var z = ns.dnrm2.ndarray( x.length, x, 1, 0 );
|
|
326
|
+
* // returns 3.0
|
|
327
|
+
*/
|
|
328
|
+
dnrm2: typeof dnrm2;
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Applies a plane rotation.
|
|
332
|
+
*
|
|
333
|
+
* @param N - number of indexed elements
|
|
334
|
+
* @param x - first input array
|
|
335
|
+
* @param strideX - `x` stride length
|
|
336
|
+
* @param y - second input array
|
|
337
|
+
* @param strideY - `y` stride length
|
|
338
|
+
* @param c - cosine of the angle of rotation
|
|
339
|
+
* @param s - sine of the angle of rotation
|
|
340
|
+
* @returns `y`
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
344
|
+
*
|
|
345
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
346
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
347
|
+
*
|
|
348
|
+
* ns.drot( x.length, x, 1, y, 1, 0.8, 0.6 );
|
|
349
|
+
* // x => <Float64Array>[ ~4.4, ~5.8, 7.2, 8.6, 10.0 ]
|
|
350
|
+
* // y => <Float64Array>[ ~4.2, 4.4, ~4.6, ~4.8, 5.0 ]
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
354
|
+
*
|
|
355
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
356
|
+
* var y = new Float64Array( [ 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
|
|
357
|
+
*
|
|
358
|
+
* ns.drot.ndarray( 3, x, 2, 1, y, 2, 1, 0.8, 0.6 );
|
|
359
|
+
* // x => <Float64Array>[ 1.0, 6.4, 3.0, 9.2, 5.0, 12.0 ]
|
|
360
|
+
* // y => <Float64Array>[ 7.0, 5.2, 9.0, 5.6, 11.0, ~6.0 ]
|
|
361
|
+
*/
|
|
362
|
+
drot: typeof drot;
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Applies a modified Givens plane rotation.
|
|
366
|
+
*
|
|
367
|
+
* @param N - number of indexed elements
|
|
368
|
+
* @param x - first input array
|
|
369
|
+
* @param strideX - `x` stride length
|
|
370
|
+
* @param y - second input array
|
|
371
|
+
* @param strideY - `y` stride length
|
|
372
|
+
* @param param - parameters for the modified Givens transformation
|
|
373
|
+
* @returns `y`
|
|
374
|
+
*
|
|
375
|
+
* @example
|
|
376
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
377
|
+
*
|
|
378
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
379
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
380
|
+
* var param = new Float64Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
|
|
381
|
+
*
|
|
382
|
+
* ns.drotm( 2, x, 2, y, 1, param );
|
|
383
|
+
* // x => <Float64Array>[ ~-17.0, 2.0, ~-18.0, 4.0, 5.0 ]
|
|
384
|
+
* // y => <Float64Array>[ ~8.0, ~13.0, 8.0, 9.0, 10.0 ]
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
388
|
+
*
|
|
389
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
390
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
391
|
+
* var param = new Float64Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
|
|
392
|
+
*
|
|
393
|
+
* ns.drotm.ndarray( 2, x, 1, 0, y, 2, 1, param );
|
|
394
|
+
* // x => <Float64Array>[ ~-20.0, ~-25.0, 3.0, 4.0, 5.0 ]
|
|
395
|
+
* // y => <Float64Array>[ 6.0, ~9.0, 8.0, ~13.0, 10.0 ]
|
|
396
|
+
*/
|
|
397
|
+
drotm: typeof drotm;
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Multiplies a double-precision floating-point vector `x` by a constant `alpha`.
|
|
401
|
+
*
|
|
402
|
+
* @param N - number of indexed elements
|
|
403
|
+
* @param alpha - constant
|
|
404
|
+
* @param x - input array
|
|
405
|
+
* @param stride - index increment
|
|
406
|
+
* @returns input array
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
410
|
+
*
|
|
411
|
+
* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
412
|
+
*
|
|
413
|
+
* ns.dscal( x.length, 5.0, x, 1 );
|
|
414
|
+
* // x => <Float64Array>[ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]
|
|
415
|
+
*
|
|
416
|
+
* @example
|
|
417
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
418
|
+
*
|
|
419
|
+
* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
420
|
+
*
|
|
421
|
+
* ns.dscal.ndarray( x.length, 5.0, x, 1, 0 );
|
|
422
|
+
* // x => <Float64Array>[ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]
|
|
423
|
+
*/
|
|
424
|
+
dscal: typeof dscal;
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Computes the dot product of `x` and `y` with extended accumulation and result.
|
|
428
|
+
*
|
|
429
|
+
* @param N - number of indexed elements
|
|
430
|
+
* @param x - first input array
|
|
431
|
+
* @param strideX - `x` stride length
|
|
432
|
+
* @param y - second input array
|
|
433
|
+
* @param strideY - `y` stride length
|
|
434
|
+
* @returns dot product
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
438
|
+
*
|
|
439
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
440
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
441
|
+
*
|
|
442
|
+
* var z = ns.dsdot( x.length, x, 1, y, 1 );
|
|
443
|
+
* // returns -5.0
|
|
444
|
+
*
|
|
445
|
+
* @example
|
|
446
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
447
|
+
*
|
|
448
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
449
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
450
|
+
*
|
|
451
|
+
* var z = ns.dsdot.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
452
|
+
* // returns -5.0
|
|
453
|
+
*/
|
|
454
|
+
dsdot: typeof dsdot;
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Interchanges two double-precision floating-point vectors.
|
|
458
|
+
*
|
|
459
|
+
* @param N - number of indexed elements
|
|
460
|
+
* @param x - first input array
|
|
461
|
+
* @param strideX - `x` stride length
|
|
462
|
+
* @param y - second input array
|
|
463
|
+
* @param strideY - `y` stride length
|
|
464
|
+
* @returns `y`
|
|
465
|
+
*
|
|
466
|
+
* @example
|
|
467
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
468
|
+
*
|
|
469
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
470
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
471
|
+
*
|
|
472
|
+
* ns.dswap( x.length, x, 1, y, 1 );
|
|
473
|
+
* // x => <Float64Array>[ 6.0, 7.0, 8.0, 9.0, 10.0 ]
|
|
474
|
+
* // y => <Float64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
475
|
+
*
|
|
476
|
+
* @example
|
|
477
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
478
|
+
*
|
|
479
|
+
* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
480
|
+
* var y = new Float64Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
481
|
+
*
|
|
482
|
+
* ns.dswap.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
483
|
+
* // x => <Float64Array>[ 6.0, 7.0, 8.0, 9.0, 10.0 ]
|
|
484
|
+
* // y => <Float64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
485
|
+
*/
|
|
486
|
+
dswap: typeof dswap;
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Computes the L2-norm of a complex double-precision floating-point vector.
|
|
490
|
+
*
|
|
491
|
+
* @param N - number of indexed elements
|
|
492
|
+
* @param x - input array
|
|
493
|
+
* @param strideX - stride length for `x`
|
|
494
|
+
* @returns L2-norm
|
|
495
|
+
*
|
|
496
|
+
* @example
|
|
497
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
498
|
+
*
|
|
499
|
+
* var x = new Complex128Array( [ 3.0, -4.0, 0.0, 0.0, 5.0, -6.0 ] );
|
|
500
|
+
*
|
|
501
|
+
* var norm = ns.dznrm2( 2, x, 2 );
|
|
502
|
+
* // returns ~9.3
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
506
|
+
*
|
|
507
|
+
* var x = new Complex128Array( [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ] );
|
|
508
|
+
*
|
|
509
|
+
* var norm = ns.dznrm2.ndarray( 2, x, 1, 1 );
|
|
510
|
+
* // returns ~9.3
|
|
511
|
+
*/
|
|
512
|
+
dznrm2: typeof dznrm2;
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Finds the index of the first element having the maximum absolute value.
|
|
516
|
+
*
|
|
517
|
+
* @param N - number of indexed elements
|
|
518
|
+
* @param x - input array
|
|
519
|
+
* @param strideX - stride length for `x`
|
|
520
|
+
* @returns index value
|
|
521
|
+
*
|
|
522
|
+
* @example
|
|
523
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
524
|
+
*
|
|
525
|
+
* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
526
|
+
*
|
|
527
|
+
* var idx = ns.idamax( 4, x, 2 );
|
|
528
|
+
* // returns 2
|
|
529
|
+
*
|
|
530
|
+
* @example
|
|
531
|
+
* var Float64Array = require( '@stdlib/array-float64' );
|
|
532
|
+
*
|
|
533
|
+
* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
534
|
+
*
|
|
535
|
+
* var idx = ns.idamax.ndarray( x.length, x, 1, 0 );
|
|
536
|
+
* // returns 3
|
|
537
|
+
*/
|
|
538
|
+
idamax: typeof idamax;
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Finds the index of the first element having the maximum absolute value.
|
|
542
|
+
*
|
|
543
|
+
* @param N - number of indexed elements
|
|
544
|
+
* @param x - input array
|
|
545
|
+
* @param strideX - stride length for `x`
|
|
546
|
+
* @returns index value
|
|
547
|
+
*
|
|
548
|
+
* @example
|
|
549
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
550
|
+
*
|
|
551
|
+
* var x = new Float32Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
552
|
+
*
|
|
553
|
+
* var idx = ns.isamax( 4, x, 2 );
|
|
554
|
+
* // returns 2
|
|
555
|
+
*
|
|
556
|
+
* @example
|
|
557
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
558
|
+
*
|
|
559
|
+
* var x = new Float32Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
560
|
+
*
|
|
561
|
+
* var idx = ns.isamax.ndarray( x.length, x, 1, 0 );
|
|
562
|
+
* // returns 3
|
|
563
|
+
*/
|
|
564
|
+
isamax: typeof isamax;
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Computes the sum of the absolute values.
|
|
568
|
+
*
|
|
569
|
+
* @param N - number of indexed elements
|
|
570
|
+
* @param x - input array
|
|
571
|
+
* @param stride - stride length
|
|
572
|
+
* @returns sum of absolute values
|
|
573
|
+
*
|
|
574
|
+
* @example
|
|
575
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
576
|
+
*
|
|
577
|
+
* var x = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
578
|
+
*
|
|
579
|
+
* var z = ns.sasum( x.length, x, 1 );
|
|
580
|
+
* // returns 21.0
|
|
581
|
+
*
|
|
582
|
+
* @example
|
|
583
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
584
|
+
*
|
|
585
|
+
* var x = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
586
|
+
*
|
|
587
|
+
* var z = ns.sasum.ndarray( x.length, x, 1, 0 );
|
|
588
|
+
* // returns 21.0
|
|
589
|
+
*/
|
|
590
|
+
sasum: typeof sasum;
|
|
591
|
+
|
|
592
|
+
/**
|
|
593
|
+
* Multiplies a vector `x` by a constant `alpha` and adds the result to `y`.
|
|
594
|
+
*
|
|
595
|
+
* @param N - number of indexed elements
|
|
596
|
+
* @param alpha - constant
|
|
597
|
+
* @param x - input array
|
|
598
|
+
* @param strideX - `x` stride length
|
|
599
|
+
* @param y - output array
|
|
600
|
+
* @param strideY - `y` stride length
|
|
601
|
+
* @returns output array
|
|
602
|
+
*
|
|
603
|
+
* @example
|
|
604
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
605
|
+
*
|
|
606
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
607
|
+
* var y = new Float32Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );
|
|
608
|
+
*
|
|
609
|
+
* ns.saxpy( x.length, 5.0, x, 1, y, 1 );
|
|
610
|
+
* // y => <Float32Array>[ 6.0, 11.0, 16.0, 21.0, 26.0 ]
|
|
611
|
+
*
|
|
612
|
+
* @example
|
|
613
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
614
|
+
*
|
|
615
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
616
|
+
* var y = new Float32Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );
|
|
617
|
+
*
|
|
618
|
+
* ns.saxpy.ndarray( x.length, 5.0, x, 1, 0, y, 1, 0 );
|
|
619
|
+
* // y => <Float32Array>[ 6.0, 11.0, 16.0, 21.0, 26.0 ]
|
|
620
|
+
*/
|
|
621
|
+
saxpy: typeof saxpy;
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Computes the sum of the absolute values of the real and imaginary components of a single-precision complex floating-point vector.
|
|
625
|
+
*
|
|
626
|
+
* @param N - number of indexed elements
|
|
627
|
+
* @param x - input array
|
|
628
|
+
* @param strideX - `x` stride length
|
|
629
|
+
* @returns out
|
|
630
|
+
*
|
|
631
|
+
* @example
|
|
632
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
633
|
+
*
|
|
634
|
+
* var x = new Complex64Array( [ 0.3, 0.1, 5.0, 8.0, 0.5, 0.0, 6.0, 9.0, 0.0, 0.5, 8.0, 3.0, 0.0, 0.2, 9.0, 4.0 ] );
|
|
635
|
+
*
|
|
636
|
+
* var out = ns.scasum( 4, x, 2 );
|
|
637
|
+
* // returns ~1.6
|
|
638
|
+
*
|
|
639
|
+
* @example
|
|
640
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
641
|
+
*
|
|
642
|
+
* var x = new Complex64Array( [ 0.3, 0.1, 5.0, 8.0, 0.5, 0.0, 6.0, 9.0, 0.0, 0.5, 8.0, 3.0, 0.0, 0.2, 9.0, 4.0 ] );
|
|
643
|
+
*
|
|
644
|
+
* var out = ns.scasum.ndarray( 4, x, 2, 0 );
|
|
645
|
+
* // returns ~1.6
|
|
646
|
+
*/
|
|
647
|
+
scasum: typeof scasum;
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Computes the L2-norm of a complex single-precision floating-point vector.
|
|
651
|
+
*
|
|
652
|
+
* @param N - number of indexed elements
|
|
653
|
+
* @param x - input array
|
|
654
|
+
* @param strideX - stride length for `x`
|
|
655
|
+
* @returns L2-norm
|
|
656
|
+
*
|
|
657
|
+
* @example
|
|
658
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
659
|
+
*
|
|
660
|
+
* var x = new Complex64Array( [ 0.3, 0.1, 5.0, 8.0, 0.5, 0.0, 6.0, 9.0, 0.0, 0.5, 8.0, 3.0, 0.0, 0.2, 9.0, 4.0 ] );
|
|
661
|
+
*
|
|
662
|
+
* var norm = ns.scnrm2( 4, x, 2 );
|
|
663
|
+
* // returns ~0.8
|
|
664
|
+
*
|
|
665
|
+
* @example
|
|
666
|
+
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
667
|
+
*
|
|
668
|
+
* var x = new Complex64Array( [ 0.3, 0.1, 5.0, 8.0, 0.5, 0.0, 6.0, 9.0, 0.0, 0.5, 8.0, 3.0, 0.0, 0.2, 9.0, 4.0 ] );
|
|
669
|
+
*
|
|
670
|
+
* var norm = ns.scnrm2.ndarray( 4, x, 2, 0 );
|
|
671
|
+
* // returns ~0.8
|
|
672
|
+
*/
|
|
673
|
+
scnrm2: typeof scnrm2;
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* Copies values from `x` into `y`.
|
|
677
|
+
*
|
|
678
|
+
* @param N - number of indexed elements
|
|
679
|
+
* @param x - input array
|
|
680
|
+
* @param strideX - `x` stride length
|
|
681
|
+
* @param y - output array
|
|
682
|
+
* @param strideY - `y` stride length
|
|
683
|
+
* @returns output array
|
|
684
|
+
*
|
|
685
|
+
* @example
|
|
686
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
687
|
+
*
|
|
688
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
689
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
690
|
+
*
|
|
691
|
+
* ns.scopy( x.length, x, 1, y, 1 );
|
|
692
|
+
* // y => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
693
|
+
*
|
|
694
|
+
* @example
|
|
695
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
696
|
+
*
|
|
697
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
698
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
699
|
+
*
|
|
700
|
+
* ns.scopy.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
701
|
+
* // y => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
702
|
+
*/
|
|
703
|
+
scopy: typeof scopy;
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Computes the dot product of `x` and `y`.
|
|
707
|
+
*
|
|
708
|
+
* @param N - number of indexed elements
|
|
709
|
+
* @param x - first input array
|
|
710
|
+
* @param strideX - `x` stride length
|
|
711
|
+
* @param y - second input array
|
|
712
|
+
* @param strideY - `y` stride length
|
|
713
|
+
* @returns dot product
|
|
714
|
+
*
|
|
715
|
+
* @example
|
|
716
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
717
|
+
*
|
|
718
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
719
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
720
|
+
*
|
|
721
|
+
* var z = ns.sdot( x.length, x, 1, y, 1 );
|
|
722
|
+
* // returns -5.0
|
|
723
|
+
*
|
|
724
|
+
* @example
|
|
725
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
726
|
+
*
|
|
727
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
728
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
729
|
+
*
|
|
730
|
+
* var z = ns.sdot.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
731
|
+
* // returns -5.0
|
|
732
|
+
*/
|
|
733
|
+
sdot: typeof sdot;
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* Computes the dot product of two single-precision floating-point vectors with extended accumulation.
|
|
737
|
+
*
|
|
738
|
+
* @param N - number of indexed elements
|
|
739
|
+
* @param scalar - scalar constant added to dot product
|
|
740
|
+
* @param x - first input array
|
|
741
|
+
* @param strideX - `x` stride length
|
|
742
|
+
* @param y - second input array
|
|
743
|
+
* @param strideY - `y` stride length
|
|
744
|
+
* @returns dot product
|
|
745
|
+
*
|
|
746
|
+
* @example
|
|
747
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
748
|
+
*
|
|
749
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
750
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
751
|
+
*
|
|
752
|
+
* var z = ns.sdsdot( x.length, 0.0, x, 1, y, 1 );
|
|
753
|
+
* // returns -5.0
|
|
754
|
+
*
|
|
755
|
+
* @example
|
|
756
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
757
|
+
*
|
|
758
|
+
* var x = new Float32Array( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
|
|
759
|
+
* var y = new Float32Array( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
|
|
760
|
+
*
|
|
761
|
+
* var z = ns.sdsdot.ndarray( x.length, 0.0, x, 1, 0, y, 1, 0 );
|
|
762
|
+
* // returns -5.0
|
|
763
|
+
*/
|
|
764
|
+
sdsdot: typeof sdsdot;
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* Computes the L2-norm of a single-precision floating-point vector.
|
|
768
|
+
*
|
|
769
|
+
* @param N - number of indexed elements
|
|
770
|
+
* @param x - input array
|
|
771
|
+
* @param stride - stride length
|
|
772
|
+
* @returns L2-norm
|
|
773
|
+
*
|
|
774
|
+
* @example
|
|
775
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
776
|
+
*
|
|
777
|
+
* var x = new Float32Array( [ 1.0, -2.0, 2.0 ] );
|
|
778
|
+
*
|
|
779
|
+
* var z = ns.snrm2( x.length, x, 1 );
|
|
780
|
+
* // returns 3.0
|
|
781
|
+
*
|
|
782
|
+
* @example
|
|
783
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
784
|
+
*
|
|
785
|
+
* var x = new Float32Array( [ 1.0, -2.0, 2.0 ] );
|
|
786
|
+
*
|
|
787
|
+
* var z = ns.snrm2.ndarray( x.length, x, 1, 0 );
|
|
788
|
+
* // returns 3.0
|
|
789
|
+
*/
|
|
790
|
+
snrm2: typeof snrm2;
|
|
791
|
+
|
|
792
|
+
/**
|
|
793
|
+
* Applies a plane rotation.
|
|
794
|
+
*
|
|
795
|
+
* @param N - number of indexed elements
|
|
796
|
+
* @param x - first input array
|
|
797
|
+
* @param strideX - `x` stride length
|
|
798
|
+
* @param y - second input array
|
|
799
|
+
* @param strideY - `y` stride length
|
|
800
|
+
* @param c - cosine of the angle of rotation
|
|
801
|
+
* @param s - sine of the angle of rotation
|
|
802
|
+
* @returns `y`
|
|
803
|
+
*
|
|
804
|
+
* @example
|
|
805
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
806
|
+
*
|
|
807
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
808
|
+
* var y = new Float32Array( [ 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
|
|
809
|
+
*
|
|
810
|
+
* ns.srot( 3, x, 2, y, 2, 0.8, 0.6 );
|
|
811
|
+
* // x => <Float32Array>[ ~5.0, 2.0, ~7.8, 4.0, ~10.6, 6.0 ]
|
|
812
|
+
* // y => <Float32Array>[ 5.0, 8.0, ~5.4, 10.0, ~5.8, 12.0 ]
|
|
813
|
+
*
|
|
814
|
+
* @example
|
|
815
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
816
|
+
*
|
|
817
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
818
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
819
|
+
*
|
|
820
|
+
* ns.srot.ndarray( 4, x, 1, 1, y, 1, 1, 0.8, 0.6 );
|
|
821
|
+
* // x => <Float32Array>[ 1.0, ~5.8, ~7.2, ~8.6, 10.0 ]
|
|
822
|
+
* // y => <Float32Array>[ 6.0, ~4.4, ~4.6, ~4.8, 5.0 ]
|
|
823
|
+
*/
|
|
824
|
+
srot: typeof srot;
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* Applies a modified Givens plane rotation.
|
|
828
|
+
*
|
|
829
|
+
* @param N - number of indexed elements
|
|
830
|
+
* @param x - first input array
|
|
831
|
+
* @param strideX - `x` stride length
|
|
832
|
+
* @param y - second input array
|
|
833
|
+
* @param strideY - `y` stride length
|
|
834
|
+
* @param param - parameters for the modified Givens transformation
|
|
835
|
+
* @returns `y`
|
|
836
|
+
*
|
|
837
|
+
* @example
|
|
838
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
839
|
+
*
|
|
840
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
841
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
842
|
+
* var param = new Float32Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
|
|
843
|
+
*
|
|
844
|
+
* ns.srotm( 2, x, 2, y, 1, param );
|
|
845
|
+
* // x => <Float32Array>[ ~-17.0, 2.0, ~-18.0, 4.0, 5.0 ]
|
|
846
|
+
* // y => <Float32Array>[ ~8.0, ~13.0, 8.0, 9.0, 10.0 ]
|
|
847
|
+
*
|
|
848
|
+
* @example
|
|
849
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
850
|
+
*
|
|
851
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
852
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
853
|
+
* var param = new Float32Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
|
|
854
|
+
*
|
|
855
|
+
* ns.srotm.ndarray( 2, x, 1, 0, y, 2, 1, param );
|
|
856
|
+
* // x => <Float32Array>[ ~-20.0, ~-25.0, 3.0, 4.0, 5.0 ]
|
|
857
|
+
* // y => <Float32Array>[ 6.0, ~9.0, 8.0, ~13.0, 10.0 ]
|
|
858
|
+
*/
|
|
859
|
+
srotm: typeof srotm;
|
|
860
|
+
|
|
861
|
+
/**
|
|
862
|
+
* Multiplies a single-precision floating-point vector `x` by a constant `alpha`.
|
|
863
|
+
*
|
|
864
|
+
* @param N - number of indexed elements
|
|
865
|
+
* @param alpha - constant
|
|
866
|
+
* @param x - input array
|
|
867
|
+
* @param stride - index increment
|
|
868
|
+
* @returns input array
|
|
869
|
+
*
|
|
870
|
+
* @example
|
|
871
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
872
|
+
*
|
|
873
|
+
* var x = new Float32Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
874
|
+
*
|
|
875
|
+
* ns.sscal( x.length, 5.0, x, 1 );
|
|
876
|
+
* // x => <Float32Array>[ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]
|
|
877
|
+
*
|
|
878
|
+
* @example
|
|
879
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
880
|
+
*
|
|
881
|
+
* var x = new Float32Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
|
|
882
|
+
*
|
|
883
|
+
* ns.sscal.ndarray( x.length, 5.0, x, 1, 0 );
|
|
884
|
+
* // x => <Float32Array>[ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]
|
|
885
|
+
*/
|
|
886
|
+
sscal: typeof sscal;
|
|
887
|
+
|
|
888
|
+
/**
|
|
889
|
+
* Interchanges two single-precision floating-point vectors.
|
|
890
|
+
*
|
|
891
|
+
* @param N - number of indexed elements
|
|
892
|
+
* @param x - first input array
|
|
893
|
+
* @param strideX - `x` stride length
|
|
894
|
+
* @param y - second input array
|
|
895
|
+
* @param strideY - `y` stride length
|
|
896
|
+
* @returns `y`
|
|
897
|
+
*
|
|
898
|
+
* @example
|
|
899
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
900
|
+
*
|
|
901
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
902
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
903
|
+
*
|
|
904
|
+
* ns.sswap( x.length, x, 1, y, 1 );
|
|
905
|
+
* // x => <Float32Array>[ 6.0, 7.0, 8.0, 9.0, 10.0 ]
|
|
906
|
+
* // y => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
907
|
+
*
|
|
908
|
+
* @example
|
|
909
|
+
* var Float32Array = require( '@stdlib/array-float32' );
|
|
910
|
+
*
|
|
911
|
+
* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
|
|
912
|
+
* var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
|
|
913
|
+
*
|
|
914
|
+
* ns.sswap.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
915
|
+
* // x => <Float32Array>[ 6.0, 7.0, 8.0, 9.0, 10.0 ]
|
|
916
|
+
* // y => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 5.0 ]
|
|
917
|
+
*/
|
|
918
|
+
sswap: typeof sswap;
|
|
919
|
+
|
|
920
|
+
/**
|
|
921
|
+
* Copies values from one complex double-precision floating-point vector to another complex double-precision floating-point vector.
|
|
922
|
+
*
|
|
923
|
+
* @param N - number of indexed elements
|
|
924
|
+
* @param x - input array
|
|
925
|
+
* @param strideX - `x` stride length
|
|
926
|
+
* @param y - output array
|
|
927
|
+
* @param strideY - `y` stride length
|
|
928
|
+
* @returns output array
|
|
929
|
+
*
|
|
930
|
+
* @example
|
|
931
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
932
|
+
*
|
|
933
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
934
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
935
|
+
*
|
|
936
|
+
* ns.zcopy( x.length, x, 1, y, 1 );
|
|
937
|
+
* // y => <Complex128Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
938
|
+
*
|
|
939
|
+
* @example
|
|
940
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
941
|
+
*
|
|
942
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
943
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
944
|
+
*
|
|
945
|
+
* ns.zcopy.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
946
|
+
* // y => <Complex128Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
947
|
+
*/
|
|
948
|
+
zcopy: typeof zcopy;
|
|
949
|
+
|
|
950
|
+
/**
|
|
951
|
+
* Applies a plane rotation.
|
|
952
|
+
*
|
|
953
|
+
* @param N - number of indexed elements
|
|
954
|
+
* @param x - first input array
|
|
955
|
+
* @param strideX - `x` stride length
|
|
956
|
+
* @param y - second input array
|
|
957
|
+
* @param strideY - `y` stride length
|
|
958
|
+
* @param c - cosine of the angle of rotation
|
|
959
|
+
* @param s - sine of the angle of rotation
|
|
960
|
+
* @returns `y`
|
|
961
|
+
*
|
|
962
|
+
* @example
|
|
963
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
964
|
+
*
|
|
965
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
|
|
966
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
967
|
+
*
|
|
968
|
+
* ns.zdrot( 2, x, 2, y, 1, 0.8, 0.6 );
|
|
969
|
+
* // x => <Complex128Array>[ ~0.8, ~1.6, 3.0, 4.0, 4.0, ~4.8, 7.0, 8.0 ]
|
|
970
|
+
* // y => <Complex128Array>[ ~-0.6, ~-1.2, -3.0, ~-3.6, 0.0, 0.0, 0.0, 0.0 ]
|
|
971
|
+
*
|
|
972
|
+
* @example
|
|
973
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
974
|
+
*
|
|
975
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
|
|
976
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
977
|
+
*
|
|
978
|
+
* ns.zdrot.ndarray( 2, x, 2, 0, y, 1, 0, 0.8, 0.6 );
|
|
979
|
+
* // x => <Complex128Array>[ ~0.8, ~1.6, 3.0, 4.0, 4.0, ~4.8, 7.0, 8.0 ]
|
|
980
|
+
* // y => <Complex128Array>[ ~-0.6, ~-1.2, -3.0, ~-3.6, 0.0, 0.0, 0.0, 0.0 ]
|
|
981
|
+
*/
|
|
982
|
+
zdrot: typeof zdrot;
|
|
983
|
+
|
|
984
|
+
/**
|
|
985
|
+
* Interchanges two complex double-precision floating-point vectors.
|
|
986
|
+
*
|
|
987
|
+
* @param N - number of indexed elements
|
|
988
|
+
* @param x - first input array
|
|
989
|
+
* @param strideX - `x` stride length
|
|
990
|
+
* @param y - second input array
|
|
991
|
+
* @param strideY - `y` stride length
|
|
992
|
+
* @returns `y`
|
|
993
|
+
*
|
|
994
|
+
* @example
|
|
995
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
996
|
+
*
|
|
997
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
998
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
999
|
+
*
|
|
1000
|
+
* ns.zswap( x.length, x, 1, y, 1 );
|
|
1001
|
+
* // x => <Complex128Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]
|
|
1002
|
+
* // y => <Complex128Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
1003
|
+
*
|
|
1004
|
+
* @example
|
|
1005
|
+
* var Complex128Array = require( '@stdlib/array-complex128' );
|
|
1006
|
+
*
|
|
1007
|
+
* var x = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
1008
|
+
* var y = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
1009
|
+
*
|
|
1010
|
+
* ns.zswap.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
1011
|
+
* // x => <Complex128Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]
|
|
1012
|
+
* // y => <Complex128Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
1013
|
+
*/
|
|
1014
|
+
zswap: typeof zswap;
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
/**
|
|
1018
|
+
* Basic linear algebra subprograms (BLAS) compiled to WebAssembly.
|
|
1019
|
+
*/
|
|
1020
|
+
declare var ns: Namespace;
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
// EXPORTS //
|
|
1024
|
+
|
|
1025
|
+
export = ns;
|