Skip to content

Commit ee87bad

Browse files
committed
chore: update implementation
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: missing_dependencies - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 01de8bc commit ee87bad

File tree

9 files changed

+514
-84
lines changed

9 files changed

+514
-84
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ function dtrmv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
8383
if ( strideX === 0 ) {
8484
throw new RangeError( format( 'invalid argument. Tenth argument must be non-zero. Value: `%d`.', strideX ) );
8585
}
86+
// Check if we can early return...
8687
if ( N === 0 ) {
8788
return x;
8889
}

lib/node_modules/@stdlib/blas/base/dtrmv/lib/ndarray.native.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@
2020

2121
// MODULES //
2222

23+
var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' );
24+
var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' );
25+
var isDiagonal = require( '@stdlib/blas/base/assert/is-diagonal-type' );
2326
var resolveUplo = require( '@stdlib/blas/base/matrix-triangle-resolve-enum' );
2427
var resolveTrans = require( '@stdlib/blas/base/transpose-operation-resolve-enum' );
2528
var resolveDiag = require( '@stdlib/blas/base/diagonal-type-resolve-enum' );
29+
var format = require( '@stdlib/string/format' );
2630
var addon = require( './../src/addon.node' );
2731

2832

@@ -42,6 +46,13 @@ var addon = require( './../src/addon.node' );
4246
* @param {Float64Array} x - input vector
4347
* @param {integer} strideX - `x` stride length
4448
* @param {NonNegativeInteger} offsetX - starting index for `x`
49+
* @throws {TypeError} first argument must specify whether a lower or upper triangular matrix is supplied
50+
* @throws {TypeError} second argument must be a valid transpose operation
51+
* @throws {TypeError} third argument must be a valid diagonal type
52+
* @throws {RangeError} fourth argument must be a nonnegative integer
53+
* @throws {RangeError} sixth argument must be non-zero
54+
* @throws {RangeError} seventh argument must be non-zero
55+
* @throws {RangeError} tenth argument must be non-zero
4556
* @returns {Float64Array} `x`
4657
*
4758
* @example
@@ -54,6 +65,31 @@ var addon = require( './../src/addon.node' );
5465
* // x => <Float64Array>[ 14.0, 8.0, 3.0 ]
5566
*/
5667
function dtrmv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-params, max-len
68+
if ( !isMatrixTriangle( uplo ) ) {
69+
throw new TypeError( format( 'invalid argument. First argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) );
70+
}
71+
if ( !isTransposeOperation( trans ) ) {
72+
throw new TypeError( format( 'invalid argument. Second argument must be a valid transpose operation. Value: `%s`.', trans ) );
73+
}
74+
if ( !isDiagonal( diag ) ) {
75+
throw new TypeError( format( 'invalid argument. Third argument must be a valid diagonal type. Value: `%s`.', diag ) );
76+
}
77+
if ( N < 0 ) {
78+
throw new RangeError( format( 'invalid argument. Fourth argument must be a nonnegative integer. Value: `%d`.', N ) );
79+
}
80+
if ( strideA1 === 0 ) {
81+
throw new RangeError( format( 'invalid argument. Sixth argument must be non-zero. Value: `%d`.', strideA1 ) );
82+
}
83+
if ( strideA2 === 0 ) {
84+
throw new RangeError( format( 'invalid argument. Seventh argument must be non-zero. Value: `%d`.', strideA2 ) );
85+
}
86+
if ( strideX === 0 ) {
87+
throw new RangeError( format( 'invalid argument. Tenth argument must be non-zero. Value: `%d`.', strideX ) );
88+
}
89+
// Check if we can early return...
90+
if ( N === 0 ) {
91+
return x;
92+
}
5793
addon.ndarray( resolveUplo( uplo ), resolveTrans( trans ), resolveDiag( diag ), N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ); // eslint-disable-line max-len
5894
return x;
5995
}

lib/node_modules/@stdlib/blas/base/dtrmv/manifest.json

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
"blas": "",
3535
"wasm": false,
3636
"src": [
37-
"./src/dtrmv.c",
38-
"./src/dtrmv_ndarray.c"
37+
"./src/dtrsv.c",
38+
"./src/dtrsv_ndarray.c"
3939
],
4040
"include": [
4141
"./include"
@@ -61,8 +61,8 @@
6161
"blas": "",
6262
"wasm": false,
6363
"src": [
64-
"./src/dtrmv.c",
65-
"./src/dtrmv_ndarray.c"
64+
"./src/dtrsv.c",
65+
"./src/dtrsv_ndarray.c"
6666
],
6767
"include": [
6868
"./include"
@@ -83,8 +83,8 @@
8383
"blas": "",
8484
"wasm": false,
8585
"src": [
86-
"./src/dtrmv.c",
87-
"./src/dtrmv_ndarray.c"
86+
"./src/dtrsv.c",
87+
"./src/dtrsv_ndarray.c"
8888
],
8989
"include": [
9090
"./include"
@@ -105,8 +105,8 @@
105105
"blas": "openblas",
106106
"wasm": false,
107107
"src": [
108-
"./src/dtrmv_cblas.c",
109-
"./src/dtrmv_ndarray.c"
108+
"./src/dtrsv_cblas.c",
109+
"./src/dtrsv_ndarray.c"
110110
],
111111
"include": [
112112
"./include"
@@ -135,8 +135,8 @@
135135
"blas": "openblas",
136136
"wasm": false,
137137
"src": [
138-
"./src/dtrmv_cblas.c",
139-
"./src/dtrmv_ndarray.c"
138+
"./src/dtrsv_cblas.c",
139+
"./src/dtrsv_ndarray.c"
140140
],
141141
"include": [
142142
"./include"
@@ -160,8 +160,8 @@
160160
"blas": "openblas",
161161
"wasm": false,
162162
"src": [
163-
"./src/dtrmv_cblas.c",
164-
"./src/dtrmv_ndarray.c"
163+
"./src/dtrsv_cblas.c",
164+
"./src/dtrsv_ndarray.c"
165165
],
166166
"include": [
167167
"./include"
@@ -185,8 +185,8 @@
185185
"blas": "",
186186
"wasm": false,
187187
"src": [
188-
"./src/dtrmv.c",
189-
"./src/dtrmv_ndarray.c"
188+
"./src/dtrsv.c",
189+
"./src/dtrsv_ndarray.c"
190190
],
191191
"include": [
192192
"./include"
@@ -212,8 +212,8 @@
212212
"blas": "",
213213
"wasm": false,
214214
"src": [
215-
"./src/dtrmv.c",
216-
"./src/dtrmv_ndarray.c"
215+
"./src/dtrsv.c",
216+
"./src/dtrsv_ndarray.c"
217217
],
218218
"include": [
219219
"./include"
@@ -234,8 +234,8 @@
234234
"blas": "",
235235
"wasm": false,
236236
"src": [
237-
"./src/dtrmv.c",
238-
"./src/dtrmv_ndarray.c"
237+
"./src/dtrsv.c",
238+
"./src/dtrsv_ndarray.c"
239239
],
240240
"include": [
241241
"./include"
@@ -256,8 +256,8 @@
256256
"blas": "apple_accelerate_framework",
257257
"wasm": false,
258258
"src": [
259-
"./src/dtrmv_cblas.c",
260-
"./src/dtrmv_ndarray.c"
259+
"./src/dtrsv_cblas.c",
260+
"./src/dtrsv_ndarray.c"
261261
],
262262
"include": [
263263
"./include"
@@ -285,8 +285,8 @@
285285
"blas": "apple_accelerate_framework",
286286
"wasm": false,
287287
"src": [
288-
"./src/dtrmv_cblas.c",
289-
"./src/dtrmv_ndarray.c"
288+
"./src/dtrsv_cblas.c",
289+
"./src/dtrsv_ndarray.c"
290290
],
291291
"include": [
292292
"./include"
@@ -309,8 +309,8 @@
309309
"blas": "apple_accelerate_framework",
310310
"wasm": false,
311311
"src": [
312-
"./src/dtrmv_cblas.c",
313-
"./src/dtrmv_ndarray.c"
312+
"./src/dtrsv_cblas.c",
313+
"./src/dtrsv_ndarray.c"
314314
],
315315
"include": [
316316
"./include"
@@ -333,8 +333,8 @@
333333
"blas": "openblas",
334334
"wasm": false,
335335
"src": [
336-
"./src/dtrmv_cblas.c",
337-
"./src/dtrmv_ndarray.c"
336+
"./src/dtrsv_cblas.c",
337+
"./src/dtrsv_ndarray.c"
338338
],
339339
"include": [
340340
"./include"
@@ -363,8 +363,8 @@
363363
"blas": "openblas",
364364
"wasm": false,
365365
"src": [
366-
"./src/dtrmv_cblas.c",
367-
"./src/dtrmv_ndarray.c"
366+
"./src/dtrsv_cblas.c",
367+
"./src/dtrsv_ndarray.c"
368368
],
369369
"include": [
370370
"./include"
@@ -388,8 +388,8 @@
388388
"blas": "openblas",
389389
"wasm": false,
390390
"src": [
391-
"./src/dtrmv_cblas.c",
392-
"./src/dtrmv_ndarray.c"
391+
"./src/dtrsv_cblas.c",
392+
"./src/dtrsv_ndarray.c"
393393
],
394394
"include": [
395395
"./include"
@@ -413,8 +413,8 @@
413413
"blas": "",
414414
"wasm": false,
415415
"src": [
416-
"./src/dtrmv.c",
417-
"./src/dtrmv_ndarray.c"
416+
"./src/dtrsv.c",
417+
"./src/dtrsv_ndarray.c"
418418
],
419419
"include": [
420420
"./include"
@@ -440,8 +440,8 @@
440440
"blas": "",
441441
"wasm": false,
442442
"src": [
443-
"./src/dtrmv.c",
444-
"./src/dtrmv_ndarray.c"
443+
"./src/dtrsv.c",
444+
"./src/dtrsv_ndarray.c"
445445
],
446446
"include": [
447447
"./include"
@@ -462,8 +462,8 @@
462462
"blas": "",
463463
"wasm": false,
464464
"src": [
465-
"./src/dtrmv.c",
466-
"./src/dtrmv_ndarray.c"
465+
"./src/dtrsv.c",
466+
"./src/dtrsv_ndarray.c"
467467
],
468468
"include": [
469469
"./include"
@@ -484,8 +484,8 @@
484484
"blas": "",
485485
"wasm": true,
486486
"src": [
487-
"./src/dtrmv.c",
488-
"./src/dtrmv_ndarray.c"
487+
"./src/dtrsv.c",
488+
"./src/dtrsv_ndarray.c"
489489
],
490490
"include": [
491491
"./include"

lib/node_modules/@stdlib/blas/base/dtrmv/src/addon.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,12 @@
3434
* @return Node-API value
3535
*/
3636
static napi_value addon( napi_env env, napi_callback_info info ) {
37+
CBLAS_INT sa1;
38+
CBLAS_INT sa2;
39+
3740
STDLIB_NAPI_ARGV( env, info, argv, argc, 9 );
3841

39-
STDLIB_NAPI_ARGV_INT32( env, order, argv, 0 );
42+
STDLIB_NAPI_ARGV_INT32( env, layout, argv, 0 );
4043
STDLIB_NAPI_ARGV_INT32( env, uplo, argv, 1 );
4144
STDLIB_NAPI_ARGV_INT32( env, trans, argv, 2 );
4245
STDLIB_NAPI_ARGV_INT32( env, diag, argv, 3 );
@@ -45,21 +48,17 @@ static napi_value addon( napi_env env, napi_callback_info info ) {
4548
STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 8 );
4649
STDLIB_NAPI_ARGV_INT64( env, LDA, argv, 6 );
4750

48-
CBLAS_INT sa1;
49-
CBLAS_INT sa2;
50-
51-
if ( order == CblasColMajor ) {
51+
if ( layout == CblasColMajor ) {
5252
sa1 = 1;
5353
sa2 = LDA;
54-
} else { // order === 'row-major'
54+
} else { // layout === 'row-major'
5555
sa1 = LDA;
5656
sa2 = 1;
5757
}
58-
5958
STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY( env, X, N, strideX, argv, 7 );
6059
STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY2D( env, A, N, N, sa1, sa2, argv, 5 );
6160

62-
API_SUFFIX(c_dtrmv)( order, uplo, trans, diag, N, A, LDA, X, strideX );
61+
API_SUFFIX(c_dtrmv)( layout, uplo, trans, diag, N, A, LDA, X, strideX );
6362

6463
return NULL;
6564
}

lib/node_modules/@stdlib/blas/base/dtrmv/src/dtrmv.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,50 @@
3535
* @return output value
3636
*/
3737
void API_SUFFIX(c_dtrmv)( const CBLAS_LAYOUT order, const CBLAS_UPLO uplo, const CBLAS_TRANSPOSE trans, const CBLAS_DIAG diag, const CBLAS_INT N, const double *A, const CBLAS_INT LDA, double *x, const CBLAS_INT strideX ) {
38+
CBLAS_INT vala;
3839
CBLAS_INT sa1;
3940
CBLAS_INT sa2;
4041
CBLAS_INT ox;
4142

43+
// Perform input argument validation...
44+
if ( layout != CblasRowMajor && layout != CblasColMajor ) {
45+
c_xerbla( 1, "c_dtrsv", "Error: invalid argument. First argument must be a valid layout. Value: `%d`.", layout );
46+
return;
47+
}
48+
if ( uplo != CblasLower && uplo != CblasUpper ) {
49+
c_xerbla( 2, "c_dtrsv", "Error: invalid argument. Second argument must specify whether the lower or upper triangular matrix is supplied. Value: `%d`.", uplo );
50+
return;
51+
}
52+
if ( trans != CblasTrans && trans != CblasConjTrans && trans != CblasNoTrans ) {
53+
c_xerbla( 3, "c_dtrsv", "Error: invalid argument. Third argument must be a valid transpose operation. Value: `%d`.", trans );
54+
return;
55+
}
56+
if ( diag != CblasNonUnit && diag != CblasUnit ) {
57+
c_xerbla( 4, "c_dtrsv", "Error: invalid argument. Fourth argument must be a valid diagonal type. Value: `%d`.", diag );
58+
return;
59+
}
60+
if ( N < 0 ) {
61+
c_xerbla( 5, "c_dtrsv", "Error: invalid argument. Fifth argument must be a nonnegative integer. Value: `%d`.", N );
62+
return;
63+
}
64+
// max(1, N)
65+
if ( N < 1 ) {
66+
vala = 1;
67+
} else {
68+
vala = N;
69+
}
70+
if ( LDA < vala ) {
71+
c_xerbla( 7, "c_dtrsv", "Error: invalid argument. Seventh argument must be greater than or equal to max(1,%d). Value: `%d`.", vala, LDA );
72+
return;
73+
}
74+
if ( strideX == 0 ) {
75+
c_xerbla( 9, "c_dtrsv", "Error: invalid argument. Ninth argument must be a nonzero. Value: `%d`.", strideX );
76+
return;
77+
}
78+
// Check whether we can avoid computation altogether...
79+
if ( N == 0 ) {
80+
return;
81+
}
4282
if ( order == CblasColMajor ) {
4383
sa1 = 1;
4484
sa2 = LDA;

0 commit comments

Comments
 (0)