Skip to content

Commit 05492cd

Browse files
refactor: refactored benchmarks, tests and docs
--- 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: passed - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: passed - task: lint_c_examples status: passed - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - 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: passed - task: run_c_examples status: passed - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: passed - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: passed ---
1 parent 5e74a4e commit 05492cd

21 files changed

+108
-202
lines changed

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ The [arithmetic mean][arithmetic-mean] is defined as
5151
var sdsnanmeanors = require( '@stdlib/stats/base/sdsnanmeanors' );
5252
```
5353

54-
#### sdsnanmeanors( N, x, stride )
54+
#### sdsnanmeanors( N, x, strideX )
5555

5656
Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-point strided array `x`, ignoring `NaN` values and using ordinary recursive summation with extended accumulation.
5757

@@ -69,18 +69,16 @@ The function has the following parameters:
6969

7070
- **N**: number of indexed elements.
7171
- **x**: input [`Float32Array`][@stdlib/array/float32].
72-
- **stride**: index increment for `x`.
72+
- **strideX**: index increment for `x`.
7373

74-
The `N` and `stride` parameters determine which elements in `x` are accessed at runtime. For example, to compute the [arithmetic mean][arithmetic-mean] of every other element in `x`,
74+
The `N` and stride parameters determine which elements in the strided array are accessed at runtime. For example, to compute the [arithmetic mean][arithmetic-mean] of every other element in `x`,
7575

7676
```javascript
7777
var Float32Array = require( '@stdlib/array/float32' );
78-
var floor = require( '@stdlib/math/base/special/floor' );
7978

8079
var x = new Float32Array( [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0, NaN ] );
81-
var N = floor( x.length / 2 );
8280

83-
var v = sdsnanmeanors( N, x, 2 );
81+
var v = sdsnanmeanors( 4, x, 2 );
8482
// returns 1.25
8583
```
8684

@@ -90,45 +88,39 @@ Note that indexing is relative to the first index. To introduce an offset, use [
9088

9189
```javascript
9290
var Float32Array = require( '@stdlib/array/float32' );
93-
var floor = require( '@stdlib/math/base/special/floor' );
9491

9592
var x0 = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN ] );
9693
var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
9794

98-
var N = floor( x0.length / 2 );
99-
100-
var v = sdsnanmeanors( N, x1, 2 );
95+
var v = sdsnanmeanors( 4, x1, 2 );
10196
// returns 1.25
10297
```
10398

104-
#### sdsnanmeanors.ndarray( N, x, stride, offset )
99+
#### sdsnanmeanors.ndarray( N, x, strideX, offsetX )
105100

106101
Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation and alternative indexing semantics.
107102

108103
```javascript
109104
var Float32Array = require( '@stdlib/array/float32' );
110105

111106
var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] );
112-
var N = x.length;
113107

114-
var v = sdsnanmeanors.ndarray( N, x, 1, 0 );
108+
var v = sdsnanmeanors.ndarray( x.length, x, 1, 0 );
115109
// returns ~0.33333
116110
```
117111

118112
The function has the following additional parameters:
119113

120-
- **offset**: starting index for `x`.
114+
- **offsetX**: starting index for `x`.
121115

122-
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offset` parameter supports indexing semantics based on a starting index. For example, to calculate the [arithmetic mean][arithmetic-mean] for every other value in `x` starting from the second value
116+
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameter supports indexing semantics based on a starting index. For example, to calculate the [arithmetic mean][arithmetic-mean] for every other element in `x` starting from the second element
123117

124118
```javascript
125119
var Float32Array = require( '@stdlib/array/float32' );
126-
var floor = require( '@stdlib/math/base/special/floor' );
127120

128121
var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN ] );
129-
var N = floor( x.length / 2 );
130122

131-
var v = sdsnanmeanors.ndarray( N, x, 2, 1 );
123+
var v = sdsnanmeanors.ndarray( 4, x, 2, 1 );
132124
// returns 1.25
133125
```
134126

@@ -155,22 +147,12 @@ var v = sdsnanmeanors.ndarray( N, x, 2, 1 );
155147
<!-- eslint no-undef: "error" -->
156148

