Skip to content

Commit 3c82fe7

Browse files
committed
refactor: update implementation in accordance with current project conventions
Ref: #788
1 parent 2ed14aa commit 3c82fe7

20 files changed

+384
-459
lines changed

Diff for: lib/node_modules/@stdlib/blas/base/cswap/README.md

+14-20
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,22 @@ im = imagf( z );
6666
The function has the following parameters:
6767

6868
- **N**: number of indexed elements.
69-
- **x**: input [`Complex64Array`][@stdlib/array/complex64].
69+
- **x**: first input [`Complex64Array`][@stdlib/array/complex64].
7070
- **strideX**: index increment for `x`.
71-
- **y**: destination [`Complex64Array`][@stdlib/array/complex64].
71+
- **y**: second input [`Complex64Array`][@stdlib/array/complex64].
7272
- **strideY**: index increment for `y`.
7373

74-
The `N` and `stride` parameters determine how values from `x` are interchanged with values from `y`. For example, to interchange in reverse order every other value in `x` into the first `N` elements of `y`,
74+
The `N` and stride parameters determine how values from `x` are interchanged with values from `y`. For example, to interchange in reverse order every other value in `x` into the first `N` elements of `y`,
7575

7676
```javascript
7777
var Complex64Array = require( '@stdlib/array/complex64' );
78-
var floor = require( '@stdlib/math/base/special/floor' );
7978
var realf = require( '@stdlib/complex/realf' );
8079
var imagf = require( '@stdlib/complex/imagf' );
8180

8281
var x = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
8382
var y = new Complex64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );
8483

85-
var N = floor( x.length / 2 );
86-
87-
cswap( N, x, -2, y, 1 );
84+
cswap( 2, x, -2, y, 1 );
8885

8986
var z = y.get( 0 );
9087
// returns <Complex64>
@@ -182,7 +179,7 @@ The function has the following additional parameters:
182179
- **offsetX**: starting index for `x`.
183180
- **offsetY**: starting index for `y`.
184181

185-
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offsetX` and `offsetY` parameters support indexing semantics based on starting indices. For example, to interchange every other value in `x` starting from the second value into the last `N` elements in `y` where `x[i] = y[n]`, `x[i+2] = y[n-1]`,...,
182+
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the offset parameters support indexing semantics based on starting indices. For example, to interchange every other value in `x` starting from the second value into the last `N` elements in `y` where `x[i] = y[n]`, `x[i+2] = y[n-1]`,...,
186183

187184
```javascript
188185
var Complex64Array = require( '@stdlib/array/complex64' );
@@ -236,24 +233,21 @@ im = imagf( z );
236233

237234
```javascript
238235
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
239-
var Complex64Array = require( '@stdlib/array/complex64' );
236+
var filledarrayBy = require( '@stdlib/array/filled-by' );
237+
var Complex64 = require( '@stdlib/complex/float32' );
240238
var cswap = require( '@stdlib/blas/base/cswap' );
241239

242-
var re = discreteUniform.factory( 0, 10 );
243-
var im = discreteUniform.factory( -5, 5 );
244-
245-
var x = new Complex64Array( 10 );
246-
var y = new Complex64Array( 10 );
247-
248-
var i;
249-
for ( i = 0; i < x.length; i++ ) {
250-
x.set( [ re(), im() ], i );
251-
y.set( [ re(), im() ], i );
240+
function rand() {
241+
return new Complex64( discreteUniform( 0, 10 ), discreteUniform( -5, 5 ) );
252242
}
243+
244+
var x = filledarrayBy( 10, 'complex64', rand );
253245
console.log( x.get( 0 ).toString() );
246+
247+
var y = filledarrayBy( 10, 'complex64', rand );
254248
console.log( y.get( 0 ).toString() );
255249

256-
// Swap elements in `x` and `y` starting from the end of `y`:
250+
// Swap elements in `x` into `y` starting from the end of `y`:
257251
cswap( x.length, x, 1, y, -1 );
258252
console.log( x.get( x.length-1 ).toString() );
259253
console.log( y.get( y.length-1 ).toString() );

Diff for: lib/node_modules/@stdlib/blas/base/cswap/benchmark/benchmark.js

+15-10
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,21 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
25+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pow = require( '@stdlib/math/base/special/pow' );
2728
var Complex64Array = require( '@stdlib/array/complex64' );
28-
var Float32Array = require( '@stdlib/array/float32' );
29+
var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );
2930
var pkg = require( './../package.json' ).name;
3031
var cswap = require( './../lib/cswap.js' );
3132

