@stdlib/blas-base-ccopy 0.2.1 → 0.4.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/NOTICE +1 -1
- package/README.md +146 -62
- package/dist/index.js +7 -7
- package/dist/index.js.map +4 -4
- package/docs/types/index.d.ts +8 -48
- package/include/stdlib/blas/base/ccopy.h +11 -4
- package/include/stdlib/blas/base/ccopy_cblas.h +6 -4
- package/include/stdlib/blas/base/ccopy_fortran.h +4 -4
- package/lib/ccopy.js +7 -52
- package/lib/ccopy.native.js +2 -12
- package/lib/index.js +4 -24
- package/lib/ndarray.js +2 -12
- package/lib/ndarray.native.js +5 -23
- package/manifest.json +289 -9
- package/package.json +14 -13
- package/src/addon.c +23 -3
- package/src/ccopy.c +7 -35
- package/src/ccopy.f +9 -9
- package/src/ccopy_cblas.c +26 -2
- package/src/ccopy_f.c +25 -1
- package/src/ccopy_ndarray.c +56 -0
- package/include.gypi +0 -70
package/lib/ccopy.native.js
CHANGED
|
@@ -38,22 +38,12 @@ var addon = require( './../src/addon.node' );
|
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
40
40
|
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
41
|
-
* var realf = require( '@stdlib/complex-realf' );
|
|
42
|
-
* var imagf = require( '@stdlib/complex-imagf' );
|
|
43
41
|
*
|
|
44
42
|
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
45
|
-
* var y = new Complex64Array( [
|
|
43
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
46
44
|
*
|
|
47
45
|
* ccopy( x.length, x, 1, y, 1 );
|
|
48
|
-
*
|
|
49
|
-
* var z = y.get( 0 );
|
|
50
|
-
* // returns <Complex64>
|
|
51
|
-
*
|
|
52
|
-
* var re = realf( z );
|
|
53
|
-
* // returns 1.0
|
|
54
|
-
*
|
|
55
|
-
* var im = imagf( z );
|
|
56
|
-
* // returns 2.0
|
|
46
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
57
47
|
*/
|
|
58
48
|
function ccopy( N, x, strideX, y, strideY ) {
|
|
59
49
|
var viewX = reinterpret( x, 0 );
|
package/lib/index.js
CHANGED
|
@@ -25,43 +25,23 @@
|
|
|
25
25
|
*
|
|
26
26
|
* @example
|
|
27
27
|
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
28
|
-
* var realf = require( '@stdlib/complex-realf' );
|
|
29
|
-
* var imagf = require( '@stdlib/complex-imagf' );
|
|
30
28
|
* var ccopy = require( '@stdlib/blas-base-ccopy' );
|
|
31
29
|
*
|
|
32
30
|
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
33
|
-
* var y = new Complex64Array( [
|
|
31
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
34
32
|
*
|
|
35
33
|
* ccopy( x.length, x, 1, y, 1 );
|
|
36
|
-
*
|
|
37
|
-
* var z = y.get( 0 );
|
|
38
|
-
* // returns <Complex64>
|
|
39
|
-
*
|
|
40
|
-
* var re = realf( z );
|
|
41
|
-
* // returns 1.0
|
|
42
|
-
*
|
|
43
|
-
* var im = imagf( z );
|
|
44
|
-
* // returns 2.0
|
|
34
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
45
35
|
*
|
|
46
36
|
* @example
|
|
47
37
|
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
48
|
-
* var realf = require( '@stdlib/complex-realf' );
|
|
49
|
-
* var imagf = require( '@stdlib/complex-imagf' );
|
|
50
38
|
* var ccopy = require( '@stdlib/blas-base-ccopy' );
|
|
51
39
|
*
|
|
52
40
|
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
53
|
-
* var y = new Complex64Array( [
|
|
41
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
54
42
|
*
|
|
55
43
|
* ccopy.ndarray( x.length, x, 1, 0, y, 1, 0 );
|
|
56
|
-
*
|
|
57
|
-
* var z = y.get( 0 );
|
|
58
|
-
* // returns <Complex64>
|
|
59
|
-
*
|
|
60
|
-
* var re = realf( z );
|
|
61
|
-
* // returns 1.0
|
|
62
|
-
*
|
|
63
|
-
* var im = imagf( z );
|
|
64
|
-
* // returns 2.0
|
|
44
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
65
45
|
*/
|
|
66
46
|
|
|
67
47
|
// MODULES //
|
package/lib/ndarray.js
CHANGED
|
@@ -39,22 +39,12 @@ var reinterpret = require( '@stdlib/strided-base-reinterpret-complex64' );
|
|
|
39
39
|
*
|
|
40
40
|
* @example
|
|
41
41
|
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
42
|
-
* var realf = require( '@stdlib/complex-realf' );
|
|
43
|
-
* var imagf = require( '@stdlib/complex-imagf' );
|
|
44
42
|
*
|
|
45
43
|
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
46
|
-
* var y = new Complex64Array( [
|
|
44
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
47
45
|
*
|
|
48
46
|
* ccopy( x.length, x, 1, 0, y, 1, 0 );
|
|
49
|
-
*
|
|
50
|
-
* var z = y.get( 0 );
|
|
51
|
-
* // returns <Complex64>
|
|
52
|
-
*
|
|
53
|
-
* var re = realf( z );
|
|
54
|
-
* // returns 1.0
|
|
55
|
-
*
|
|
56
|
-
* var im = imagf( z );
|
|
57
|
-
* // returns 2.0
|
|
47
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
58
48
|
*/
|
|
59
49
|
function ccopy( N, x, strideX, offsetX, y, strideY, offsetY ) {
|
|
60
50
|
var viewX;
|
package/lib/ndarray.native.js
CHANGED
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
// MODULES //
|
|
22
22
|
|
|
23
23
|
var reinterpret = require( '@stdlib/strided-base-reinterpret-complex64' );
|
|
24
|
-
var minViewBufferIndex = require( '@stdlib/strided-base-min-view-buffer-index' );
|
|
25
24
|
var addon = require( './../src/addon.node' );
|
|
26
25
|
|
|
27
26
|
|
|
@@ -41,34 +40,17 @@ var addon = require( './../src/addon.node' );
|
|
|
41
40
|
*
|
|
42
41
|
* @example
|
|
43
42
|
* var Complex64Array = require( '@stdlib/array-complex64' );
|
|
44
|
-
* var realf = require( '@stdlib/complex-realf' );
|
|
45
|
-
* var imagf = require( '@stdlib/complex-imagf' );
|
|
46
43
|
*
|
|
47
44
|
* var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
|
|
48
|
-
* var y = new Complex64Array( [
|
|
45
|
+
* var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
|
|
49
46
|
*
|
|
50
47
|
* ccopy( x.length, x, 1, 0, y, 1, 0 );
|
|
51
|
-
*
|
|
52
|
-
* var z = y.get( 0 );
|
|
53
|
-
* // returns <Complex64>
|
|
54
|
-
*
|
|
55
|
-
* var re = realf( z );
|
|
56
|
-
* // returns 1.0
|
|
57
|
-
*
|
|
58
|
-
* var im = imagf( z );
|
|
59
|
-
* // returns 2.0
|
|
48
|
+
* // y => <Complex64Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]
|
|
60
49
|
*/
|
|
61
50
|
function ccopy( N, x, strideX, offsetX, y, strideY, offsetY ) {
|
|
62
|
-
var viewX;
|
|
63
|
-
var viewY;
|
|
64
|
-
|
|
65
|
-
offsetX = minViewBufferIndex( N, strideX, offsetX );
|
|
66
|
-
offsetY = minViewBufferIndex( N, strideY, offsetY );
|
|
67
|
-
|
|
68
|
-
viewX = reinterpret( x, offsetX );
|
|
69
|
-
viewY = reinterpret( y, offsetY );
|
|
70
|
-
|
|
71
|
-
addon( N, viewX, strideX, viewY, strideY );
|
|
51
|
+
var viewX = reinterpret( x, 0 );
|
|
52
|
+
var viewY = reinterpret( y, 0 );
|
|
53
|
+
addon.ndarray( N, viewX, strideX, offsetX, viewY, strideY, offsetY );
|
|
72
54
|
return y;
|
|
73
55
|
}
|
|
74
56
|
|
package/manifest.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"options": {
|
|
3
|
+
"task": "build",
|
|
3
4
|
"os": "linux",
|
|
4
5
|
"blas": "",
|
|
5
6
|
"wasm": false
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
],
|
|
29
30
|
"confs": [
|
|
30
31
|
{
|
|
32
|
+
"task": "build",
|
|
31
33
|
"os": "linux",
|
|
32
34
|
"blas": "",
|
|
33
35
|
"wasm": false,
|
|
@@ -43,11 +45,54 @@
|
|
|
43
45
|
"dependencies": [
|
|
44
46
|
"@stdlib/napi-export",
|
|
45
47
|
"@stdlib/napi-argv",
|
|
48
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
46
49
|
"@stdlib/napi-argv-int64",
|
|
47
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
50
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
51
|
+
"@stdlib/blas-base-shared",
|
|
52
|
+
"@stdlib/complex-float32-ctor"
|
|
48
53
|
]
|
|
49
54
|
},
|
|
50
55
|
{
|
|
56
|
+
"task": "benchmark",
|
|
57
|
+
"os": "linux",
|
|
58
|
+
"blas": "",
|
|
59
|
+
"wasm": false,
|
|
60
|
+
"src": [
|
|
61
|
+
"./src/ccopy.c",
|
|
62
|
+
"./src/ccopy_ndarray.c"
|
|
63
|
+
],
|
|
64
|
+
"include": [
|
|
65
|
+
"./include"
|
|
66
|
+
],
|
|
67
|
+
"libraries": [],
|
|
68
|
+
"libpath": [],
|
|
69
|
+
"dependencies": [
|
|
70
|
+
"@stdlib/blas-base-shared",
|
|
71
|
+
"@stdlib/strided-base-stride2offset"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"task": "examples",
|
|
76
|
+
"os": "linux",
|
|
77
|
+
"blas": "",
|
|
78
|
+
"wasm": false,
|
|
79
|
+
"src": [
|
|
80
|
+
"./src/ccopy.c",
|
|
81
|
+
"./src/ccopy_ndarray.c"
|
|
82
|
+
],
|
|
83
|
+
"include": [
|
|
84
|
+
"./include"
|
|
85
|
+
],
|
|
86
|
+
"libraries": [],
|
|
87
|
+
"libpath": [],
|
|
88
|
+
"dependencies": [
|
|
89
|
+
"@stdlib/blas-base-shared",
|
|
90
|
+
"@stdlib/strided-base-stride2offset"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
{
|
|
95
|
+
"task": "build",
|
|
51
96
|
"os": "linux",
|
|
52
97
|
"blas": "openblas",
|
|
53
98
|
"wasm": false,
|
|
@@ -65,11 +110,60 @@
|
|
|
65
110
|
"dependencies": [
|
|
66
111
|
"@stdlib/napi-export",
|
|
67
112
|
"@stdlib/napi-argv",
|
|
113
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
68
114
|
"@stdlib/napi-argv-int64",
|
|
69
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
115
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
116
|
+
"@stdlib/blas-base-shared",
|
|
117
|
+
"@stdlib/complex-float32-ctor"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"task": "benchmark",
|
|
122
|
+
"os": "linux",
|
|
123
|
+
"blas": "openblas",
|
|
124
|
+
"wasm": false,
|
|
125
|
+
"src": [
|
|
126
|
+
"./src/ccopy_cblas.c"
|
|
127
|
+
],
|
|
128
|
+
"include": [
|
|
129
|
+
"./include"
|
|
130
|
+
],
|
|
131
|
+
"libraries": [
|
|
132
|
+
"-lopenblas",
|
|
133
|
+
"-lpthread"
|
|
134
|
+
],
|
|
135
|
+
"libpath": [],
|
|
136
|
+
"dependencies": [
|
|
137
|
+
"@stdlib/blas-base-shared",
|
|
138
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
139
|
+
"@stdlib/complex-float32-ctor"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"task": "examples",
|
|
144
|
+
"os": "linux",
|
|
145
|
+
"blas": "openblas",
|
|
146
|
+
"wasm": false,
|
|
147
|
+
"src": [
|
|
148
|
+
"./src/ccopy_cblas.c"
|
|
149
|
+
],
|
|
150
|
+
"include": [
|
|
151
|
+
"./include"
|
|
152
|
+
],
|
|
153
|
+
"libraries": [
|
|
154
|
+
"-lopenblas",
|
|
155
|
+
"-lpthread"
|
|
156
|
+
],
|
|
157
|
+
"libpath": [],
|
|
158
|
+
"dependencies": [
|
|
159
|
+
"@stdlib/blas-base-shared",
|
|
160
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
161
|
+
"@stdlib/complex-float32-ctor"
|
|
70
162
|
]
|
|
71
163
|
},
|
|
164
|
+
|
|
72
165
|
{
|
|
166
|
+
"task": "build",
|
|
73
167
|
"os": "mac",
|
|
74
168
|
"blas": "",
|
|
75
169
|
"wasm": false,
|
|
@@ -85,11 +179,54 @@
|
|
|
85
179
|
"dependencies": [
|
|
86
180
|
"@stdlib/napi-export",
|
|
87
181
|
"@stdlib/napi-argv",
|
|
182
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
88
183
|
"@stdlib/napi-argv-int64",
|
|
89
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
184
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
185
|
+
"@stdlib/blas-base-shared",
|
|
186
|
+
"@stdlib/complex-float32-ctor"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"task": "benchmark",
|
|
191
|
+
"os": "mac",
|
|
192
|
+
"blas": "",
|
|
193
|
+
"wasm": false,
|
|
194
|
+
"src": [
|
|
195
|
+
"./src/ccopy.c",
|
|
196
|
+
"./src/ccopy_ndarray.c"
|
|
197
|
+
],
|
|
198
|
+
"include": [
|
|
199
|
+
"./include"
|
|
200
|
+
],
|
|
201
|
+
"libraries": [],
|
|
202
|
+
"libpath": [],
|
|
203
|
+
"dependencies": [
|
|
204
|
+
"@stdlib/blas-base-shared",
|
|
205
|
+
"@stdlib/strided-base-stride2offset"
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"task": "examples",
|
|
210
|
+
"os": "mac",
|
|
211
|
+
"blas": "",
|
|
212
|
+
"wasm": false,
|
|
213
|
+
"src": [
|
|
214
|
+
"./src/ccopy.c",
|
|
215
|
+
"./src/ccopy_ndarray.c"
|
|
216
|
+
],
|
|
217
|
+
"include": [
|
|
218
|
+
"./include"
|
|
219
|
+
],
|
|
220
|
+
"libraries": [],
|
|
221
|
+
"libpath": [],
|
|
222
|
+
"dependencies": [
|
|
223
|
+
"@stdlib/blas-base-shared",
|
|
224
|
+
"@stdlib/strided-base-stride2offset"
|
|
90
225
|
]
|
|
91
226
|
},
|
|
227
|
+
|
|
92
228
|
{
|
|
229
|
+
"task": "build",
|
|
93
230
|
"os": "mac",
|
|
94
231
|
"blas": "apple_accelerate_framework",
|
|
95
232
|
"wasm": false,
|
|
@@ -106,11 +243,58 @@
|
|
|
106
243
|
"dependencies": [
|
|
107
244
|
"@stdlib/napi-export",
|
|
108
245
|
"@stdlib/napi-argv",
|
|
246
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
109
247
|
"@stdlib/napi-argv-int64",
|
|
110
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
248
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
249
|
+
"@stdlib/blas-base-shared",
|
|
250
|
+
"@stdlib/complex-float32-ctor"
|
|
251
|
+
]
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"task": "benchmark",
|
|
255
|
+
"os": "mac",
|
|
256
|
+
"blas": "apple_accelerate_framework",
|
|
257
|
+
"wasm": false,
|
|
258
|
+
"src": [
|
|
259
|
+
"./src/ccopy_cblas.c"
|
|
260
|
+
],
|
|
261
|
+
"include": [
|
|
262
|
+
"./include"
|
|
263
|
+
],
|
|
264
|
+
"libraries": [
|
|
265
|
+
"-lblas"
|
|
266
|
+
],
|
|
267
|
+
"libpath": [],
|
|
268
|
+
"dependencies": [
|
|
269
|
+
"@stdlib/blas-base-shared",
|
|
270
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
271
|
+
"@stdlib/complex-float32-ctor"
|
|
272
|
+
]
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"task": "examples",
|
|
276
|
+
"os": "mac",
|
|
277
|
+
"blas": "apple_accelerate_framework",
|
|
278
|
+
"wasm": false,
|
|
279
|
+
"src": [
|
|
280
|
+
"./src/ccopy_cblas.c"
|
|
281
|
+
],
|
|
282
|
+
"include": [
|
|
283
|
+
"./include"
|
|
284
|
+
],
|
|
285
|
+
"libraries": [
|
|
286
|
+
"-lblas"
|
|
287
|
+
],
|
|
288
|
+
"libpath": [],
|
|
289
|
+
"dependencies": [
|
|
290
|
+
"@stdlib/blas-base-shared",
|
|
291
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
292
|
+
"@stdlib/complex-float32-ctor"
|
|
111
293
|
]
|
|
112
294
|
},
|
|
295
|
+
|
|
113
296
|
{
|
|
297
|
+
"task": "build",
|
|
114
298
|
"os": "mac",
|
|
115
299
|
"blas": "openblas",
|
|
116
300
|
"wasm": false,
|
|
@@ -128,16 +312,66 @@
|
|
|
128
312
|
"dependencies": [
|
|
129
313
|
"@stdlib/napi-export",
|
|
130
314
|
"@stdlib/napi-argv",
|
|
315
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
131
316
|
"@stdlib/napi-argv-int64",
|
|
132
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
317
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
318
|
+
"@stdlib/blas-base-shared",
|
|
319
|
+
"@stdlib/complex-float32-ctor"
|
|
320
|
+
]
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"task": "benchmark",
|
|
324
|
+
"os": "mac",
|
|
325
|
+
"blas": "openblas",
|
|
326
|
+
"wasm": false,
|
|
327
|
+
"src": [
|
|
328
|
+
"./src/ccopy_cblas.c"
|
|
329
|
+
],
|
|
330
|
+
"include": [
|
|
331
|
+
"./include"
|
|
332
|
+
],
|
|
333
|
+
"libraries": [
|
|
334
|
+
"-lopenblas",
|
|
335
|
+
"-lpthread"
|
|
336
|
+
],
|
|
337
|
+
"libpath": [],
|
|
338
|
+
"dependencies": [
|
|
339
|
+
"@stdlib/blas-base-shared",
|
|
340
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
341
|
+
"@stdlib/complex-float32-ctor"
|
|
133
342
|
]
|
|
134
343
|
},
|
|
135
344
|
{
|
|
345
|
+
"task": "examples",
|
|
346
|
+
"os": "mac",
|
|
347
|
+
"blas": "openblas",
|
|
348
|
+
"wasm": false,
|
|
349
|
+
"src": [
|
|
350
|
+
"./src/ccopy_cblas.c"
|
|
351
|
+
],
|
|
352
|
+
"include": [
|
|
353
|
+
"./include"
|
|
354
|
+
],
|
|
355
|
+
"libraries": [
|
|
356
|
+
"-lopenblas",
|
|
357
|
+
"-lpthread"
|
|
358
|
+
],
|
|
359
|
+
"libpath": [],
|
|
360
|
+
"dependencies": [
|
|
361
|
+
"@stdlib/blas-base-shared",
|
|
362
|
+
"@stdlib/strided-base-min-view-buffer-index",
|
|
363
|
+
"@stdlib/complex-float32-ctor"
|
|
364
|
+
]
|
|
365
|
+
},
|
|
366
|
+
|
|
367
|
+
{
|
|
368
|
+
"task": "build",
|
|
136
369
|
"os": "win",
|
|
137
370
|
"blas": "",
|
|
138
371
|
"wasm": false,
|
|
139
372
|
"src": [
|
|
140
|
-
"./src/ccopy.c"
|
|
373
|
+
"./src/ccopy.c",
|
|
374
|
+
"./src/ccopy_ndarray.c"
|
|
141
375
|
],
|
|
142
376
|
"include": [
|
|
143
377
|
"./include"
|
|
@@ -148,22 +382,68 @@
|
|
|
148
382
|
"@stdlib/napi-export",
|
|
149
383
|
"@stdlib/napi-argv",
|
|
150
384
|
"@stdlib/napi-argv-int64",
|
|
151
|
-
"@stdlib/napi-argv-strided-complex64array"
|
|
385
|
+
"@stdlib/napi-argv-strided-complex64array",
|
|
386
|
+
"@stdlib/blas-base-shared",
|
|
387
|
+
"@stdlib/strided-base-stride2offset"
|
|
388
|
+
]
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"task": "benchmark",
|
|
392
|
+
"os": "win",
|
|
393
|
+
"blas": "",
|
|
394
|
+
"wasm": false,
|
|
395
|
+
"src": [
|
|
396
|
+
"./src/ccopy.c",
|
|
397
|
+
"./src/ccopy_ndarray.c"
|
|
398
|
+
],
|
|
399
|
+
"include": [
|
|
400
|
+
"./include"
|
|
401
|
+
],
|
|
402
|
+
"libraries": [],
|
|
403
|
+
"libpath": [],
|
|
404
|
+
"dependencies": [
|
|
405
|
+
"@stdlib/blas-base-shared",
|
|
406
|
+
"@stdlib/strided-base-stride2offset"
|
|
407
|
+
]
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"task": "examples",
|
|
411
|
+
"os": "win",
|
|
412
|
+
"blas": "",
|
|
413
|
+
"wasm": false,
|
|
414
|
+
"src": [
|
|
415
|
+
"./src/ccopy.c",
|
|
416
|
+
"./src/ccopy_ndarray.c"
|
|
417
|
+
],
|
|
418
|
+
"include": [
|
|
419
|
+
"./include"
|
|
420
|
+
],
|
|
421
|
+
"libraries": [],
|
|
422
|
+
"libpath": [],
|
|
423
|
+
"dependencies": [
|
|
424
|
+
"@stdlib/blas-base-shared",
|
|
425
|
+
"@stdlib/strided-base-stride2offset"
|
|
152
426
|
]
|
|
153
427
|
},
|
|
428
|
+
|
|
154
429
|
{
|
|
430
|
+
"task": "build",
|
|
155
431
|
"os": "",
|
|
156
432
|
"blas": "",
|
|
157
433
|
"wasm": true,
|
|
158
434
|
"src": [
|
|
159
|
-
"./src/ccopy.c"
|
|
435
|
+
"./src/ccopy.c",
|
|
436
|
+
"./src/ccopy_ndarray.c"
|
|
160
437
|
],
|
|
161
438
|
"include": [
|
|
162
439
|
"./include"
|
|
163
440
|
],
|
|
164
441
|
"libraries": [],
|
|
165
442
|
"libpath": [],
|
|
166
|
-
"dependencies": [
|
|
443
|
+
"dependencies": [
|
|
444
|
+
"@stdlib/blas-base-shared",
|
|
445
|
+
"@stdlib/strided-base-stride2offset"
|
|
446
|
+
]
|
|
167
447
|
}
|
|
168
448
|
]
|
|
169
449
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stdlib/blas-base-ccopy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Copy values from one complex single-precision floating-point vector to another complex single-precision floating-point vector.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -34,15 +34,19 @@
|
|
|
34
34
|
"url": "https://github.com/stdlib-js/stdlib/issues"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@stdlib/assert-is-error": "^0.2.
|
|
38
|
-
"@stdlib/
|
|
39
|
-
"@stdlib/
|
|
40
|
-
"@stdlib/napi-argv
|
|
41
|
-
"@stdlib/napi-
|
|
42
|
-
"@stdlib/
|
|
43
|
-
"@stdlib/
|
|
44
|
-
"@stdlib/
|
|
45
|
-
"@stdlib/
|
|
37
|
+
"@stdlib/assert-is-error": "^0.2.2",
|
|
38
|
+
"@stdlib/blas-base-shared": "^0.2.0",
|
|
39
|
+
"@stdlib/complex-float32-ctor": "^0.0.2",
|
|
40
|
+
"@stdlib/napi-argv": "^0.2.2",
|
|
41
|
+
"@stdlib/napi-argv-int64": "^0.2.2",
|
|
42
|
+
"@stdlib/napi-argv-strided-complex64array": "^0.2.2",
|
|
43
|
+
"@stdlib/napi-export": "^0.3.0",
|
|
44
|
+
"@stdlib/strided-base-min-view-buffer-index": "^0.3.0",
|
|
45
|
+
"@stdlib/strided-base-reinterpret-complex64": "^0.2.1",
|
|
46
|
+
"@stdlib/strided-base-stride2offset": "^0.1.0",
|
|
47
|
+
"@stdlib/utils-define-nonenumerable-read-only-property": "^0.2.2",
|
|
48
|
+
"@stdlib/utils-library-manifest": "^0.2.3",
|
|
49
|
+
"@stdlib/utils-try-require": "^0.2.2"
|
|
46
50
|
},
|
|
47
51
|
"devDependencies": {},
|
|
48
52
|
"engines": {
|
|
@@ -84,9 +88,6 @@
|
|
|
84
88
|
"single",
|
|
85
89
|
"float32array"
|
|
86
90
|
],
|
|
87
|
-
"__stdlib__": {
|
|
88
|
-
"wasm": false
|
|
89
|
-
},
|
|
90
91
|
"funding": {
|
|
91
92
|
"type": "opencollective",
|
|
92
93
|
"url": "https://opencollective.com/stdlib"
|
package/src/addon.c
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
#include "stdlib/blas/base/ccopy.h"
|
|
20
|
+
#include "stdlib/blas/base/shared.h"
|
|
20
21
|
#include "stdlib/napi/export.h"
|
|
21
22
|
#include "stdlib/napi/argv.h"
|
|
22
23
|
#include "stdlib/napi/argv_int64.h"
|
|
@@ -26,7 +27,6 @@
|
|
|
26
27
|
/**
|
|
27
28
|
* Receives JavaScript callback invocation data.
|
|
28
29
|
*
|
|
29
|
-
* @private
|
|
30
30
|
* @param env environment under which the function is invoked
|
|
31
31
|
* @param info callback data
|
|
32
32
|
* @return Node-API value
|
|
@@ -38,8 +38,28 @@ static napi_value addon( napi_env env, napi_callback_info info ) {
|
|
|
38
38
|
STDLIB_NAPI_ARGV_INT64( env, strideY, argv, 4 );
|
|
39
39
|
STDLIB_NAPI_ARGV_STRIDED_COMPLEX64ARRAY( env, X, N, strideX, argv, 1 );
|
|
40
40
|
STDLIB_NAPI_ARGV_STRIDED_COMPLEX64ARRAY( env, Y, N, strideY, argv, 3 );
|
|
41
|
-
c_ccopy( N, (void *)X, strideX, (void *)Y, strideY );
|
|
41
|
+
API_SUFFIX(c_ccopy)( N, (void *)X, strideX, (void *)Y, strideY );
|
|
42
42
|
return NULL;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Receives JavaScript callback invocation data.
|
|
47
|
+
*
|
|
48
|
+
* @param env environment under which the function is invoked
|
|
49
|
+
* @param info callback data
|
|
50
|
+
* @return Node-API value
|
|
51
|
+
*/
|
|
52
|
+
static napi_value addon_method( napi_env env, napi_callback_info info ) {
|
|
53
|
+
STDLIB_NAPI_ARGV( env, info, argv, argc, 7 );
|
|
54
|
+
STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 );
|
|
55
|
+
STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 2 );
|
|
56
|
+
STDLIB_NAPI_ARGV_INT64( env, offsetX, argv, 3 );
|
|
57
|
+
STDLIB_NAPI_ARGV_INT64( env, strideY, argv, 5 );
|
|
58
|
+
STDLIB_NAPI_ARGV_INT64( env, offsetY, argv, 6 );
|
|
59
|
+
STDLIB_NAPI_ARGV_STRIDED_COMPLEX64ARRAY( env, X, N, strideX, argv, 1 );
|
|
60
|
+
STDLIB_NAPI_ARGV_STRIDED_COMPLEX64ARRAY( env, Y, N, strideY, argv, 4 );
|
|
61
|
+
API_SUFFIX(c_ccopy_ndarray)( N, (void *)X, strideX, offsetX, (void *)Y, strideY, offsetY );
|
|
62
|
+
return NULL;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
STDLIB_NAPI_MODULE_EXPORT_FCN_WITH_METHOD( addon, "ndarray", addon_method )
|
package/src/ccopy.c
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license Apache-2.0
|
|
3
3
|
*
|
|
4
|
-
* Copyright (c)
|
|
4
|
+
* Copyright (c) 2024 The Stdlib Authors.
|
|
5
5
|
*
|
|
6
6
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
* you may not use this file except in compliance with the License.
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
#include "stdlib/blas/base/ccopy.h"
|
|
20
|
+
#include "stdlib/blas/base/shared.h"
|
|
21
|
+
#include "stdlib/strided/base/stride2offset.h"
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Copies values from one complex single-precision floating-point vector to another complex single-precision floating-point vector.
|
|
@@ -27,38 +29,8 @@
|
|
|
27
29
|
* @param Y output array
|
|
28
30
|
* @param strideY Y stride length
|
|
29
31
|
*/
|
|
30
|
-
void c_ccopy( const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
int iy;
|
|
35
|
-
int i;
|
|
36
|
-
|
|
37
|
-
if ( N <= 0 ) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
if ( strideX == 1 && strideY == 1 ) {
|
|
41
|
-
for ( i = 0; i < N*2; i += 2 ) {
|
|
42
|
-
y[ i ] = x[ i ];
|
|
43
|
-
y[ i+1 ] = x[ i+1 ];
|
|
44
|
-
}
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if ( strideX < 0 ) {
|
|
48
|
-
ix = 2 * (1-N) * strideX;
|
|
49
|
-
} else {
|
|
50
|
-
ix = 0;
|
|
51
|
-
}
|
|
52
|
-
if ( strideY < 0 ) {
|
|
53
|
-
iy = 2 * (1-N) * strideY;
|
|
54
|
-
} else {
|
|
55
|
-
iy = 0;
|
|
56
|
-
}
|
|
57
|
-
for ( i = 0; i < N; i++ ) {
|
|
58
|
-
y[ iy ] = x[ ix ];
|
|
59
|
-
y[ iy+1 ] = x[ ix+1 ];
|
|
60
|
-
ix += strideX * 2;
|
|
61
|
-
iy += strideY * 2;
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
32
|
+
void API_SUFFIX(c_ccopy)( const CBLAS_INT N, const void *X, const CBLAS_INT strideX, void *Y, const CBLAS_INT strideY ) {
|
|
33
|
+
CBLAS_INT ox = stdlib_strided_stride2offset( N, strideX );
|
|
34
|
+
CBLAS_INT oy = stdlib_strided_stride2offset( N, strideY );
|
|
35
|
+
API_SUFFIX(c_ccopy_ndarray)( N, X, strideX, ox, Y, strideY, oy );
|
|
64
36
|
}
|