Skip to content

Commit 165db04

Browse files
committed
changes
1 parent 5d543ed commit 165db04

File tree

10 files changed

+117
-290
lines changed

10 files changed

+117
-290
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,17 @@ var v = range.ndarray( 4, x, 2, 1 );
127127
<!-- eslint no-undef: "error" -->
128128

129129
```javascript
130+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
130131
var randu = require( '@stdlib/random/base/randu' );
131132
var round = require( '@stdlib/math/base/special/round' );
132-
var linspace = require( '@stdlib/array/base/linspace' );
133133
var range = require( '@stdlib/stats/base/range' );
134134

135135
var x;
136136
var i;
137137

138-
x = linspace(-50, 50, 10);
138+
x = discreteUniform( 10, -50, 50, {
139+
'dtype': 'float64'
140+
});
139141
x = x.map(round);
140142
console.log( x );
141143

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

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

2323
var bench = require( '@stdlib/bench' );
24+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2425
var isnan = require( '@stdlib/math/base/assert/is-nan' );
25-
var linspace = require( '@stdlib/array/base/linspace' );
2626
var pow = require( '@stdlib/math/base/special/pow' );
2727
var pkg = require( './../package.json' ).name;
2828
var range = require( './../lib/range.js' );
@@ -38,7 +38,9 @@ var range = require( './../lib/range.js' );
3838
* @returns {Function} benchmark function
3939
*/
4040
function createBenchmark( len ) {
41-
var x = linspace( 0.0, len, len );
41+
var x = discreteUniform(len, 0, len, {
42+
'dtype': 'float64'
43+
});
4244
return benchmark;
4345

4446
function benchmark( b ) {

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

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
25-
var linspace = require( '@stdlib/array/linspace' );
24+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2625
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2726
var pow = require( '@stdlib/math/base/special/pow' );
2827
var pkg = require( './../package.json' ).name;
@@ -40,7 +39,9 @@ var range = require( './../lib/ndarray.js' );
4039
*/
4140
function createBenchmark( len ) {
4241
var x;
43-
var x = linspace( 0.0, len, len );
42+
var x = discreteUniform(len, 0, len, {
43+
'dtype': 'float64'
44+
});
4445
return benchmark;
4546

4647
function benchmark( b ) {
Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,124 +1,91 @@
1-
{{alias}}( N, x, strideX )
2-
31

2+
{{alias}}( N, x, strideX )
43
Computes the range of a strided array.
54

6-
75
The `N` and stride parameters determine which elements in the strided
86
array are accessed at runtime.
97

10-
118
Indexing is relative to the first index. To introduce an offset, use a
129
typed array view.
1310

14-
1511
If `N <= 0`, the function returns `NaN`.
1612

17-
1813
Parameters
1914
----------
20-
21-
2215
N: integer
2316
Number of indexed elements.
2417

25-
2618
x: Array<number>|TypedArray
2719
Input array.
2820

29-
3021
strideX: integer
3122
Stride length.
3223

33-
3424
Returns
3525
-------
36-
37-
3826
out: number
3927
Range.
4028

41-
4229
Examples
4330
--------
44-
45-
4631
// Standard Usage:
4732
> var x = [ 1.0, -2.0, 2.0 ];
4833
> {{alias}}( x.length, x, 1 )
4934
4.0
5035

51-
5236
// Using `N` and stride parameters:
5337
> x = [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0 ];
5438
> var stride = 2;
5539
> {{alias}}( 3, x, stride )
5640
4.0
5741

58-
5942
// Using view offsets:
60-
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
61-
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
43+
> var x0 = new {{alias:@stdlib/array/float64}}
44+
( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
45+
> var x1 = new {{alias:@stdlib/array/float64}}
46+
( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
6247
> stride = 2;
6348
> {{alias}}( 3, x1, stride )
6449
4.0
6550

66-
6751
{{alias}}.ndarray( N, x, strideX, offsetX )
68-
69-
7052
Computes the range of a strided array using alternative indexing
7153
semantics.
7254

73-
7455
While typed array views mandate a view offset based on the underlying
7556
buffer, the `offset` parameter supports indexing semantics based on a
7657
starting index.
7758

78-
7959
Parameters
8060
----------
81-
82-
8361
N: integer
8462
Number of indexed elements.
8563

86-
8764
x: Array<number>|TypedArray
8865
Input array.
8966

90-
9167
strideX: integer
9268
Stride length.
9369

94-
9570
offsetX: integer
9671
Starting index.
9772

98-
9973
Returns
10074
-------
101-
102-
10375
out: number
10476
Range.
10577

106-
10778
Examples
10879
--------
109-
110-
11180
// Standard Usage:
11281
> var x = [ 1.0, -2.0, 2.0 ];
11382
> {{alias}}.ndarray( x.length, x, 1, 0 )
11483
4.0
11584

116-
11785
// Using offset parameter:
11886
> var x = [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ];
11987
> {{alias}}.ndarray( 3, x, 2, 1 )
12088
4.0
12189

122-
12390
See Also
12491
--------

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@
1818

1919
'use strict';
2020

21-
var linspace = require( '@stdlib/array/base/linspace' );
21+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2222
var range = require( './../lib' );
2323

24-
var x = linspace(-50, 50, 10);
24+
var len = 50;
25+
var x = discreteUniform(len, 0, len, {
26+
'dtype': 'float64'
27+
});
2528
console.log( x );
2629

2730
var v = range( x.length, x, 1 );

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

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -26,57 +26,57 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
// MAIN //
2727

2828
/**
29-
* Computes the range of a strided array using the accessor protocol.
29+
* Computes the range of a strided array using accessors.
3030
*
31+
* @private
3132
* @param {PositiveInteger} N - number of indexed elements
32-
* @param {Object} x - input array-like object supporting the accessor protocol
33-
* @param {Function} get - accessor function to retrieve array values
34-
* @param {integer} stride - stride length
35-
* @returns {number} range (max - min)
36-
*
37-
* @example
38-
* function accessor( arr, idx ) {
39-
* return arr.get( idx );
40-
* }
41-
*
42-
* var x = {
43-
* data: [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0 ],
44-
* get: function( i ) { return this.data[ i ]; }
45-
* };
46-
*
47-
* var v = range( 3, x, accessor, 2 );
48-
* // returns 4.0
33+
* @param {Object} obj - input array object
34+
* @param {integer} strideX - strideX length
35+
* @param {NonNegativeInteger} offsetX - starting index
36+
* @returns {number} range
4937
*/
50-
function range( N, x, get, stride ) {
51-
if ( N <= 0 ) {
52-
return NaN;
53-
}
54-
if ( N === 1 || stride === 0 ) {
55-
const v = get( x, 0 );
56-
return ( isnan(v) ) ? NaN : 0.0;
57-
}
38+
function range( N, x, strideX, offsetX ) {
39+
var xbuf;
40+
var xget;
41+
var ix;
42+
var min;
43+
var max;
44+
var v;
45+
var i;
5846

59-
let ix = ( stride < 0 ) ? ( ( 1 - N ) * stride ) : 0;
60-
let min = get( x, ix );
61-
let max = min;
47+
// Cache references to array data:
48+
xbuf = x.data;
6249

63-
for ( let i = 1; i < N; i++ ) {
64-
ix += stride;
65-
const v = get( x, ix );
50+
// Cache references to element accessors:
51+
xget = x.accessors[ 0 ];
6652

67-
if ( isnan( v ) ) {
68-
return NaN;
69-
}
70-
if ( v < min ) {
71-
min = v;
72-
} else if ( v > max ) {
73-
max = v;
74-
}
75-
}
76-
return max - min;
53+
if ( N === 1 || strideX === 0 ) {
54+
v = xget( xbuf, offsetX );
55+
return ( isnan( v ) ) ? NaN : 0.0;
56+
}
57+
ix = offsetX;
58+
v = xget( xbuf, ix );
59+
if ( isnan( v ) ) {
60+
return NaN;
61+
}
62+
min = v;
63+
max = v;
64+
for ( i = 1; i < N; i++ ) {
65+
ix += strideX;
66+
v = xget( xbuf, ix );
67+
if ( isnan( v ) ) {
68+
return NaN;
69+
}
70+
if ( v < min ) {
71+
min = v;
72+
} else if ( v > max ) {
73+
max = v;
74+
}
75+
}
76+
return max - min;
7777
}
7878

7979

8080
// EXPORTS //
8181

82-
module.exports = range;
82+
module.exports = range;

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

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @license Apache-2.0
33
*
4-
* Copyright (c) 2020 The Stdlib Authors.
4+
* Copyright (c) 2025 The Stdlib Authors.
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.
@@ -24,15 +24,16 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' );
2424
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
2525
var accessors = require( './accessors.js' );
2626

27+
2728
// MAIN //
2829

2930
/**
3031
* Computes the range of a strided array.
3132
*
3233
* @param {PositiveInteger} N - number of indexed elements
3334
* @param {NumericArray} x - input array
34-
* @param {integer} strideX - strideX length
35-
* @param {NonNegativeInteger} offsetX - starting index
35+
* @param {integer} strideX - stride length for `x`
36+
* @param {NonNegativeInteger} offsetX - starting index for `x`
3637
* @returns {number} range
3738
*
3839
* @example
@@ -45,28 +46,32 @@ var accessors = require( './accessors.js' );
4546
* // returns 6.0
4647
*/
4748
function range( N, x, strideX, offsetX ) {
48-
var obj = arraylike2object( x );
49-
var data = obj.data;
50-
5149
var max;
5250
var min;
5351
var ix;
52+
var o;
5453
var v;
5554
var i;
5655

5756
if ( N <= 0 ) {
5857
return NaN;
5958
}
59+
o = arraylike2object( x );
60+
if ( o.accessorProtocol ) {
61+
return accessors( N, o, strideX, offsetX );
62+
}
6063
if ( N === 1 || strideX === 0 ) {
61-
v = data[offsetX]; // Direct access instead of using an accessor function
62-
return isnan( v ) ? NaN : 0.0;
64+
if ( isnan( x[ offsetX ] ) ) {
65+
return NaN;
66+
}
67+
return 0.0;
6368
}
6469
ix = offsetX;
65-
min = data[ix]; // Direct access
70+
min = x[ ix ];
6671
max = min;
6772
for ( i = 1; i < N; i++ ) {
6873
ix += strideX;
69-
v = data[ix]; // Direct access
74+
v = x[ ix ];
7075
if ( isnan( v ) ) {
7176
return v;
7277
}
@@ -79,6 +84,7 @@ function range( N, x, strideX, offsetX ) {
7984
return max - min;
8085
}
8186

87+
8288
// EXPORTS //
8389

84-
module.exports = range;
90+
module.exports = range;

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
// MODULES //
2222

23-
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2423
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
2524
var ndarray = require( './ndarray.js' );
2625

0 commit comments

Comments
 (0)