Skip to content

Commit 8f43995

Browse files
authored
Merge branch 'develop' into lapack-dlarfg
2 parents 5bb7815 + 622d150 commit 8f43995

225 files changed

Lines changed: 13854 additions & 73 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ body:
5757
- a
5858
- b
5959
- c
60-
render: shell
6160
- type: textarea
6261
id: expected
6362
attributes:
@@ -86,12 +85,14 @@ body:
8685
options:
8786
- N/A
8887
- Node.js
88+
- Deno
8989
- Firefox
9090
- Chrome
9191
- Safari
9292
- Microsoft Edge
9393
- Internet Explorer
9494
- Other Browser
95+
- Other Server Runtime
9596
validations:
9697
required: true
9798
- type: input

lib/node_modules/@stdlib/assert/is-numeric-array/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ bool = isNumericArray( new Buffer( 10 ) );
141141

142142
- <span class="package-name">[`@stdlib/assert/is-array`][@stdlib/assert/is-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array.</span>
143143
- <span class="package-name">[`@stdlib/assert/is-number-array`][@stdlib/assert/is-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object of numbers.</span>
144-
- <span class="package-name">[`@stdlib/assert/is-typed-array`][@stdlib/assert/is-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a typed array.</span>
144+
- <span class="package-name">[`@stdlib/assert/is-typed-array`][@stdlib/assert/is-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a built-in typed array.</span>
145145

146146
</section>
147147

lib/node_modules/@stdlib/assert/is-uint8clampedarray/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ bool = isUint8ClampedArray( null );
115115

116116
## See Also
117117

118-
- <span class="package-name">[`@stdlib/assert/is-typed-array`][@stdlib/assert/is-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a typed array.</span>
118+
- <span class="package-name">[`@stdlib/assert/is-typed-array`][@stdlib/assert/is-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a built-in typed array.</span>
119119
- <span class="package-name">[`@stdlib/assert/is-uint8array`][@stdlib/assert/is-uint8array]</span><span class="delimiter">: </span><span class="description">test if a value is a Uint8Array.</span>
120120

121121
</section>

lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var max = require( '@stdlib/math/base/special/fast/max' );
2424
var isLayout = require( '@stdlib/blas/base/assert/is-layout' );
25-
var isMatrixTranspose = require( '@stdlib/blas/base/assert/is-transpose-operation' );
25+
var resolveStr = require( '@stdlib/blas/base/transpose-operation-resolve-str' );
2626
var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' );
2727
var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' );
2828
var format = require( '@stdlib/string/format' );
@@ -35,8 +35,8 @@ var base = require( './base.js' );
3535
* Performs the matrix-matrix operation `C = α*op(A)*op(B) + β*C` where `op(X)` is either `op(X) = X` or `op(X) = X^T`, `α` and `β` are scalars, `A`, `B`, and `C` are matrices, with `op(A)` an `M` by `K` matrix, `op(B)` a `K` by `N` matrix, and `C` an `M` by `N` matrix.
3636
*
3737
* @param {string} order - storage layout
38-
* @param {string} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed
39-
* @param {string} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed
38+
* @param {(integer|string)} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed
39+
* @param {(integer|string)} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed
4040
* @param {NonNegativeInteger} M - number of rows in the matrix `op(A)` and in the matrix `C`
4141
* @param {NonNegativeInteger} N - number of columns in the matrix `op(B)` and in the matrix `C`
4242
* @param {NonNegativeInteger} K - number of columns in the matrix `op(A)` and number of rows in the matrix `op(B)`
@@ -81,14 +81,18 @@ function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C,
8181
var sb2;
8282
var sc1;
8383
var sc2;
84+
var ta;
85+
var tb;
8486

8587
if ( !isLayout( order ) ) {
8688
throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );
8789
}
88-
if ( !isMatrixTranspose( transA ) ) {
90+
ta = resolveStr( transA );
91+
if ( ta === null ) {
8992
throw new TypeError( format( 'invalid argument. Second argument must be a valid transpose operation. Value: `%s`.', transA ) );
9093
}
91-
if ( !isMatrixTranspose( transB ) ) {
94+
tb = resolveStr( transB );
95+
if ( tb === null ) {
9296
throw new TypeError( format( 'invalid argument. Third argument must be a valid transpose operation. Value: `%s`.', transB ) );
9397
}
9498
if ( M < 0 ) {
@@ -147,7 +151,7 @@ function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C,
147151
sc1 = LDC;
148152
sc2 = 1;
149153
}
150-
return base( transA, transB, M, N, K, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0, beta, C, sc1, sc2, 0 ); // eslint-disable-line max-len
154+
return base( ta, tb, M, N, K, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0, beta, C, sc1, sc2, 0 ); // eslint-disable-line max-len
151155
}
152156

153157

lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
// MODULES //
2222

23-
var isMatrixTranspose = require( '@stdlib/blas/base/assert/is-transpose-operation' );
23+
var resolveStr = require( '@stdlib/blas/base/transpose-operation-resolve-str' );
2424
var format = require( '@stdlib/string/format' );
2525
var base = require( './base.js' );
2626

@@ -30,8 +30,8 @@ var base = require( './base.js' );
3030
/**
3131
* Performs the matrix-matrix operation `C = α*op(A)*op(B) + β*C` where `op(X)` is either `op(X) = X` or `op(X) = X^T`, `α` and `β` are scalars, `A`, `B`, and `C` are matrices, with `op(A)` an `M` by `K` matrix, `op(B)` a `K` by `N` matrix, and `C` an `M` by `N` matrix.
3232
*
33-
* @param {string} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed
34-
* @param {string} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed
33+
* @param {(integer|string)} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed
34+
* @param {(integer|string)} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed
3535
* @param {NonNegativeInteger} M - number of rows in the matrix `op(A)` and in the matrix `C`
3636
* @param {NonNegativeInteger} N - number of columns in the matrix `op(B)` and in the matrix `C`
3737
* @param {NonNegativeInteger} K - number of columns in the matrix `op(A)` and number of rows in the matrix `op(B)`
@@ -69,10 +69,15 @@ var base = require( './base.js' );
6969
* // C => <Float64Array>[ 2.0, 5.0, 6.0, 11.0 ]
7070
*/
7171
function dgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ) { // eslint-disable-line max-params, max-len
72-
if ( !isMatrixTranspose( transA ) ) {
72+
var ta;
73+
var tb;
74+
75+
ta = resolveStr( transA );
76+
if ( ta === null ) {
7377
throw new TypeError( format( 'invalid argument. First argument must be a valid transpose operation. Value: `%s`.', transA ) );
7478
}
75-
if ( !isMatrixTranspose( transB ) ) {
79+
tb = resolveStr( transB );
80+
if ( tb === null ) {
7681
throw new TypeError( format( 'invalid argument. Second argument must be a valid transpose operation. Value: `%s`.', transB ) );
7782
}
7883
if ( M < 0 ) {
@@ -90,7 +95,7 @@ function dgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA,
9095
if ( strideC2 === 0 ) {
9196
throw new RangeError( format( 'invalid argument. Eighteenth argument must be non-zero. Value: `%d`.', strideC2 ) );
9297
}
93-
return base( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ); // eslint-disable-line max-len
98+
return base( ta, tb, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ); // eslint-disable-line max-len
9499
}
95100

96101

lib/node_modules/@stdlib/blas/base/ndarray/docs/types/index.d.ts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import dasum = require( '@stdlib/blas/base/ndarray/dasum' );
2929
import daxpy = require( '@stdlib/blas/base/ndarray/daxpy' );
3030
import dcopy = require( '@stdlib/blas/base/ndarray/dcopy' );
3131
import ddot = require( '@stdlib/blas/base/ndarray/ddot' );
32+
import dnrm2 = require( '@stdlib/blas/base/ndarray/dnrm2' );
3233
import dscal = require( '@stdlib/blas/base/ndarray/dscal' );
3334
import dswap = require( '@stdlib/blas/base/ndarray/dswap' );
3435
import gasum = require( '@stdlib/blas/base/ndarray/gasum' );
@@ -45,6 +46,7 @@ import sscal = require( '@stdlib/blas/base/ndarray/sscal' );
4546
import sswap = require( '@stdlib/blas/base/ndarray/sswap' );
4647
import zaxpy = require( '@stdlib/blas/base/ndarray/zaxpy' );
4748
import zcopy = require( '@stdlib/blas/base/ndarray/zcopy' );
49+
import zdscal = require( '@stdlib/blas/base/ndarray/zdscal' );
4850
import zscal = require( '@stdlib/blas/base/ndarray/zscal' );
4951
import zswap = require( '@stdlib/blas/base/ndarray/zswap' );
5052

@@ -310,6 +312,28 @@ interface Namespace {
310312
*/
311313
ddot: typeof ddot;
312314

315+
/**
316+
* Computes the L2-norm of a one-dimensional double-precision floating-point ndarray.
317+
*
318+
* ## Notes
319+
*
320+
* - The function expects the following ndarrays:
321+
*
322+
* - a one-dimensional input ndarray.
323+
*
324+
* @param arrays - array-like object containing ndarrays
325+
* @returns L2-norm
326+
*
327+
* @example
328+
* var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
329+
*
330+
* var x = new Float64Vector( [ 1.0, -2.0, 2.0 ] );
331+
*
332+
* var y = ns.dnrm2( [ x ] );
333+
* // returns 3.0
334+
*/
335+
dnrm2: typeof dnrm2;
336+
313337
/**
314338
* Multiplies a one-dimensional double-precision floating-point ndarray by a scalar constant.
315339
*
@@ -760,6 +784,37 @@ interface Namespace {
760784
*/
761785
zcopy: typeof zcopy;
762786

787+
/**
788+
* Multiplies a one-dimensional double-precision complex floating-point ndarray by a double-precision floating-point scalar constant.
789+
*
790+
* ## Notes
791+
*
792+
* - The function expects the following ndarrays:
793+
*
794+
* - a one-dimensional input ndarray.
795+
* - a zero-dimensional ndarray containing a scalar constant.
796+
*
797+
* @param arrays - array-like object containing ndarrays
798+
* @returns input ndarray
799+
*
800+
* @example
801+
* var Complex128Vector = require( '@stdlib/ndarray/vector/complex128' );
802+
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
803+
*
804+
* var x = new Complex128Vector( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
805+
*
806+
* var alpha = scalar2ndarray( 2.0, {
807+
* 'dtype': 'float64'
808+
* });
809+
*
810+
* var y = ns.zdscal( [ x, alpha ] );
811+
* // returns <ndarray>[ <Complex128>[ 2.0, 4.0 ], <Complex128>[ 6.0, 8.0 ], <Complex128>[ 10.0, 12.0 ] ]
812+
*
813+
* var bool = ( y === x );
814+
* // returns true
815+
*/
816+
zdscal: typeof zdscal;
817+
763818
/**
764819
* Multiplies a one-dimensional double-precision complex floating-point ndarray by a scalar constant.
765820
*

lib/node_modules/@stdlib/blas/ext/base/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ var o = ns;
4444
<div class="namespace-toc">
4545

4646
- <span class="signature">[`cfill( N, alpha, x, strideX )`][@stdlib/blas/ext/base/cfill]</span><span class="delimiter">: </span><span class="description">fill a single-precision complex floating-point strided array with a specified scalar constant.</span>
47+
- <span class="signature">[`cindexOfColumn( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/cindex-of-column]</span><span class="delimiter">: </span><span class="description">return the index of the first column in a single-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
4748
- <span class="signature">[`cindexOfRow( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/cindex-of-row]</span><span class="delimiter">: </span><span class="description">return the index of the first row in a single-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
4849
- <span class="signature">[`cindexOf( N, searchElement, x, strideX )`][@stdlib/blas/ext/base/cindex-of]</span><span class="delimiter">: </span><span class="description">return the first index of a specified search element in a single-precision complex floating-point strided array.</span>
4950
- <span class="signature">[`clastIndexOfRow( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/clast-index-of-row]</span><span class="delimiter">: </span><span class="description">return the index of the last row in a single-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
@@ -233,6 +234,7 @@ var o = ns;
233234
- <span class="signature">[`szeroTo( N, x, strideX )`][@stdlib/blas/ext/base/szero-to]</span><span class="delimiter">: </span><span class="description">fill a single-precision floating-point strided array with linearly spaced numeric elements which increment by `1` starting from zero.</span>
234235
- <span class="signature">[`wasm`][@stdlib/blas/ext/base/wasm]</span><span class="delimiter">: </span><span class="description">extensions to basic linear algebra subprograms (BLAS) compiled to WebAssembly.</span>
235236
- <span class="signature">[`zfill( N, alpha, x, strideX )`][@stdlib/blas/ext/base/zfill]</span><span class="delimiter">: </span><span class="description">fill a double-precision complex floating-point strided array with a specified scalar constant.</span>
237+
- <span class="signature">[`zindexOfColumn( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/zindex-of-column]</span><span class="delimiter">: </span><span class="description">return the index of the first column in a double-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
236238
- <span class="signature">[`zindexOfRow( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/zindex-of-row]</span><span class="delimiter">: </span><span class="description">return the index of the first row in a double-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
237239
- <span class="signature">[`zindexOf( N, searchElement, x, strideX )`][@stdlib/blas/ext/base/zindex-of]</span><span class="delimiter">: </span><span class="description">return the first index of a specified search element in a double-precision complex floating-point strided array.</span>
238240
- <span class="signature">[`zlastIndexOfRow( order, M, N, A, LDA, x, strideX, workspace, strideW )`][@stdlib/blas/ext/base/zlast-index-of-row]</span><span class="delimiter">: </span><span class="description">return the index of the last row in a double-precision complex floating-point input matrix which has the same elements as a provided search vector.</span>
@@ -295,6 +297,8 @@ console.log( objectKeys( ns ) );
295297

296298
[@stdlib/blas/ext/base/cfill]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/cfill
297299

300+
[@stdlib/blas/ext/base/cindex-of-column]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/cindex-of-column
301+
298302
[@stdlib/blas/ext/base/cindex-of-row]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/cindex-of-row
299303

300304
[@stdlib/blas/ext/base/cindex-of]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/cindex-of
@@ -673,6 +677,8 @@ console.log( objectKeys( ns ) );
673677

674678
[@stdlib/blas/ext/base/zfill]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/zfill
675679

680+
[@stdlib/blas/ext/base/zindex-of-column]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/zindex-of-column
681+
676682
[@stdlib/blas/ext/base/zindex-of-row]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/zindex-of-row
677683

678684
[@stdlib/blas/ext/base/zindex-of]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/ext/base/zindex-of

0 commit comments

Comments
 (0)