Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c369d83
feat: add `math/base/special/dirac-deltaf`
aayush0325 Jan 9, 2025
fa05c7b
Merge branch 'develop' of github.com:saurabhraghuvanshii/stdlib-gs in…
saurabhraghuvanshii Jan 9, 2025
87d701c
Merge branch 'develop' of github.com:saurabhraghuvanshii/stdlib-gs in…
saurabhraghuvanshii Jan 9, 2025
85b5dca
Merge remote-tracking branch 'origin/develop' into develop
saurabhraghuvanshii Jan 9, 2025
f70805d
feat: add `math/base/special/dirac-deltaf`
aayush0325 Jan 9, 2025
46c4a90
Merge remote-tracking branch 'origin/develop' into develop
saurabhraghuvanshii Jan 9, 2025
ddc6a40
feat: add C implementation for /base/dists/lognormal/cdf
saurabhraghuvanshii Jan 10, 2025
bc945e1
chore: update copyright years
stdlib-bot Jan 10, 2025
5031d09
chore: update benchmark.js
saurabhraghuvanshii Jan 10, 2025
b522052
chore: update native.js
saurabhraghuvanshii Jan 10, 2025
0afd69f
refactor: update `blas/ext/base/gsumpw` to follow current project con…
headlessNode Jan 10, 2025
7ebfec4
refactor: update `blas/ext/base/gsumors` to follow current project co…
headlessNode Jan 10, 2025
1d47d0e
refactor: update `blas/ext/base/gsumkbn2` to follow current project c…
headlessNode Jan 10, 2025
e82d2ee
feat: add C ndarray interface and refactor implementation for `stats/…
aayush0325 Jan 10, 2025
a5174ca
refactor: update `blas/ext/base/gnannsumkbn` to follow current projec…
headlessNode Jan 10, 2025
d60cb87
docs: update related packages sections
stdlib-bot Jan 10, 2025
131a961
docs: update REPL namespace documentation
stdlib-bot Jan 10, 2025
5042634
feat: add C implementation for `stats/base/dists/triangular/variance`
0PrashantYadav0 Jan 10, 2025
ae3cb46
feat: add C implementation for `stats/base/dists/degenerate/mode`
anandkaranubc Jan 10, 2025
e8ade9e
chore: update native.js
saurabhraghuvanshii Jan 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 16 additions & 27 deletions lib/node_modules/@stdlib/blas/ext/base/gnannsumkbn/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,17 @@ The function has the following parameters:

- **N**: number of indexed elements.
- **x**: input [`Array`][mdn-array] or [`typed array`][mdn-typed-array].
- **strideX**: index increment for `x`.
- **strideX**: stride length for `x`.
- **out**: output [`Array`][mdn-array] or [`typed array`][mdn-typed-array] whose first element is the sum and whose second element is the number of non-NaN elements.
- **strideOut**: index increment for `out`.
- **strideOut**: stride length for `out`.

The `N` and `stride` parameters determine which elements are accessed at runtime. For example, to compute the sum of every other element in `x`,
The `N` and stride parameters determine which elements are accessed at runtime. For example, to compute the sum of every other element:

```javascript
var floor = require( '@stdlib/math/base/special/floor' );

var x = [ 1.0, 2.0, NaN, -7.0, NaN, 3.0, 4.0, 2.0 ];
var out = [ 0.0, 0 ];
var N = floor( x.length / 2 );

var v = gnannsumkbn( N, x, 2, out, 1 );
var v = gnannsumkbn( 4, x, 2, out, 1 );
// returns [ 5.0, 2 ]
```

Expand All @@ -75,17 +72,14 @@ Note that indexing is relative to the first index. To introduce an offset, use [

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var floor = require( '@stdlib/math/base/special/floor' );

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

var out0 = new Float64Array( 4 );
var out1 = new Float64Array( out0.buffer, out0.BYTES_PER_ELEMENT*2 ); // start at 3rd element

var N = floor( x0.length / 2 );

var v = gnannsumkbn( N, x1, 2, out1, 1 );
var v = gnannsumkbn( 4, x1, 2, out1, 1 );
// returns <Float64Array>[ 5.0, 4 ]
```

Expand All @@ -106,16 +100,13 @@ The function has the following additional parameters:
- **offsetX**: starting index for `x`.
- **offsetOut**: starting index for `out`.

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 sum of every other value in `x` starting from the second value
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example, to calculate the sum of every other element starting from the second element:

```javascript
var floor = require( '@stdlib/math/base/special/floor' );

var x = [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ];
var out = [ 0.0, 0.0, 0.0, 0 ];
var N = floor( x.length / 2 );

var v = gnannsumkbn.ndarray( N, x, 2, 1, out, 2, 1 );
var v = gnannsumkbn.ndarray( 4, x, 2, 1, out, 2, 1 );
// returns <Float64Array>[ 0.0, 5.0, 0.0, 4 ]
```

Expand All @@ -140,22 +131,20 @@ var v = gnannsumkbn.ndarray( N, x, 2, 1, out, 2, 1 );
<!-- eslint no-undef: "error" -->

```javascript
var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var bernoulli = require( '@stdlib/random/base/bernoulli' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
var Float64Array = require( '@stdlib/array/float64' );
var gnannsumkbn = require( '@stdlib/blas/ext/base/gnannsumkbn' );

var x;
var i;

x = new Float64Array( 10 );
for ( i = 0; i < x.length; i++ ) {
if ( randu() < 0.2 ) {
x[ i ] = NaN;
} else {
x[ i ] = round( randu()*100.0 );
function rand() {
if ( bernoulli( 0.8 ) > 0 ) {
return discreteUniform( 0, 100 );
}
return NaN;
}

var x = filledarrayBy( 10, 'float64', rand );
console.log( x );

var out = new Float64Array( 2 );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,31 @@
// MODULES //

var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/base/randu' );
var bernoulli = require( '@stdlib/random/base/bernoulli' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
var isnan = require( '@stdlib/math/base/assert/is-nan' );
var pow = require( '@stdlib/math/base/special/pow' );
var zeros = require( '@stdlib/array/base/zeros' );
var pkg = require( './../package.json' ).name;
var gnannsumkbn = require( './../lib/main.js' );


// FUNCTIONS //

/**
* Returns a random number.
*
* @private
* @returns {number} random number
*/
function rand() {
if ( bernoulli( 0.7 ) > 0 ) {
return discreteUniform( -10.0, 10.0 );
}
return NaN;
}

/**
* Creates a benchmark function.
*
Expand All @@ -38,19 +54,8 @@ var gnannsumkbn = require( './../lib/main.js' );
* @returns {Function} benchmark function
*/
function createBenchmark( len ) {
var out;
var x;
var i;

x = [];
for ( i = 0; i < len; i++ ) {
if ( randu() < 0.2 ) {
x.push( NaN );
} else {
x.push( ( randu()*10.0 ) - 20.0 );
}
}
out = [ 0.0, 0 ];
var out = zeros( 2 );
var x = filledarrayBy( len, 'generic', rand );
return benchmark;

function benchmark( b ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,31 @@
// MODULES //

var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/base/randu' );
var bernoulli = require( '@stdlib/random/base/bernoulli' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
var isnan = require( '@stdlib/math/base/assert/is-nan' );
var pow = require( '@stdlib/math/base/special/pow' );
var zeros = require( '@stdlib/array/base/zeros' );
var pkg = require( './../package.json' ).name;
var gnannsumkbn = require( './../lib/ndarray.js' );


// FUNCTIONS //

/**
* Returns a random number.
*
* @private
* @returns {number} random number
*/
function rand() {
if ( bernoulli( 0.7 ) > 0 ) {
return discreteUniform( -10.0, 10.0 );
}
return NaN;
}

/**
* Creates a benchmark function.
*
Expand All @@ -38,19 +54,8 @@ var gnannsumkbn = require( './../lib/ndarray.js' );
* @returns {Function} benchmark function
*/
function createBenchmark( len ) {
var out;
var x;
var i;

x = [];
for ( i = 0; i < len; i++ ) {
if ( randu() < 0.2 ) {
x.push( NaN );
} else {
x.push( ( randu()*10.0 ) - 20.0 );
}
}
out = [ 0.0, 0 ];
var out = zeros( 2 );
var x = filledarrayBy( len, 'generic', rand );
return benchmark;

function benchmark( b ) {
Expand Down
26 changes: 12 additions & 14 deletions lib/node_modules/@stdlib/blas/ext/base/gnannsumkbn/docs/repl.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Computes the sum of strided array elements, ignoring `NaN` values and using
an improved Kahan–Babuška algorithm.

The `N` and `stride` parameters determine which elements are accessed at
The `N` and stride parameters determine which elements are accessed at
runtime.

Indexing is relative to the first index. To introduce an offset, use a typed
Expand All @@ -20,13 +20,13 @@
Input array.

strideX: integer
Index increment for `x`.
Stride length for `x`.

out: Array<number>|TypedArray
Output array.

strideOut: integer
Index increment for `out`.
Stride length for `out`.

Returns
-------
Expand All @@ -42,28 +42,27 @@
> {{alias}}( x.length, x, 1, out, 1 )
[ 1.0, 3 ]

// Using `N` and `stride` parameters:
// Using `N` and stride parameters:
> x = [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, NaN, NaN ];
> out = [ 0.0, 0 ];
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
> {{alias}}( N, x, 2, out, 1 )
> {{alias}}( 4, x, 2, out, 1 )
[ 1.0, 3 ]

// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 );
> out = [ 0.0, 0 ];
> {{alias}}( N, x1, 2, out, 1 )
> {{alias}}( 4, x1, 2, out, 1 )
<Float64Array>[ 1.0, 3 ]


{{alias}}.ndarray( N, x, strideX, offsetX, out, strideOut, offsetOut )
Computes the sum of strided array elements, ignoring `NaN` values and using
an improved Kahan–Babuška algorithm and alternative indexing semantics.

While typed array views mandate a view offset based on the underlying
buffer, the `offset` parameter supports indexing semantics based on a
starting index.
buffer, the offset parameters support indexing semantics based on a starting
indices.

Parameters
----------
Expand All @@ -74,7 +73,7 @@
Input array.

strideX: integer
Index increment for `x`.
Stride length for `x`.

offsetX: integer
Starting index for `x`.
Expand All @@ -83,7 +82,7 @@
Output array.

strideOut: integer
Index increment for `out`.
Stride length for `out`.

offsetOut: integer
Starting index for `out`.
Expand All @@ -104,9 +103,8 @@

// Using offset parameter:
> var x = [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ];
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
> out = [ 0.0, 0 ];
> {{alias}}.ndarray( N, x, 2, 1, out, 1, 0 )
> {{alias}}.ndarray( 4, x, 2, 1, out, 1, 0 )
[ 1.0, 3 ]

See Also
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ interface Routine {
*
* @param N - number of indexed elements
* @param x - input array
* @param strideX - `x` stride length
* @param strideX - stride length for `x`
* @param out - output array whose first element is the sum and whose second element is the number of non-NaN elements
* @param strideOut - `out` stride length
* @param strideOut - stride length for `out`
* @returns output array
*
* @example
Expand All @@ -50,11 +50,11 @@ interface Routine {
*
* @param N - number of indexed elements
* @param x - input array
* @param strideX - `x` stride length
* @param offsetX - `x` starting index
* @param strideX - stride length for `x`
* @param offsetX - starting index for `x`
* @param out - output array whose first element is the sum and whose second element is the number of non-NaN elements
* @param strideOut - `out` stride length
* @param offsetOut - `out` starting index
* @param strideOut - stride length for `out`
* @param offsetOut - starting index for `out`
* @returns output array
*
* @example
Expand All @@ -72,9 +72,9 @@ interface Routine {
*
* @param N - number of indexed elements
* @param x - input array
* @param strideX - `x` stride length
* @param strideX - stride length for `x`
* @param out - output array whose first element is the sum and whose second element is the number of non-NaN elements
* @param strideOut - `out` stride length
* @param strideOut - stride length for `out`
* @returns output array
*
* @example
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,22 @@

'use strict';

var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var bernoulli = require( '@stdlib/random/base/bernoulli' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
var Float64Array = require( '@stdlib/array/float64' );
var gnannsumkbn = require( './../lib' );

var out;
var x;
var i;

x = new Float64Array( 10 );
for ( i = 0; i < x.length; i++ ) {
if ( randu() < 0.2 ) {
x[ i ] = NaN;
} else {
x[ i ] = round( randu()*100.0 );
function rand() {
if ( bernoulli( 0.8 ) > 0 ) {
return discreteUniform( 0, 100 );
}
return NaN;
}

var x = filledarrayBy( 10, 'float64', rand );
console.log( x );

out = new Float64Array( 2 );
var out = new Float64Array( 2 );
gnannsumkbn( x.length, x, 1, out, 1 );
console.log( out );
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,12 @@
* // returns [ 1.0, 3 ]
*
* @example
* var floor = require( '@stdlib/math/base/special/floor' );
* var gnannsumkbn = require( '@stdlib/blas/ext/base/gnannsumkbn' );
*
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ];
* var out = [ 0.0, 0 ];
*
* var N = floor( x.length / 2 );
*
* var v = gnannsumkbn.ndarray( N, x, 2, 1, out, 1, 0 );
* var v = gnannsumkbn.ndarray( 5, x, 2, 1, out, 1, 0 );
* // returns [ 5.0, 4 ]
*/

Expand Down
Loading
Loading