157149
```javascript
158-
var randu = require( '@stdlib/random/base/randu' );
159-
var round = require( '@stdlib/math/base/special/round' );
160-
var Float32Array = require( '@stdlib/array/float32' );
150+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
161151
var sdsnanmeanors = require( '@stdlib/stats/base/sdsnanmeanors' );
162152

163-
var x;
164-
var i;
165-
166-
x = new Float32Array( 10 );
167-
for ( i = 0; i < x.length; i++ ) {
168-
if ( randu() < 0.2 ) {
169-
x[ i ] = NaN;
170-
} else {
171-
x[ i ] = round( (randu()*100.0) - 50.0 );
172-
}
173-
}
153+
var x = discreteUniform( 10, -50, 50, {
154+
'dtype': 'float32'
155+
});
174156
console.log( x );
175157

176158
var v = sdsnanmeanors( x.length, x, 1 );
@@ -198,7 +180,7 @@ Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-p
198180
```c
199181
const float x[] = { 1.0, -2.0, 0.0/0.0, 2.0 };
200182

201-
double v = stdlib_strided_sdsnanmeanors( 4, x, 1 );
183+
double v = stdlib_strided_sdsnanmeanors( x.length, x, 1 );
202184
// returns ~0.3333
203185
```
204186
@@ -219,7 +201,7 @@ Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-p
219201
```c
220202
const float x[] = { 1.0, -2.0, 0.0/0.0, 2.0 };
221203

