Skip to content

Commit b90191b

Browse files
committed
refactor: update js implementation and tests
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 6be9e84 commit b90191b

File tree

9 files changed

+38
-151
lines changed

9 files changed

+38
-151
lines changed

lib/node_modules/@stdlib/stats/base/scuminabs/lib/index.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,18 @@
2929
*
3030
* var x = new Float32Array( [ 1.0, -2.0, 2.0 ] );
3131
* var y = new Float32Array( x.length );
32-
* var N = x.length;
3332
*
34-
* scuminabs( N, x, 1, y, 1 );
33+
* scuminabs( x.length, x, 1, y, 1 );
3534
* // y => <Float32Array>[ 1.0, 1.0, 1.0 ]
3635
*
3736
* @example
3837
* var Float32Array = require( '@stdlib/array/float32' );
39-
* var floor = require( '@stdlib/math/base/special/floor' );
4038
* var scuminabs = require( '@stdlib/stats/base/scuminabs' );
4139
*
4240
* var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
4341
* var y = new Float32Array( x.length );
44-
* var N = floor( x.length / 2 );
4542
*
46-
* scuminabs.ndarray( N, x, 2, 1, y, 1, 0 );
43+
* scuminabs.ndarray( 4, x, 2, 1, y, 1, 0 );
4744
* // y => <Float32Array>[ 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0 ]
4845
*/
4946

lib/node_modules/@stdlib/stats/base/scuminabs/lib/ndarray.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
// MODULES //
2222

2323
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
24-
var abs = require( '@stdlib/math/base/special/abs' );
24+
var absf = require( '@stdlib/math/base/special/absf' );
2525

2626

