Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
@stdlib/blas-ext-base-gsumpw
Advanced tools
Calculate the sum of strided array elements using pairwise summation.
Calculate the sum of strided array elements using pairwise summation.
npm install @stdlib/blas-ext-base-gsumpw
var gsumpw = require( '@stdlib/blas-ext-base-gsumpw' );
Computes the sum of strided array elements using pairwise summation.
var x = [ 1.0, -2.0, 2.0 ];
var N = x.length;
var v = gsumpw( N, x, 1 );
// returns 1.0
The function has the following parameters:
Array
or typed array
.x
.The N
and stride
parameters determine which elements in x
are accessed at runtime. For example, to compute the gsumpw of every other element in x
,
var floor = require( '@stdlib/math-base-special-floor' );
var x = [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0 ];
var N = floor( x.length / 2 );
var v = gsumpw( N, x, 2 );
// returns 5.0
Note that indexing is relative to the first index. To introduce an offset, use typed array
views.
var Float64Array = require( '@stdlib/array-float64' );
var floor = require( '@stdlib/math-base-special-floor' );
var x0 = new Float64Array( [ 2.0, 1.0, 2.0, -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 N = floor( x0.length / 2 );
var v = gsumpw( N, x1, 2 );
// returns 5.0
Computes the sum of strided array elements using pairwise summation and alternative indexing semantics.
var x = [ 1.0, -2.0, 2.0 ];
var N = x.length;
var v = gsumpw.ndarray( N, x, 1, 0 );
// returns 1.0
The function has the following additional parameters:
x
.While 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
var floor = require( '@stdlib/math-base-special-floor' );
var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ];
var N = floor( x.length / 2 );
var v = gsumpw.ndarray( N, x, 2, 1 );
// returns 5.0
N <= 0
, both functions return 0.0
.dsumpw
, ssumpw
, etc.) are likely to be significantly more performant.var randu = require( '@stdlib/random-base-randu' );
var round = require( '@stdlib/math-base-special-round' );
var Float64Array = require( '@stdlib/array-float64' );
var gsumpw = require( '@stdlib/blas-ext-base-gsumpw' );
var x;
var i;
x = new Float64Array( 10 );
for ( i = 0; i < x.length; i++ ) {
x[ i ] = round( randu()*100.0 );
}
console.log( x );
var v = gsumpw( x.length, x, 1 );
console.log( v );
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
See LICENSE.
Copyright © 2016-2021. The Stdlib Authors.
FAQs
Calculate the sum of strided array elements using pairwise summation.
The npm package @stdlib/blas-ext-base-gsumpw receives a total of 30,317 weekly downloads. As such, @stdlib/blas-ext-base-gsumpw popularity was classified as popular.
We found that @stdlib/blas-ext-base-gsumpw demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.