Skip to content

Commit b39d76f

Browse files
committed
fix: update implementation
--- 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: na - 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 76705e6 commit b39d76f

File tree

5 files changed

+54
-80
lines changed

5 files changed

+54
-80
lines changed

lib/node_modules/@stdlib/stats/base/range/lib/accessors.js

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,51 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' );
3030
*
3131
* @private
3232
* @param {PositiveInteger} N - number of indexed elements
33-
* @param {Object} obj - input array object
33+
* @param {Object} x - input array object
34+
* @param {Collection} x.data - input array data
35+
* @param {Array<Function>} x.accessors - array element accessors
3436
* @param {integer} strideX - strideX length
3537
* @param {NonNegativeInteger} offsetX - starting index
3638
* @returns {number} range
39+
*
40+
* @example
41+
* var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
42+
* var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
43+
*
44+
* var x = toAccessorArray( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
45+
*
46+
* var v = range( 4, arraylike2object( x ), 2, 1 );
47+
* // returns 6.0
3748
*/
38-
function range( N, obj, strideX, offsetX ) {
49+
function range( N, x, strideX, offsetX ) {
3950
var xbuf;
40-
var xget;
41-
var min;
51+
var get;
4252
var max;
53+
var min;
4354
var ix;
4455
var v;
4556
var i;
4657

47-
// Cache references to array data:
48-
xbuf = obj.data;
58+
// Cache reference to array data:
59+
xbuf = x.data;
4960

50-
// Cache references to element accessors:
51-
xget = obj.accessors[ 0 ];
61+
// Cache a reference to the element accessor:
62+
get = x.accessors[ 0 ];
5263

5364
if ( N === 1 || strideX === 0 ) {
54-
v = xget( xbuf, offsetX );
55-
return ( isnan( v ) ) ? NaN : 0.0;
65+
if ( isnan( get( xbuf, offsetX ) ) ) {
66+
return NaN;
67+
}
68+
return 0.0;
5669
}
5770
ix = offsetX;
58-
v = xget( xbuf, ix );
59-
if ( isnan( v ) ) {
60-
return NaN;
61-
}
62-
min = v;
63-
max = v;
71+
min = get( xbuf, ix );
72+
max = min;
6473
for ( i = 1; i < N; i++ ) {
6574
ix += strideX;
66-
v = xget( xbuf, ix );
75+
v = get( xbuf, ix );
6776
if ( isnan( v ) ) {
68-
return NaN;
77+
return v;
6978
}
7079
if ( v < min ) {
7180
min = v;

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,29 @@
2727
* var range = require( '@stdlib/stats/base/range' );
2828
*
2929
* var x = [ 1.0, -2.0, 2.0 ];
30-
* var N = x.length;
3130
*
32-
* var v = range( N, x, 1 );
31+
* var v = range( x.length, x, 1 );
3332
* // returns 4.0
3433
*
3534
* @example
36-
* var floor = require( '@stdlib/math/base/special/floor' );
3735
* var range = require( '@stdlib/stats/base/range' );
3836
*
3937
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ];
40-
* var N = floor( x.length / 2 );
4138
*
42-
* var v = range.ndarray( N, x, 2, 1 );
39+
* var v = range.ndarray( 4, x, 2, 1 );
4340
* // returns 6.0
4441
*/
4542

4643
// MODULES //
4744

45+
var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
4846
var main = require( './main.js' );
47+
var ndarray = require( './ndarray.js' );
48+
49+
50+
// MAIN //
51+
52+
setReadOnly( main, 'ndarray', ndarray );
4953

5054

5155
// EXPORTS //

lib/node_modules/@stdlib/stats/base/range/lib/main.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,29 @@
2020

2121
// MODULES //
2222

23-
var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
24-
var range = require( './range.js' );
23+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
2524
var ndarray = require( './ndarray.js' );
2625

2726

2827
// MAIN //
2928

30-
setReadOnly( range, 'ndarray', ndarray );
29+
/**
30+
* Computes the range of a strided array.
31+
*
32+
* @param {PositiveInteger} N - number of indexed elements
33+
* @param {NumericArray} x - input array
34+
* @param {integer} strideX - stride length
35+
* @returns {number} range
36+
*
37+
* @example
38+
* var x = [ 1.0, -2.0, 2.0 ];
39+
*
40+
* var v = range( x.length, x, 1 );
41+
* // returns 4.0
42+
*/
43+
function range( N, x, strideX ) {
44+
return ndarray( N, x, strideX, stride2offset( N, strideX ) );
45+
}
3146

3247

3348
// EXPORTS //

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@ var accessors = require( './accessors.js' );
3737
* @returns {number} range
3838
*
3939
* @example
40-
* var floor = require( '@stdlib/math/base/special/floor' );
41-
*
4240
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ];
43-
* var N = floor( x.length / 2 );
4441
*
4542
* var v = range( 4, x, 2, 1 );
4643
* // returns 6.0

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

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

0 commit comments

Comments
 (0)