2727
// MAIN //
@@ -40,13 +40,11 @@ var abs = require( '@stdlib/math/base/special/abs' );
4040
*
4141
* @example
4242
* var Float32Array = require( '@stdlib/array/float32' );
43-
* var floor = require( '@stdlib/math/base/special/floor' );
4443
*
4544
* var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
4645
* var y = new Float32Array( x.length );
47-
* var N = floor( x.length / 2 );
4846
*
49-
* var v = scuminabs( N, x, 2, 1, y, 1, 0 );
47+
* var v = scuminabs( 4, x, 2, 1, y, 1, 0 );
5048
* // returns <Float32Array>[ 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0 ]
5149
*/
5250
function scuminabs( N, x, strideX, offsetX, y, strideY, offsetY ) {
@@ -62,15 +60,15 @@ function scuminabs( N, x, strideX, offsetX, y, strideY, offsetY ) {
6260
ix = offsetX;
6361
iy = offsetY;
6462

65-
min = abs( x[ ix ] );
63+
min = absf( x[ ix ] );
6664
y[ iy ] = min;
6765

6866
iy += strideY;
6967
i = 1;
7068
if ( isnanf( min ) === false ) {
7169
for ( i; i < N; i++ ) {
7270
ix += strideX;
73-
v = abs( x[ ix ] );
71+
v = absf( x[ ix ] );
7472
if ( isnanf( v ) ) {
7573
min = v;
7674
break;

lib/node_modules/@stdlib/stats/base/scuminabs/lib/ndarray.native.js

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020

2121
// MODULES //
2222

23-
var Float32Array = require( '@stdlib/array/float32' );
24-
var addon = require( './scuminabs.native.js' );
23+
var addon = require( './../src/addon.node' );
2524

2625

2726
// MAIN //
@@ -40,27 +39,15 @@ var addon = require( './scuminabs.native.js' );
4039
*
4140
* @example
4241
* var Float32Array = require( '@stdlib/array/float32' );
43-
* var floor = require( '@stdlib/math/base/special/floor' );
4442
*
4543
* var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
4644
* var y = new Float32Array( x.length );
47-
* var N = floor( x.length / 2 );
4845
*
49-
* var v = scuminabs( N, x, 2, 1, y, 1, 0 );
46+
* var v = scuminabs( 4, x, 2, 1, y, 1, 0 );
5047
* // returns <Float32Array>[ 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0 ]
5148
*/
5249
function scuminabs( N, x, strideX, offsetX, y, strideY, offsetY ) {
53-
var viewX;
54-
var viewY;
55-
if ( strideX < 0 ) {
56-
offsetX += (N-1) * strideX;
57-
}
58-
if ( strideY < 0 ) {
59-
offsetY += (N-1) * strideY;
60-
}
61-
viewX = new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offsetX), x.length-offsetX ); // eslint-disable-line max-len
62-
viewY = new Float32Array( y.buffer, y.byteOffset+(y.BYTES_PER_ELEMENT*offsetY), y.length-offsetY ); // eslint-disable-line max-len
63-
addon( N, viewX, strideX, viewY, strideY );
50+
addon.ndarray( N, x, strideX, offsetX, y, strideY, offsetY );
6451
return y;
6552
}
6653

lib/node_modules/@stdlib/stats/base/scuminabs/lib/scuminabs.js

Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
// MODULES //
2222

23-
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
24-
var abs = require( '@stdlib/math/base/special/abs' );
23+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
24+
var ndarray = require( './ndarray.js' );
2525

2626

2727
// MAIN //
@@ -41,58 +41,14 @@ var abs = require( '@stdlib/math/base/special/abs' );
4141
*
4242
* var x = new Float32Array( [ 1.0, -2.0, 2.0 ] );
4343
* var y = new Float32Array( x.length );
44-
* var N = x.length;
4544
*
46-
* var v = scuminabs( N, x, 1, y, 1 );
45+
* var v = scuminabs( x.length, x, 1, y, 1 );
4746
* // returns <Float32Array>[ 1.0, 1.0, 1.0 ]
4847
*/
4948
function scuminabs( N, x, strideX, y, strideY ) {
50-
var min;
51-
var ix;
52-
var iy;
53-
var v;
54-
var i;
55-
56-
if ( N <= 0 ) {
57-
return y;
58-
}
59-
if ( strideX < 0 ) {
60-
ix = (1-N) * strideX;
61-
} else {
62-
ix = 0;
63-
}
64-
if ( strideY < 0 ) {
65-
iy = (1-N) * strideY;
66-
} else {
67-
iy = 0;
68-
}
69-
min = abs( x[ ix ] );
70-
y[ iy ] = min;
71-
72-
iy += strideY;
73-
i = 1;
74-
if ( isnanf( min ) === false ) {
75-
for ( i; i < N; i++ ) {
76-
ix += strideX;
77-
v = abs( x[ ix ] );
78-
if ( isnanf( v ) ) {
79-
min = v;
80-
break;
81-
}
82-
if ( v < min ) {
83-
min = v;
84-
}
85-
y[ iy ] = min;
86-
iy += strideY;
87-
}
88-
}
89-
if ( isnanf( min ) ) {
90-
for ( i; i < N; i++ ) {
91-
y[ iy ] = min;
92-
iy += strideY;
93-
}
94-
}
95-
return y;
49+
var ox = stride2offset( N, strideX );
50+
var oy = stride2offset( N, strideY );
51+
return ndarray( N, x, strideX, ox, y, strideY, oy );
9652
}
9753

9854

lib/node_modules/@stdlib/stats/base/scuminabs/lib/scuminabs.native.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ var addon = require( './../src/addon.node' );
4040
*
4141
* var x = new Float32Array( [ 1.0, -2.0, 2.0 ] );
4242
* var y = new Float32Array( x.length );
43-
* var N = x.length;
4443
*
45-
* var v = scuminabs( N, x, 1, y, 1 );
44+
* var v = scuminabs( x.length, x, 1, y, 1 );
4645
* // returns <Float32Array>[ 1.0, 1.0, 1.0 ]
4746
*/
4847
function scuminabs( N, x, strideX, y, strideY ) {

lib/node_modules/@stdlib/stats/base/scuminabs/test/test.ndarray.js

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24-
var floor = require( '@stdlib/math/base/special/floor' );
2524
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2625
var isPositiveZerof = require( '@stdlib/math/base/assert/is-positive-zerof' );
2726
var Float32Array = require( '@stdlib/array/float32' );
@@ -150,7 +149,6 @@ tape( 'the function supports an `x` stride', function test( t ) {
150149
var expected;
151150
var x;
152151
var y;
153-
var N;
154152

155153
x = new Float32Array([
156154
1.0, // 0
@@ -166,9 +164,8 @@ tape( 'the function supports an `x` stride', function test( t ) {
166164
0.0,
167165
0.0
168166
]);
169-
N = 3;
170167

171-
scuminabs( N, x, 2, 0, y, 1, 0 );
168+
scuminabs( 3, x, 2, 0, y, 1, 0 );
172169

173170
expected = new Float32Array( [ 1.0, 1.0, 1.0, 0.0, 0.0 ] );
174171
t.deepEqual( y, expected, 'returns expected value' );
@@ -180,7 +177,6 @@ tape( 'the function supports a `y` stride', function test( t ) {
180177
var expected;
181178
var x;
182179
var y;
183-
var N;
184180

185181
x = new Float32Array([
186182
1.0, // 0
@@ -196,9 +192,8 @@ tape( 'the function supports a `y` stride', function test( t ) {
196192
0.0,
197193
0.0 // 2
198194
]);
199-
N = 3;
200195

201-
scuminabs( N, x, 1, 0, y, 2, 0 );
196+
scuminabs( 3, x, 1, 0, y, 2, 0 );
202197

203198
expected = new Float32Array( [ 1.0, 0.0, 1.0, 0.0, 1.0 ] );
204199
t.deepEqual( y, expected, 'returns expected value' );
@@ -210,7 +205,6 @@ tape( 'the function supports negative strides', function test( t ) {
210205
var expected;
211206
var x;
212207
var y;
213-
var N;
214208

215209
x = new Float32Array([
216210
1.0, // 2
@@ -226,9 +220,8 @@ tape( 'the function supports negative strides', function test( t ) {
226220
0.0,
227221
0.0
228222
]);
229-
N = 3;
230223

231-
scuminabs( N, x, -2, x.length-1, y, -1, 2 );
224+
scuminabs( 3, x, -2, x.length-1, y, -1, 2 );
232225

233226
expected = new Float32Array( [ 1.0, 3.0, 5.0, 0.0, 0.0 ] );
234227
t.deepEqual( y, expected, 'returns expected value' );
@@ -238,7 +231,6 @@ tape( 'the function supports negative strides', function test( t ) {
238231

239232
tape( 'the function supports an `x` offset', function test( t ) {
240233
var expected;
241-
var N;
242234
var x;
243235
var y;
244236

@@ -262,9 +254,8 @@ tape( 'the function supports an `x` offset', function test( t ) {
262254
0.0,
263255
0.0
264256
]);
265-
N = floor( x.length / 2 );
266257

267-
scuminabs( N, x, 2, 1, y, 1, 0 );
258+
scuminabs( 4, x, 2, 1, y, 1, 0 );
268259

269260
expected = new Float32Array( [ 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0 ] );
270261
t.deepEqual( y, expected, 'returns expected value' );
@@ -274,7 +265,6 @@ tape( 'the function supports an `x` offset', function test( t ) {
274265

275266
tape( 'the function supports a `y` offset', function test( t ) {
276267
var expected;
277-
var N;
278268
var x;
279269
var y;
280270

@@ -298,9 +288,8 @@ tape( 'the function supports a `y` offset', function test( t ) {
298288
0.0,
299289
0.0 // 3
300290
]);
301-
N = floor( x.length / 2 );
302291

303-
scuminabs( N, x, 1, 0, y, 2, 1 );
292+
scuminabs( 4, x, 1, 0, y, 2, 1 );
304293

305294
expected = new Float32Array( [ 0.0, 2.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0 ] );
306295
t.deepEqual( y, expected, 'returns expected value' );
@@ -312,7 +301,6 @@ tape( 'the function supports complex access patterns', function test( t ) {
312301
var expected;
313302
var x;
314303
var y;
315-
var N;
316304

317305
x = new Float32Array([
318306
1.0, // 0
@@ -330,9 +318,8 @@ tape( 'the function supports complex access patterns', function test( t ) {
330318
0.0,
331319
0.0
332320
]);
333-
N = 3;
334321

335-
scuminabs( N, x, 2, 0, y, -1, 2 );
322+
scuminabs( 3, x, 2, 0, y, -1, 2 );
336323

337324
expected = new Float32Array( [ 1.0, 1.0, 1.0, 0.0, 0.0, 0.0 ] );
338325
t.deepEqual( y, expected, 'returns expected value' );

0 commit comments

Comments
 (0)