@@ -34,6 +34,7 @@ import dapxsumkbn2 = require( '@stdlib/blas/ext/base/dapxsumkbn2' );
3434import dapxsumors = require( '@stdlib/blas/ext/base/dapxsumors' ) ;
3535import dapxsumpw = require( '@stdlib/blas/ext/base/dapxsumpw' ) ;
3636import dasumpw = require( '@stdlib/blas/ext/base/dasumpw' ) ;
37+ import dcartesianSquare = require( '@stdlib/blas/ext/base/dcartesian-square' ) ;
3738import dcircshift = require( '@stdlib/blas/ext/base/dcircshift' ) ;
3839import dcusum = require( '@stdlib/blas/ext/base/dcusum' ) ;
3940import dcusumkbn = require( '@stdlib/blas/ext/base/dcusumkbn' ) ;
@@ -104,6 +105,7 @@ import gcusumkbn = require( '@stdlib/blas/ext/base/gcusumkbn' );
104105import gcusumkbn2 = require( '@stdlib/blas/ext/base/gcusumkbn2' ) ;
105106import gcusumors = require( '@stdlib/blas/ext/base/gcusumors' ) ;
106107import gcusumpw = require( '@stdlib/blas/ext/base/gcusumpw' ) ;
108+ import gdiff = require( '@stdlib/blas/ext/base/gdiff' ) ;
107109import gfill = require( '@stdlib/blas/ext/base/gfill' ) ;
108110import gfillBy = require( '@stdlib/blas/ext/base/gfill-by' ) ;
109111import gfindIndex = require( '@stdlib/blas/ext/base/gfind-index' ) ;
@@ -190,6 +192,7 @@ import ssumors = require( '@stdlib/blas/ext/base/ssumors' );
190192import ssumpw = require( '@stdlib/blas/ext/base/ssumpw' ) ;
191193import sunitspace = require( '@stdlib/blas/ext/base/sunitspace' ) ;
192194import svander = require( '@stdlib/blas/ext/base/svander' ) ;
195+ import swhere = require( '@stdlib/blas/ext/base/swhere' ) ;
193196import szeroTo = require( '@stdlib/blas/ext/base/szero-to' ) ;
194197import wasm = require( '@stdlib/blas/ext/base/wasm' ) ;
195198import zfill = require( '@stdlib/blas/ext/base/zfill' ) ;
@@ -602,6 +605,37 @@ interface Namespace {
602605 */
603606 dasumpw : typeof dasumpw ;
604607
608+ /**
609+ * Computes the Cartesian square for a double-precision floating-point strided array.
610+ *
611+ * @param order - storage layout
612+ * @param N - number of indexed elements
613+ * @param x - input array
614+ * @param strideX - stride length for `x`
615+ * @param out - output array
616+ * @param LDO - stride length between successive contiguous vectors of the matrix `out` (a.k.a., leading dimension of `out`)
617+ * @returns output array
618+ *
619+ * @example
620+ * var Float64Array = require( '@stdlib/array/float64' );
621+ *
622+ * var x = new Float64Array( [ 1.0, 2.0 ] );
623+ * var out = new Float64Array( 8 );
624+ *
625+ * ns.dcartesianSquare( 'row-major', x.length, x, 1, out, 2 );
626+ * // out => <Float64Array>[ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]
627+ *
628+ * @example
629+ * var Float64Array = require( '@stdlib/array/float64' );
630+ *
631+ * var x = new Float64Array( [ 1.0, 2.0 ] );
632+ * var out = new Float64Array( 8 );
633+ *
634+ * ns.dcartesianSquare.ndarray( x.length, x, 1, 0, out, 2, 1, 0 );
635+ * // out => <Float64Array>[ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]
636+ */
637+ dcartesianSquare : typeof dcartesianSquare ;
638+
605639 /**
606640 * Circularly shifts the elements of a double-precision floating-point strided array by a specified number of positions.
607641 *
@@ -2609,6 +2643,56 @@ interface Namespace {
26092643 */
26102644 gcusumpw : typeof gcusumpw ;
26112645
2646+ /**
2647+ * Calculates the k-th discrete forward difference of a strided array.
2648+ *
2649+ * ## Notes
2650+ *
2651+ * - The `out` array must have `N + N1 + N2 - k` elements.
2652+ * - The `workspace` array must have `N + N1 + N2 - 1` elements.
2653+ *
2654+ * @param N - number of indexed elements
2655+ * @param k - number of times to recursively compute differences
2656+ * @param x - input array
2657+ * @param strideX - stride length for `x`
2658+ * @param N1 - number of indexed elements for `prepend`
2659+ * @param prepend - prepend array
2660+ * @param strideP - stride length for `prepend`
2661+ * @param N2 - number of indexed elements for `append`
2662+ * @param append - append array
2663+ * @param strideA - stride length for `append`
2664+ * @param out - output array
2665+ * @param strideOut - stride length for `out`
2666+ * @param workspace - workspace array
2667+ * @param strideW - stride length for `workspace`
2668+ * @returns output array
2669+ *
2670+ * @example
2671+ * var x = [ 2.0, 4.0, 7.0, 11.0, 16.0 ];
2672+ * var p = [ 1.0 ];
2673+ * var a = [ 22.0 ];
2674+ * var out = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];
2675+ * var w = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
2676+ *
2677+ * ns.gdiff( x.length, 2, x, 1, 1, p, 1, 1, a, 1, out, 1, w, 1 );
2678+ *
2679+ * console.log( out );
2680+ * // => [ 1.0, 1.0, 1.0, 1.0, 1.0 ]
2681+ *
2682+ * @example
2683+ * var x = [ 2.0, 4.0, 7.0, 11.0, 16.0 ];
2684+ * var p = [ 1.0 ];
2685+ * var a = [ 22.0 ];
2686+ * var out = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];
2687+ * var w = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
2688+ *
2689+ * ns.gdiff.ndarray( x.length, 2, x, 1, 0, 1, p, 1, 0, 1, a, 1, 0, out, 1, 0, w, 1, 0 );
2690+ *
2691+ * console.log( out );
2692+ * // => [ 1.0, 1.0, 1.0, 1.0, 1.0 ]
2693+ */
2694+ gdiff : typeof gdiff ;
2695+
26122696 /**
26132697 * Fills a strided array with a specified scalar constant.
26142698 *
@@ -5036,6 +5120,44 @@ interface Namespace {
50365120 */
50375121 svander : typeof svander ;
50385122
5123+ /**
5124+ * Takes elements from one of two single-precision floating-point strided arrays depending on a condition.
5125+ *
5126+ * @param N - number of indexed elements
5127+ * @param condition - condition array
5128+ * @param strideC - stride length for `condition`
5129+ * @param x - first input array
5130+ * @param strideX - stride length for `x`
5131+ * @param y - second input array
5132+ * @param strideY - stride length for `y`
5133+ * @param out - output array
5134+ * @param strideOut - stride length for `out`
5135+ * @returns output array
5136+ *
5137+ * @example
5138+ * var BooleanArray = require( '@stdlib/array/bool' );
5139+ *
5140+ * var condition = new BooleanArray( [ true, false, true ] );
5141+ * var x = new Float32Array( [ 1.0, 2.0, 3.0 ] );
5142+ * var y = new Float32Array( [ 4.0, 5.0, 6.0 ] );
5143+ * var out = new Float32Array( [ 0.0, 0.0, 0.0 ] );
5144+ *
5145+ * ns.swhere( 3, condition, 1, x, 1, y, 1, out, 1 );
5146+ * // out => <Float32Array>[ 1.0, 5.0, 3.0 ]
5147+ *
5148+ * @example
5149+ * var BooleanArray = require( '@stdlib/array/bool' );
5150+ *
5151+ * var condition = new BooleanArray( [ true, false, true ] );
5152+ * var x = new Float32Array( [ 1.0, 2.0, 3.0 ] );
5153+ * var y = new Float32Array( [ 4.0, 5.0, 6.0 ] );
5154+ * var out = new Float32Array( [ 0.0, 0.0, 0.0 ] );
5155+ *
5156+ * ns.swhere.ndarray( 3, condition, 1, 0, x, 1, 0, y, 1, 0, out, 1, 0 );
5157+ * // out => <Float32Array>[ 1.0, 5.0, 3.0 ]
5158+ */
5159+ swhere : typeof swhere ;
5160+
50395161 /**
50405162 * Fills a single-precision floating-point strided array with linearly spaced numeric elements which increment by `1` starting from zero.
50415163 *
0 commit comments