Skip to content

Commit 9cf127e

Browse files
committed
test: update lda validation
--- 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: na - 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 9e43ff5 commit 9cf127e

File tree

4 files changed

+113
-47
lines changed

4 files changed

+113
-47
lines changed

lib/node_modules/@stdlib/lapack/base/dlascl/lib/base.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -259,20 +259,11 @@ function dlascl( type, KL, KU, CFROM, CTO, M, N, A, strideA1, strideA2, offsetA
259259
k4 = KL + KU + M - 1;
260260
ia = offsetA;
261261

262-
if ( isRowMajor( [ strideA1, strideA2 ] ) ) {
263-
for ( i1 = 0; i1 < M; i1++ ) {
264-
for ( i0 = max( 0, i1 - KL ); i0 <= min( N - 1, i1 + KU ); i0++ ) {
265-
ia = offsetA + ( ( KL + KU + 1 + i1 - i0 ) * strideA1 ) + ( i0 * strideA2 );
266-
A[ ia ] *= mul;
267-
}
268-
}
269-
} else {
270-
for ( i1 = 0; i1 < N; i1++ ) {
271-
for ( i0 = max( k1 - i1, k2 ); i0 <= min( k3, k4-i1 ); i0++ ) {
272-
A[ ia+(i0*strideA1) ] *= mul;
273-
}
274-
ia += strideA2;
262+
for ( i1 = 0; i1 < N; i1++ ) {
263+
for ( i0 = max( k1 - i1, k2 ); i0 <= min( k3, k4-i1 ); i0++ ) {
264+
A[ ia+(i0*strideA1) ] *= mul;
275265
}
266+
ia += strideA2;
276267
}
277268
}
278269
}

lib/node_modules/@stdlib/lapack/base/dlascl/lib/dlascl.js

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,20 @@ function dlascl( order, type, KL, KU, CFROM, CTO, M, N, A, LDA ) {
6868
throw new TypeError( format( 'invalid argument. First argument must be a valid matrix type. Value: `%s`.', type ) );
6969
}
7070

71-
if ( type === 'general' || type === 'upper' || type === 'lower' || type === 'upper-hessenberg' ) {
72-
if ( isRowMajor( order ) ) {
73-
s = N;
74-
} else {
75-
s = M;
76-
}
77-
if ( LDA < max( 1, s ) ) {
78-
throw new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', s, LDA ) );
79-
}
71+
if ( isRowMajor( order ) ) {
72+
s = N;
73+
} else if ( type === 'general' || type === 'upper' || type === 'lower' || type === 'upper-hessenberg' ) {
74+
s = M;
8075
} else if ( type === 'symmetric-banded-lower' ) {
81-
if ( LDA < max( 1, KL+1 ) ) {
82-
throw new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', KL+1, LDA ) );
83-
}
76+
s = KL + 1;
8477
} else if ( type === 'symmetric-banded-upper' ) {
85-
if ( LDA < max( 1, KU+1 ) ) {
86-
throw new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', KU+1, LDA ) );
87-
}
88-
} else if ( LDA < max( 1, (2*KL) + KU +1 ) ) {
89-
throw new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', (2*KL) + KU +1, LDA ) );
78+
s = KU + 1;
79+
} else {
80+
s = (2*KL) + KU + 1;
81+
}
82+
83+
if ( LDA < max( 1, s ) ) {
84+
throw new RangeError( format( 'invalid argument. Tenth argument must be greater than or equal to max(1,%d). Value: `%d`.', s, LDA ) );
9085
}
9186

9287
if ( isColumnMajor( order ) ) {

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/banded_row_major.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
[ 0.0, 4.2, 4.3, 4.4, 4.5 ],
2323
[ 0.0, 0.0, 5.3, 5.4, 5.5 ]
2424
],
25-
"LDA": 6,
25+
"LDA": 5,
2626
"strideA1": 5,
2727
"strideA2": 1,
2828
"offsetA": 0,

lib/node_modules/@stdlib/lapack/base/dlascl/test/test.dlascl.js

Lines changed: 96 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,7 @@ tape( 'the function throws a range error if `LDA` is invalid (general, row-major
122122

123123
values = [
124124
0,
125-
1,
126-
2
125+
1
127126
];
128127

129128
for ( i = 0; i < values.length; i++ ) {
@@ -133,7 +132,7 @@ tape( 'the function throws a range error if `LDA` is invalid (general, row-major
133132

134133
function badValue( value ) {
135134
return function badValue() {
136-
dlascl( 'row-major', 'general', 0, 0, 1.0, 2.0, 2, 3, new Float64Array( 5 ), value );
135+
dlascl( 'row-major', 'general', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
137136
};
138137
}
139138
});
@@ -144,8 +143,7 @@ tape( 'the function throws a range error if `LDA` is invalid (general, column-ma
144143

145144
values = [
146145
0,
147-
1,
148-
2
146+
1
149147
];
150148

151149
for ( i = 0; i < values.length; i++ ) {
@@ -155,19 +153,18 @@ tape( 'the function throws a range error if `LDA` is invalid (general, column-ma
155153

156154
function badValue( value ) {
157155
return function badValue() {
158-
dlascl( 'column-major', 'general', 0, 0, 1.0, 2.0, 3, 2, new Float64Array( 8 ), value );
156+
dlascl( 'column-major', 'general', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
159157
};
160158
}
161159
});
162160

163-
tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-lower)', function test( t ) {
161+
tape( 'the function throws a range error if `LDA` is invalid (upper, row-major)', function test( t ) {
164162
var values;
165163
var i;
166164

167165
values = [
168166
0,
169-
1,
170-
2
167+
1
171168
];
172169

173170
for ( i = 0; i < values.length; i++ ) {
@@ -177,19 +174,102 @@ tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-l
177174

178175
function badValue( value ) {
179176
return function badValue() {
180-
dlascl( 'row-major', 'symmetric-banded-lower', 2, 0, 1.0, 2.0, 5, 5, new Float64Array( 12 ), value );
177+
dlascl( 'row-major', 'upper', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
181178
};
182179
}
183180
});
184181

185-
tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-upper)', function test( t ) {
182+
tape( 'the function throws a range error if `LDA` is invalid (upper, column-major)', function test( t ) {
186183
var values;
187184
var i;
188185

189186
values = [
190187
0,
191-
1,
192-
2
188+
1
189+
];
190+
191+
for ( i = 0; i < values.length; i++ ) {
192+
t.throws( badValue( values[ i ] ), RangeError, 'throws a range error when provided ' + values[ i ] );
193+
}
194+
t.end();
195+
196+
function badValue( value ) {
197+
return function badValue() {
198+
dlascl( 'column-major', 'upper', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
199+
};
200+
}
201+
});
202+
203+
tape( 'the function throws a range error if `LDA` is invalid (lower, row-major)', function test( t ) {
204+
var values;
205+
var i;
206+
207+
values = [
208+
0,
209+
1
210+
];
211+
212+
for ( i = 0; i < values.length; i++ ) {
213+
t.throws( badValue( values[ i ] ), RangeError, 'throws a range error when provided ' + values[ i ] );
214+
}
215+
t.end();
216+
217+
function badValue( value ) {
218+
return function badValue() {
219+
dlascl( 'row-major', 'lower', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
220+
};
221+
}
222+
});
223+
224+
tape( 'the function throws a range error if `LDA` is invalid (lower, column-major)', function test( t ) {
225+
var values;
226+
var i;
227+
228+
values = [
229+
0,
230+
1
231+
];
232+
233+
for ( i = 0; i < values.length; i++ ) {
234+
t.throws( badValue( values[ i ] ), RangeError, 'throws a range error when provided ' + values[ i ] );
235+
}
236+
t.end();
237+
238+
function badValue( value ) {
239+
return function badValue() {
240+
dlascl( 'column-major', 'lower', 0, 0, 1.0, 2.0, 2, 2, new Float64Array( 4 ), value );
241+
};
242+
}
243+
});
244+
245+
tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-lower, column-major)', function test( t ) {
246+
var values;
247+
var i;
248+
249+
values = [
250+
0,
251+
1
252+
];
253+
254+
for ( i = 0; i < values.length; i++ ) {
255+
t.throws( badValue( values[ i ] ), RangeError, 'throws a range error when provided ' + values[ i ] );
256+
}
257+
t.end();
258+
259+
function badValue( value ) {
260+
return function badValue() {
261+
dlascl( 'column-major', 'symmetric-banded-lower', 1, 0, 1.0, 2.0, 5, 5, new Float64Array( 10 ), value );
262+
};
263+
}
264+
});
265+
266+
tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-upper, column-major)', function test( t ) {
267+
var values;
268+
var i;
269+
270+
values = [
271+
0,
272+
1
193273
];
194274

195275
for ( i = 0; i < values.length; i++ ) {
@@ -199,12 +279,12 @@ tape( 'the function throws a range error if `LDA` is invalid (symmetric-banded-u
199279

200280
function badValue( value ) {
201281
return function badValue() {
202-
dlascl( 'row-major', 'symmetric-banded-upper', 0, 2, 1.0, 2.0, 5, 5, new Float64Array( 12 ), value );
282+
dlascl( 'column-major', 'symmetric-banded-upper', 0, 1, 1.0, 2.0, 5, 5, new Float64Array( 10 ), value );
203283
};
204284
}
205285
});
206286

207-
tape( 'the function throws a range error if `LDA` is invalid (banded)', function test( t ) {
287+
tape( 'the function throws a range error if `LDA` is invalid (banded, column-major)', function test( t ) {
208288
var values;
209289
var i;
210290

@@ -222,7 +302,7 @@ tape( 'the function throws a range error if `LDA` is invalid (banded)', function
222302

223303
function badValue( value ) {
224304
return function badValue() {
225-
dlascl( 'row-major', 'banded', 1, 1, 1.0, 2.0, 5, 5, new Float64Array( 15 ), value );
305+
dlascl( 'column-major', 'banded', 1, 1, 1.0, 2.0, 5, 5, new Float64Array( 20 ), value );
226306
};
227307
}
228308
});

0 commit comments

Comments
 (0)