3233

34+
// VARIABLES //
35+
36+
var rand = uniform( -100.0, 100.0 );
37+
38+
3339
// FUNCTIONS //
3440

3541
/**
@@ -43,14 +49,13 @@ function createBenchmark( len ) {
4349
var viewY;
4450
var x;
4551
var y;
46-
var i;
4752

48-
x = new Complex64Array( len );
53+
x = filledarrayBy( len*2, 'float32', rand );
54+
x = new Complex64Array( x.buffer );
55+
4956
y = new Complex64Array( len );
50-
for ( i = 0; i < len; i++ ) {
51-
x.set( [ (randu()*10000.0)-5000.0, (randu()*10000.0)-5000.0 ], i );
52-
}
53-
viewY = new Float32Array( y.buffer, y.byteOffset, y.length*2 );
57+
viewY = reinterpret( y, 0 );
58+
5459
return benchmark;
5560

5661
/**
@@ -62,8 +67,8 @@ function createBenchmark( len ) {
6267
function benchmark( b ) {
6368
var i;
6469

65-
for ( i = 0; i < len; i++ ) {
66-
y.set( [ 0.0, 0.0 ], i );
70+
for ( i = 0; i < len*2; i++ ) {
71+
viewY[ i ] = 0.0;
6772
}
6873
b.tic();
6974
for ( i = 0; i < b.iterations; i++ ) {

Diff for: lib/node_modules/@stdlib/blas/base/cswap/benchmark/benchmark.native.js

+11-10
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
26+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var pow = require( '@stdlib/math/base/special/pow' );
2829
var Complex64Array = require( '@stdlib/array/complex64' );
29-
var Float32Array = require( '@stdlib/array/float32' );
30+
var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );
3031
var tryRequire = require( '@stdlib/utils/try-require' );
3132
var pkg = require( './../package.json' ).name;
3233

@@ -37,6 +38,7 @@ var cswap = tryRequire( resolve( __dirname, './../lib/cswap.native.js' ) );
3738
var opts = {
3839
'skip': ( cswap instanceof Error )
3940
};
41+
var rand = uniform( -100.0, 100.0 );
4042

4143

4244
// FUNCTIONS //
@@ -52,14 +54,13 @@ function createBenchmark( len ) {
5254
var viewY;
5355
var x;
5456
var y;
55-
var i;
5657

57-
x = new Complex64Array( len );
58+
x = filledarrayBy( len*2, 'float32', rand );
59+
x = new Complex64Array( x.buffer );
60+
5861
y = new Complex64Array( len );
59-
for ( i = 0; i < len; i++ ) {
60-
x.set( [ (randu()*10000.0)-5000.0, (randu()*10000.0)-5000.0 ], i );
61-
}
62-
viewY = new Float32Array( y.buffer, y.byteOffset, y.length*2 );
62+
viewY = reinterpret( y, 0 );
63+
6364
return benchmark;
6465

6566
/**
@@ -71,8 +72,8 @@ function createBenchmark( len ) {
7172
function benchmark( b ) {
7273
var i;
7374

74-
for ( i = 0; i < len; i++ ) {
75-
y.set( [ 0.0, 0.0 ], i );
75+
for ( i = 0; i < len*2; i++ ) {
76+
viewY[ i ] = 0.0;
7677
}
7778
b.tic();
7879
for ( i = 0; i < b.iterations; i++ ) {

Diff for: lib/node_modules/@stdlib/blas/base/cswap/benchmark/benchmark.ndarray.js

+15-10
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,21 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
25+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pow = require( '@stdlib/math/base/special/pow' );
2728
var Complex64Array = require( '@stdlib/array/complex64' );
28-
var Float32Array = require( '@stdlib/array/float32' );
29+
var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );
2930
var pkg = require( './../package.json' ).name;
3031
var cswap = require( './../lib/ndarray.js' );
3132

3233

34+
// VARIABLES //
35+
36+
var rand = uniform( -100.0, 100.0 );
37+
38+
3339
// FUNCTIONS //
3440

3541
/**
@@ -43,14 +49,13 @@ function createBenchmark( len ) {
4349
var viewY;
4450
var x;
4551
var y;
46-
var i;
4752

48-
x = new Complex64Array( len );
53+
x = filledarrayBy( len*2, 'float32', rand );
54+
x = new Complex64Array( x.buffer );
55+
4956
y = new Complex64Array( len );
50-
for ( i = 0; i < len; i++ ) {
51-
x.set( [ (randu()*10000.0)-5000.0, (randu()*10000.0)-5000.0 ], i );
52-
}
53-
viewY = new Float32Array( y.buffer, y.byteOffset, y.length*2 );
57+
viewY = reinterpret( y, 0 );
58+
5459
return benchmark;
5560

5661
/**
@@ -62,8 +67,8 @@ function createBenchmark( len ) {
6267
function benchmark( b ) {
6368
var i;
6469

65-
for ( i = 0; i < len; i++ ) {
66-
y.set( [ 0.0, 0.0 ], i );
70+
for ( i = 0; i < len*2; i++ ) {
71+
viewY[ i ] = 0.0;
6772
}
6873
b.tic();
6974
for ( i = 0; i < b.iterations; i++ ) {

Diff for: lib/node_modules/@stdlib/blas/base/cswap/benchmark/benchmark.ndarray.native.js

+11-10
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
26+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var pow = require( '@stdlib/math/base/special/pow' );
2829
var Complex64Array = require( '@stdlib/array/complex64' );
29-
var Float32Array = require( '@stdlib/array/float32' );
30+
var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );
3031
var tryRequire = require( '@stdlib/utils/try-require' );
3132
var pkg = require( './../package.json' ).name;
3233

@@ -37,6 +38,7 @@ var cswap = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
3738
var opts = {
3839
'skip': ( cswap instanceof Error )
3940
};
41+
var rand = uniform( -100.0, 100.0 );
4042

4143

4244
// FUNCTIONS //
@@ -52,14 +54,13 @@ function createBenchmark( len ) {
5254
var viewY;
5355
var x;
5456
var y;
55-
var i;
5657

57-
x = new Complex64Array( len );
58+
x = filledarrayBy( len*2, 'float32', rand );
59+
x = new Complex64Array( x.buffer );
60+
5861
y = new Complex64Array( len );
59-
for ( i = 0; i < len; i++ ) {
60-
x.set( [ (randu()*10000.0)-5000.0, (randu()*10000.0)-5000.0 ], i );
61-
}
62-
viewY = new Float32Array( y.buffer, y.byteOffset, y.length*2 );
62+
viewY = reinterpret( y, 0 );
63+
6364
return benchmark;
6465

6566
/**
@@ -71,8 +72,8 @@ function createBenchmark( len ) {
7172
function benchmark( b ) {
7273
var i;
7374

74-
for ( i = 0; i < len; i++ ) {
75-
y.set( [ 0.0, 0.0 ], i );
75+
for ( i = 0; i < len*2; i++ ) {
76+
viewY[ i ] = 0.0;
7677
}
7778
b.tic();
7879
for ( i = 0; i < b.iterations; i++ ) {

Diff for: lib/node_modules/@stdlib/blas/base/cswap/docs/repl.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
{{alias}}( N, x, strideX, y, strideY )
33
Interchanges two complex single-precision floating-point vectors.
44

5-
The `N` and `stride` parameters determine how values from `x` are swapped
6-
with values from `y`.
5+
The `N` and stride parameters determine how values from `x` are swapped with
6+
values from `y`.
77

88
Indexing is relative to the first index. To introduce an offset, use typed
99
array views.
@@ -89,7 +89,7 @@
8989
alternative indexing semantics.
9090

9191
While typed array views mandate a view offset based on the underlying
92-
buffer, the `offset` parameters support indexing semantics based on starting
92+
buffer, the offset parameters support indexing semantics based on starting
9393
indices.
9494

9595
Parameters

Diff for: lib/node_modules/@stdlib/blas/base/cswap/examples/c/example.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ int main( void ) {
2525
float y[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2626

2727
// Specify the number of elements:
28-
int N = 4;
28+
const int N = 4;
2929

3030
// Specify stride lengths:
31-
int strideX = 1;
32-
int strideY = -1;
31+
const int strideX = 1;
32+
const int strideY = -1;
3333

3434
// Copy elements:
3535
c_cswap( N, (void *)x, strideX, (void *)y, strideY );

Diff for: lib/node_modules/@stdlib/blas/base/cswap/examples/index.js

+8-11
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,18 @@
1919
'use strict';
2020

2121
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
22-
var Complex64Array = require( '@stdlib/array/complex64' );
22+
var filledarrayBy = require( '@stdlib/array/filled-by' );
23+
var Complex64 = require( '@stdlib/complex/float32' );
2324
var cswap = require( './../lib' );
2425

25-
var re = discreteUniform.factory( 0, 10 );
26-
var im = discreteUniform.factory( -5, 5 );
27-
28-
var x = new Complex64Array( 10 );
29-
var y = new Complex64Array( 10 );
30-
31-
var i;
32-
for ( i = 0; i < x.length; i++ ) {
33-
x.set( [ re(), im() ], i );
34-
y.set( [ re(), im() ], i );
26+
function rand() {
27+
return new Complex64( discreteUniform( 0, 10 ), discreteUniform( -5, 5 ) );
3528
}
29+
30+
var x = filledarrayBy( 10, 'complex64', rand );
3631
console.log( x.get( 0 ).toString() );
32+
33+
var y = filledarrayBy( 10, 'complex64', rand );
3734
console.log( y.get( 0 ).toString() );
3835

3936
// Swap elements in `x` into `y` starting from the end of `y`:

Diff for: lib/node_modules/@stdlib/blas/base/cswap/include.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
# Source files:
5454
'src_files': [
55-
'<(src_dir)/addon.cpp',
55+
'<(src_dir)/addon.c',
5656
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{\'os\':\'<(OS)\',\'blas\':\'<(blas)\'},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).src; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
5757
],
5858

Diff for: lib/node_modules/@stdlib/blas/base/cswap/lib/cswap.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
// MODULES //
2222

23-
var Float32Array = require( '@stdlib/array/float32' );
23+
var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );
2424

2525

2626
// MAIN //
@@ -77,8 +77,8 @@ function cswap( N, x, strideX, y, strideY ) {
7777
if ( N <= 0 ) {
7878
return y;
7979
}
80-
viewX = new Float32Array( x.buffer, x.byteOffset, x.length*2 );
81-
viewY = new Float32Array( y.buffer, y.byteOffset, y.length*2 );
80+
viewX = reinterpret( x, 0 );
81+
viewY = reinterpret( y, 0 );
8282
if ( strideX === 1 && strideY === 1 ) {
8383
for ( i = 0; i < N*2; i += 2 ) {
8484
tmp = viewX[ i ];

0 commit comments

Comments
 (0)