222-
double v = stdlib_strided_sdsnanmeanors_ndarray( 4, x, 1, 0 );
204+
double v = stdlib_strided_sdsnanmeanors_ndarray( x.length, x, 1, 0 );
223205
// returns ~0.3333
224206
```
225207

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,20 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
2525
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
var pow = require( '@stdlib/math/base/special/pow' );
27-
var Float32Array = require( '@stdlib/array/float32' );
2827
var pkg = require( './../package.json' ).name;
2928
var sdsnanmeanors = require( './../lib/sdsnanmeanors.js' );
3029

3130

31+
// VARIABLES //
32+
33+
var options = {
34+
'dtype': 'float32'
35+
};
36+
37+
3238
// FUNCTIONS //
3339

3440
/**
@@ -39,17 +45,7 @@ var sdsnanmeanors = require( './../lib/sdsnanmeanors.js' );
3945
* @returns {Function} benchmark function
4046
*/
4147
function createBenchmark( len ) {
42-
var x;
43-
var i;
44-
45-
x = new Float32Array( len );
46-
for ( i = 0; i < x.length; i++ ) {
47-
if ( randu() < 0.2 ) {
48-
x[ i ] = NaN;
49-
} else {
50-
x[ i ] = ( randu()*20.0 ) - 10.0;
51-
}
52-
}
48+
var x = uniform( len, -10.0, 10.0, options );
5349
return benchmark;
5450

5551
function benchmark( b ) {

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.native.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
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/array/uniform' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var pow = require( '@stdlib/math/base/special/pow' );
28-
var Float32Array = require( '@stdlib/array/float32' );
2928
var tryRequire = require( '@stdlib/utils/try-require' );
3029
var pkg = require( './../package.json' ).name;
3130

@@ -36,6 +35,9 @@ var sdsnanmeanors = tryRequire( resolve( __dirname, './../lib/sdsnanmeanors.nati
3635
var opts = {
3736
'skip': ( sdsnanmeanors instanceof Error )
3837
};
38+
var options = {
39+
'dtype': 'float32'
40+
};
3941

4042

4143
// FUNCTIONS //
@@ -48,17 +50,7 @@ var opts = {
4850
* @returns {Function} benchmark function
4951
*/
5052
function createBenchmark( len ) {
51-
var x;
52-
var i;
53-
54-
x = new Float32Array( len );
55-
for ( i = 0; i < x.length; i++ ) {
56-
if ( randu() < 0.2 ) {
57-
x[ i ] = NaN;
58-
} else {
59-
x[ i ] = ( randu()*20.0 ) - 10.0;
60-
}
61-
}
53+
var x = uniform( len, -10.0, 10.0, options );
6254
return benchmark;
6355

6456
function benchmark( b ) {

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,20 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
2525
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
var pow = require( '@stdlib/math/base/special/pow' );
27-
var Float32Array = require( '@stdlib/array/float32' );
2827
var pkg = require( './../package.json' ).name;
2928
var sdsnanmeanors = require( './../lib/ndarray.js' );
3029

3130

31+
// VARIABLES //
32+
33+
var options = {
34+
'dtype': 'float32'
35+
};
36+
37+
3238
// FUNCTIONS //
3339

3440
/**
@@ -39,17 +45,7 @@ var sdsnanmeanors = require( './../lib/ndarray.js' );
3945
* @returns {Function} benchmark function
4046
*/
4147
function createBenchmark( len ) {
42-
var x;
43-
var i;
44-
45-
x = new Float32Array( len );
46-
for ( i = 0; i < x.length; i++ ) {
47-
if ( randu() < 0.2 ) {
48-
x[ i ] = NaN;
49-
} else {
50-
x[ i ] = ( randu()*20.0 ) - 10.0;
51-
}
52-
}
48+
var x = uniform( len, -10.0, 10.0, options );
5349
return benchmark;
5450

5551
function benchmark( b ) {

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.native.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
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/array/uniform' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var pow = require( '@stdlib/math/base/special/pow' );
28-
var Float32Array = require( '@stdlib/array/float32' );
2928
var tryRequire = require( '@stdlib/utils/try-require' );
3029
var pkg = require( './../package.json' ).name;
3130

@@ -36,6 +35,9 @@ var sdsnanmeanors = tryRequire( resolve( __dirname, './../lib/ndarray.native.js'
3635
var opts = {
3736
'skip': ( sdsnanmeanors instanceof Error )
3837
};
38+
var options = {
39+
'dtype': 'float32'
40+
};
3941

4042

4143
// FUNCTIONS //
@@ -48,17 +50,7 @@ var opts = {
4850
* @returns {Function} benchmark function
4951
*/
5052
function createBenchmark( len ) {
51-
var x;
52-
var i;
53-
54-
x = new Float32Array( len );
55-
for ( i = 0; i < x.length; i++ ) {
56-
if ( randu() < 0.2 ) {
57-
x[ i ] = NaN;
58-
} else {
59-
x[ i ] = ( randu()*20.0 ) - 10.0;
60-
}
61-
}
53+
var x = uniform( len, -10.0, 10.0, options );
6254
return benchmark;
6355

6456
function benchmark( b ) {

lib/node_modules/@stdlib/stats/base/sdsnanmeanors/docs/repl.txt

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

2-
{{alias}}( N, x, stride )
2+
{{alias}}( N, x, strideX )
33
Computes the arithmetic mean of a single-precision floating-point strided
44
array, ignoring `NaN` values and using ordinary recursive summation with
55
extended accumulation.
66

7-
The `N` and `stride` parameters determine which elements in `x` are accessed
8-
at runtime.
7+
The `N` and stride parameters determine which elements in the strided array
8+
are accessed at runtime.
99

1010
Indexing is relative to the first index. To introduce an offset, use a typed
1111
array view.
@@ -22,8 +22,8 @@
2222
x: Float32Array
2323
Input array.
2424

25-
stride: integer
26-
Index increment.
25+
strideX: integer
26+
Stride Length.
2727

2828
Returns
2929
-------
@@ -37,22 +37,19 @@
3737
> {{alias}}( x.length, x, 1 )
3838
~0.3333
3939

40-
// Using `N` and `stride` parameters:
40+
// Using `N` and stride parameters:
4141
> x = new {{alias:@stdlib/array/float32}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, NaN ] );
42-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
43-
> var stride = 2;
44-
> {{alias}}( N, x, stride )
42+
> {{alias}}( 3, x, 2 )
4543
~0.3333
4644

4745
// Using view offsets:
4846
> var x0 = new {{alias:@stdlib/array/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN ] );
4947
> var x1 = new {{alias:@stdlib/array/float32}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
50-
> N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 );
51-
> stride = 2;
52-
> {{alias}}( N, x1, stride )
48+
> {{alias}}( 3, x1, 2 )
5349
~-0.3333
5450

55-
{{alias}}.ndarray( N, x, stride, offset )
51+
52+
{{alias}}.ndarray( N, x, strideX, offsetX )
5653
Computes the arithmetic mean of a single-precision floating-point strided
5754
array, ignoring `NaN` values and using ordinary recursive summation with
5855
extended accumulation and alternative indexing semantics.
@@ -69,10 +66,10 @@
6966
x: Float32Array
7067
Input array.
7168

72-
stride: integer
73-
Index increment.
69+
strideX: integer
70+
Stride Length.
7471

75-
offset: integer
72+
offsetX: integer
7673
Starting index.
7774

7875
Returns
@@ -89,8 +86,7 @@
8986

9087
// Using offset parameter:
9188
> var x = new {{alias:@stdlib/array/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN ] );
92-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
93-
> {{alias}}.ndarray( N, x, 2, 1 )
89+
> {{alias}}.ndarray( 3, x, 2, 1 )
9490
~-0.3333
9591

9692
See Also

0 commit comments

Comments
 (0)