Skip to content

Commit 35c57c4

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 --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: na - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: na - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: failed ---
1 parent 483045f commit 35c57c4

File tree

10 files changed

+39
-317
lines changed

10 files changed

+39
-317
lines changed

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

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

2121
// MODULES //
2222

23-
var mean = require( './ndarray.js' );
23+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
24+
var ndarray = require( './ndarray.js' );
2425

2526

2627
// MAIN //
@@ -30,54 +31,19 @@ var mean = require( './ndarray.js' );
3031
*
3132
* @param {PositiveInteger} N - number of indexed elements
3233
* @param {Float64Array} x - input array
33-
* @param {integer} stride - stride length
34+
* @param {integer} strideX - stride length
3435
* @returns {number} arithmetic mean
3536
*
3637
* @example
3738
* var Float64Array = require( '@stdlib/array/float64' );
3839
*
3940
* var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
40-
* var N = x.length;
4141
*
42-
* var v = dnanmeanpw( N, x, 1 );
42+
* var v = dnanmeanpw( x.length, x, 1 );
4343
* // returns ~0.3333
4444
*/
45-
function dnanmeanpw( N, x, stride ) {
46-
var ix;
47-
var v;
48-
var s;
49-
var n;
50-
var i;
51-
52-
if ( N <= 0 ) {
53-
return NaN;
54-
}
55-
if ( N === 1 || stride === 0 ) {
56-
return x[ 0 ];
57-
}
58-
if ( stride < 0 ) {
59-
ix = (1-N) * stride;
60-
} else {
61-
ix = 0;
62-
}
63-
if ( N < 8 ) {
64-
// Use simple summation...
65-
s = 0.0;
66-
n = 0;
67-
for ( i = 0; i < N; i++ ) {
68-
v = x[ ix ];
69-
if ( v === v ) {
70-
s += v;
71-
n += 1;
72-
}
73-
ix += stride;
74-
}
75-
if ( n === 0 ) {
76-
return NaN;
77-
}
78-
return s / n;
79-
}
80-
return mean( N, x, stride, ix );
45+
function dnanmeanpw( N, x, strideX ) {
46+
return ndarray( N, x, strideX, stride2offset( N, strideX ) );
8147
}
8248

8349

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,19 @@ var addon = require( './../src/addon.node' );
3030
*
3131
* @param {PositiveInteger} N - number of indexed elements
3232
* @param {Float64Array} x - input array
33-
* @param {integer} stride - stride length
33+
* @param {integer} strideX - stride length
3434
* @returns {number} arithmetic mean
3535
*
3636
* @example
3737
* var Float64Array = require( '@stdlib/array/float64' );
3838
*
3939
* var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
40-
* var N = x.length;
4140
*
42-
* var v = dnanmeanpw( N, x, 1 );
41+
* var v = dnanmeanpw( x.length, x, 1 );
4342
* // returns ~0.3333
4443
*/
45-
function dnanmeanpw( N, x, stride ) {
46-
return addon( N, x, stride );
44+
function dnanmeanpw( N, x, strideX ) {
45+
return addon( N, x, strideX );
4746
}
4847

4948

lib/node_modules/@stdlib/stats/base/dnanmeanpw/lib/dnansumpw.js

Lines changed: 0 additions & 197 deletions
This file was deleted.

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,17 @@
2828
* var dnanmeanpw = require( '@stdlib/stats/base/dnanmeanpw' );
2929
*
3030
* var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
31-
* var N = 3;
3231
*
33-
* var v = dnanmeanpw( N, x, 1 );
32+
* var v = dnanmeanpw( x.length, x, 1 );
3433
* // returns ~0.3333
3534
*
3635
* @example
3736
* var Float64Array = require( '@stdlib/array/float64' );
38-
* var floor = require( '@stdlib/math/base/special/floor' );
3937
* var dnanmeanpw = require( '@stdlib/stats/base/dnanmeanpw' );
4038
*
4139
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN ] );
42-
* var N = floor( x.length / 2 );
4340
*
44-
* var v = dnanmeanpw.ndarray( N, x, 2, 1 );
41+
* var v = dnanmeanpw.ndarray( 4, x, 2, 1 );
4542
* // returns 1.25
4643
*/
4744

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

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

2121
// MODULES //
2222

23-
var dnansumpw = require( './dnansumpw.js' );
24-
25-
26-
// VARIABLES //
27-
28-
var WORKSPACE = [ 0.0, 0 ];
23+
var dnannsumpw = require( '@stdlib/blas/ext/base/dnannsumpw' ).ndarray;
24+
var Float64Array = require( '@stdlib/array/float64' );
2925

3026

3127
// MAIN //
@@ -35,25 +31,22 @@ var WORKSPACE = [ 0.0, 0 ];
3531
*
3632
* @param {PositiveInteger} N - number of indexed elements
3733
* @param {Float64Array} x - input array
38-
* @param {integer} stride - stride length
39-
* @param {NonNegativeInteger} offset - starting index
34+
* @param {integer} strideX - stride length
35+
* @param {NonNegativeInteger} offsetX - starting index
4036
* @returns {number} arithmetic mean
4137
*
4238
* @example
4339
* var Float64Array = require( '@stdlib/array/float64' );
44-
* var floor = require( '@stdlib/math/base/special/floor' );
4540
*
4641
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN ] );
47-
* var N = floor( x.length / 2 );
4842
*
49-
* var v = dnanmeanpw( N, x, 2, 1 );
43+
* var v = dnanmeanpw( 4, x, 2, 1 );
5044
* // returns 1.25
5145
*/
52-
function dnanmeanpw( N, x, stride, offset ) {
53-
WORKSPACE[ 0 ] = 0.0;
54-
WORKSPACE[ 1 ] = 0;
55-
dnansumpw( N, WORKSPACE, x, stride, offset );
56-
return WORKSPACE[ 0 ] / WORKSPACE[ 1 ];
46+
function dnanmeanpw( N, x, strideX, offsetX ) {
47+
var out = new Float64Array( 2 );
48+
var v = dnannsumpw( N, x, strideX, offsetX, out, 1, 0 );
49+
return v[0] / v[1];
5750
}
5851

5952

0 commit comments

Comments
 (0)