Skip to content

Commit 1b0f881

Browse files
committed
test: 100% coverage
--- 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 be33e46 commit 1b0f881

File tree

8 files changed

+353
-4
lines changed

8 files changed

+353
-4
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var dlarf1f = require( './dlarf1f.js' );
4343
* @param {Float64Array} work - workspace array
4444
* @param {integer} strideWork - stride length for `work`
4545
* @param {NonNegativeInteger} offsetWork - index offset for `work`
46+
* @returns {Float64Array} matrix `A` overwritten with the orthogonal matrix Q
4647
*
4748
* @example
4849
* var Float64Array = require( '@stdlib/array/float64' );
@@ -60,7 +61,7 @@ function dorg2r( M, N, K, A, strideA1, strideA2, offsetA, tau, strideTau, offset
6061
var l;
6162

6263
if ( N <= 0 ) {
63-
return;
64+
return A;
6465
}
6566

6667
// Initialize columns k+1:n to columns of the unit matrix
@@ -89,6 +90,8 @@ function dorg2r( M, N, K, A, strideA1, strideA2, offsetA, tau, strideTau, offset
8990
A[ offsetA + (l*strideA1) + (i*strideA2) ] = 0.0;
9091
}
9192
}
93+
94+
return A;
9295
}
9396

9497

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function dorg2r( order, M, N, K, A, LDA, tau, work ) {
6161
if ( !isLayout( order ) ) {
6262
throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );
6363
}
64-
if ( isRowMajor( order ) && LDA < max( 1, M ) ) {
64+
if ( isRowMajor( order ) && LDA < max( 1, N ) ) {
6565
throw new RangeError( format( 'invalid argument. Sixth argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDA ) );
6666
}
6767
if ( isColumnMajor( order ) ) {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"M": 3,
3+
"N": 2,
4+
"K": 2,
5+
"LDA": 3,
6+
"A_mat": [
7+
[ 1.0, 4.0 ],
8+
[ 2.0, 5.0 ],
9+
[ 3.0, 6.0 ]
10+
],
11+
"A": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ],
12+
"strideA1": 1,
13+
"strideA2": 3,
14+
"offsetA": 0,
15+
"tau": [ 0.0, 0.0 ],
16+
"strideTau": 1,
17+
"offsetTau": 0,
18+
"work": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
19+
"strideWork": 1,
20+
"offsetWork": 0,
21+
"A_out_mat": [
22+
[ 1.0, 0.0 ],
23+
[ 0.0, 1.0 ],
24+
[ 0.0, 0.0 ]
25+
],
26+
"A_out": [ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 ]
27+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"M": 7,
3+
"N": 7,
4+
"K": 3,
5+
"LDA": 7,
6+
"A_mat": [
7+
[ 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
8+
[ 0.2100000000000000199840144, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
9+
[ 0.3100000000000000532907052, 0.3200000000000000621724894, 2.0, 0.0, 0.0, 0.0, 0.0 ],
10+
[ 0.4100000000000000310862447, 0.4200000000000000399680289, 0.4300000000000000488498131, 0.0, 0.0, 0.0, 0.0 ],
11+
[ 0.5100000000000000088817842, 0.5200000000000000177635684, 0.5300000000000000266453526, 0.0, 0.0, 0.0, 0.0 ],
12+
[ 0.6100000000000000976996262, 0.6200000000000001065814104, 0.6300000000000001154631946, 0.0, 0.0, 0.0, 0.0 ],
13+
[ 0.7100000000000000754951657, 0.7200000000000000843769499, 0.7300000000000000932587341, 0.0, 0.0, 0.0, 0.0 ]
14+
],
15+
"A": [ 2.0, 0.2100000000000000199840144, 0.3100000000000000532907052, 0.4100000000000000310862447, 0.5100000000000000088817842, 0.6100000000000000976996262, 0.7100000000000000754951657, 0.0, 2.0, 0.3200000000000000621724894, 0.4200000000000000399680289, 0.5200000000000000177635684, 0.6200000000000001065814104, 0.7200000000000000843769499, 0.0, 0.0, 2.0, 0.4300000000000000488498131, 0.5300000000000000266453526, 0.6300000000000001154631946, 0.7300000000000000932587341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
16+
"strideA1": 1,
17+
"strideA2": 7,
18+
"offsetA": 0,
19+
"tau": [ 1.0, 1.0, 1.0 ],
20+
"strideTau": 1,
21+
"offsetTau": 0,
22+
"work": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
23+
"strideWork": 1,
24+
"offsetWork": 0,
25+
"A_out_mat": [
26+
[ 0.0, 1.4260000000000003783640068, -0.8960464000000005757584631, -0.1999935520000002964202679, -0.2473501920000003018174084, -0.2947068320000004737480026, -0.3420634720000004236339919 ],
27+
[ -0.2100000000000000199840144, 0.2994600000000001149835782, 1.1842302560000002031870281, 0.2657333540800001503434657, 0.3250284596800001590821694, 0.3843235652800002788431755, 0.4436186708800002875818791 ],
28+
[ -0.3100000000000000532907052, 0.1220600000000001128519500, 0.1613936159999999619962807, -0.3935237611200000373834484, -0.4860475195200000264605933, -0.5785712779200001820711918, -0.6710950363200000046148830 ],
29+
[ -0.4100000000000000310862447, 0.1646600000000001395861204, -0.2209710240000001824078879, 0.8623500836799998792159272, -0.1709853387200000462975424, -0.2043207611200000828333145, -0.2376561835200000638579354 ],
30+
[ -0.5100000000000000088817842, 0.2072600000000002218314421, -0.2733356640000001447354805, -0.1698760715200000603886110, 0.7889768420799998516201867, -0.2521702443200001253487130, -0.2933173307200001023176128 ],
31+
[ -0.6100000000000000976996262, 0.2498600000000003040767638, -0.3257003040000002735965268, -0.2021022267200001110154517, -0.2510609771200000839286304, 0.6999802724799998321358885, -0.3489784779200001407772902 ],
32+
[ -0.7100000000000000754951657, 0.2924600000000002752997830, -0.3780649440000002359241194, -0.2343283819200001061311411, -0.2910987963200001304997500, -0.3478692107200002103795100, 0.5953603748799998207630324 ]
33+
],
34+
"A_out": [ 0.0, -0.2100000000000000199840144, -0.3100000000000000532907052, -0.4100000000000000310862447, -0.5100000000000000088817842, -0.6100000000000000976996262, -0.7100000000000000754951657, 1.4260000000000003783640068, 0.2994600000000001149835782, 0.1220600000000001128519500, 0.1646600000000001395861204, 0.2072600000000002218314421, 0.2498600000000003040767638, 0.2924600000000002752997830, -0.8960464000000005757584631, 1.1842302560000002031870281, 0.1613936159999999619962807, -0.2209710240000001824078879, -0.2733356640000001447354805, -0.3257003040000002735965268, -0.3780649440000002359241194, -0.1999935520000002964202679, 0.2657333540800001503434657, -0.3935237611200000373834484, 0.8623500836799998792159272, -0.1698760715200000603886110, -0.2021022267200001110154517, -0.2343283819200001061311411, -0.2473501920000003018174084, 0.3250284596800001590821694, -0.4860475195200000264605933, -0.1709853387200000462975424, 0.7889768420799998516201867, -0.2510609771200000839286304, -0.2910987963200001304997500, -0.2947068320000004737480026, 0.3843235652800002788431755, -0.5785712779200001820711918, -0.2043207611200000828333145, -0.2521702443200001253487130, 0.6999802724799998321358885, -0.3478692107200002103795100, -0.3420634720000004236339919, 0.4436186708800002875818791, -0.6710950363200000046148830, -0.2376561835200000638579354, -0.2933173307200001023176128, -0.3489784779200001407772902, 0.5953603748799998207630324 ]
35+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"M": 3,
3+
"N": 2,
4+
"K": 2,
5+
"LDA": 2,
6+
"A_mat": [
7+
[ 1.0, 4.0 ],
8+
[ 2.0, 5.0 ],
9+
[ 3.0, 6.0 ]
10+
],
11+
"A": [ 1.0, 4.0, 2.0, 5.0, 3.0, 6.0 ],
12+
"strideA1": 2,
13+
"strideA2": 1,
14+
"offsetA": 0,
15+
"tau": [ 0.0, 0.0 ],
16+
"strideTau": 1,
17+
"offsetTau": 0,
18+
"work": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
19+
"strideWork": 1,
20+
"offsetWork": 0,
21+
"A_out_mat": [
22+
[ 1.0, 0.0 ],
23+
[ 0.0, 1.0 ],
24+
[ 0.0, 0.0 ]
25+
],
26+
"A_out": [ 1.0, 0.0, 0.0, 1.0, 0.0, 0.0 ]
27+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"M": 7,
3+
"N": 7,
4+
"K": 3,
5+
"LDA": 7,
6+
"A_mat": [
7+
[ 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
8+
[ 0.2100000000000000199840144, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
9+
[ 0.3100000000000000532907052, 0.3200000000000000621724894, 2.0, 0.0, 0.0, 0.0, 0.0 ],
10+
[ 0.4100000000000000310862447, 0.4200000000000000399680289, 0.4300000000000000488498131, 0.0, 0.0, 0.0, 0.0 ],
11+
[ 0.5100000000000000088817842, 0.5200000000000000177635684, 0.5300000000000000266453526, 0.0, 0.0, 0.0, 0.0 ],
12+
[ 0.6100000000000000976996262, 0.6200000000000001065814104, 0.6300000000000001154631946, 0.0, 0.0, 0.0, 0.0 ],
13+
[ 0.7100000000000000754951657, 0.7200000000000000843769499, 0.7300000000000000932587341, 0.0, 0.0, 0.0, 0.0 ]
14+
],
15+
"A": [ 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2100000000000000199840144, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3100000000000000532907052, 0.3200000000000000621724894, 2.0, 0.0, 0.0, 0.0, 0.0, 0.4100000000000000310862447, 0.4200000000000000399680289, 0.4300000000000000488498131, 0.0, 0.0, 0.0, 0.0, 0.5100000000000000088817842, 0.5200000000000000177635684, 0.5300000000000000266453526, 0.0, 0.0, 0.0, 0.0, 0.6100000000000000976996262, 0.6200000000000001065814104, 0.6300000000000001154631946, 0.0, 0.0, 0.0, 0.0, 0.7100000000000000754951657, 0.7200000000000000843769499, 0.7300000000000000932587341, 0.0, 0.0, 0.0, 0.0 ],
16+
"strideA1": 7,
17+
"strideA2": 1,
18+
"offsetA": 0,
19+
"tau": [ 1.0, 1.0, 1.0 ],
20+
"strideTau": 1,
21+
"offsetTau": 0,
22+
"work": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
23+
"strideWork": 1,
24+
"offsetWork": 0,
25+
"A_out_mat": [
26+
[ 0.0, 1.4260000000000003783640068, -0.8960464000000005757584631, -0.1999935520000002964202679, -0.2473501920000003018174084, -0.2947068320000004737480026, -0.3420634720000004236339919 ],
27+
[ -0.2100000000000000199840144, 0.2994600000000001149835782, 1.1842302560000002031870281, 0.2657333540800001503434657, 0.3250284596800001590821694, 0.3843235652800002788431755, 0.4436186708800002875818791 ],
28+
[ -0.3100000000000000532907052, 0.1220600000000001128519500, 0.1613936159999999619962807, -0.3935237611200000373834484, -0.4860475195200000264605933, -0.5785712779200001820711918, -0.6710950363200000046148830 ],
29+
[ -0.4100000000000000310862447, 0.1646600000000001395861204, -0.2209710240000001824078879, 0.8623500836799998792159272, -0.1709853387200000462975424, -0.2043207611200000828333145, -0.2376561835200000638579354 ],
30+
[ -0.5100000000000000088817842, 0.2072600000000002218314421, -0.2733356640000001447354805, -0.1698760715200000603886110, 0.7889768420799998516201867, -0.2521702443200001253487130, -0.2933173307200001023176128 ],
31+
[ -0.6100000000000000976996262, 0.2498600000000003040767638, -0.3257003040000002735965268, -0.2021022267200001110154517, -0.2510609771200000839286304, 0.6999802724799998321358885, -0.3489784779200001407772902 ],
32+
[ -0.7100000000000000754951657, 0.2924600000000002752997830, -0.3780649440000002359241194, -0.2343283819200001061311411, -0.2910987963200001304997500, -0.3478692107200002103795100, 0.5953603748799998207630324 ]
33+
],
34+
"A_out": [ 0.0, 1.4260000000000003783640068, -0.8960464000000005757584631, -0.1999935520000002964202679, -0.2473501920000003018174084, -0.2947068320000004737480026, -0.3420634720000004236339919, -0.2100000000000000199840144, 0.2994600000000001149835782, 1.1842302560000002031870281, 0.2657333540800001503434657, 0.3250284596800001590821694, 0.3843235652800002788431755, 0.4436186708800002875818791, -0.3100000000000000532907052, 0.1220600000000001128519500, 0.1613936159999999619962807, -0.3935237611200000373834484, -0.4860475195200000264605933, -0.5785712779200001820711918, -0.6710950363200000046148830, -0.4100000000000000310862447, 0.1646600000000001395861204, -0.2209710240000001824078879, 0.8623500836799998792159272, -0.1709853387200000462975424, -0.2043207611200000828333145, -0.2376561835200000638579354, -0.5100000000000000088817842, 0.2072600000000002218314421, -0.2733356640000001447354805, -0.1698760715200000603886110, 0.7889768420799998516201867, -0.2521702443200001253487130, -0.2933173307200001023176128, -0.6100000000000000976996262, 0.2498600000000003040767638, -0.3257003040000002735965268, -0.2021022267200001110154517, -0.2510609771200000839286304, 0.6999802724799998321358885, -0.3489784779200001407772902, -0.7100000000000000754951657, 0.2924600000000002752997830, -0.3780649440000002359241194, -0.2343283819200001061311411, -0.2910987963200001304997500, -0.3478692107200002103795100, 0.5953603748799998207630324 ]
35+
}

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

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ var Float64Array = require( '@stdlib/array/float64' );
2525
var dorg2r = require( './../lib/dorg2r.js' );
2626

2727

28+
// FIXTURES //
29+
30+
var COL_MAJOR = require( './fixtures/column_major.json' );
31+
var ROW_MAJOR = require( './fixtures/row_major.json' );
32+
var COL_MAJOR_K_LT_N = require( './fixtures/column_major_k_lt_n.json' );
33+
var ROW_MAJOR_K_LT_N = require( './fixtures/row_major_k_lt_n.json' );
34+
35+
2836
// TESTS //
2937

3038
tape( 'main export is a function', function test( t ) {
@@ -86,8 +94,7 @@ tape( 'the function throws an error if provided a sixth argument which is not a
8694

8795
values = [
8896
0,
89-
1,
90-
2
97+
1
9198
];
9299

93100
work = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] ); // eslint-disable-line max-len
@@ -105,3 +112,95 @@ tape( 'the function throws an error if provided a sixth argument which is not a
105112
};
106113
}
107114
});
115+
116+
tape( 'the function generates an orthonormal matrix Q (column-major)', function test( t ) {
117+
var expected;
118+
var data;
119+
var work;
120+
var out;
121+
var tau;
122+
var A;
123+
124+
data = COL_MAJOR;
125+
126+
A = new Float64Array( data.A );
127+
tau = new Float64Array( data.tau );
128+
work = new Float64Array( data.work );
129+
130+
expected = new Float64Array( data.A_out );
131+
132+
out = dorg2r( 'column-major', data.M, data.N, data.K, A, data.LDA, tau, work );
133+
t.strictEqual( out, A, 'returns expected value' );
134+
t.deepEqual( out, expected, 'returns expected value' );
135+
136+
t.end();
137+
});
138+
139+
tape( 'the function generates an orthonormal matrix Q (row-major)', function test( t ) {
140+
var expected;
141+
var data;
142+
var work;
143+
var out;
144+
var tau;
145+
var A;
146+
147+
data = ROW_MAJOR;
148+
149+
A = new Float64Array( data.A );
150+
tau = new Float64Array( data.tau );
151+
work = new Float64Array( data.work );
152+
153+
expected = new Float64Array( data.A_out );
154+
155+
out = dorg2r( 'row-major', data.M, data.N, data.K, A, data.LDA, tau, work );
156+
t.strictEqual( out, A, 'returns expected value' );
157+
t.deepEqual( out, expected, 'returns expected value' );
158+
159+
t.end();
160+
});
161+
162+
tape( 'the function generates an orthonormal matrix Q (column-major, K < N)', function test( t ) {
163+
var expected;
164+
var data;
165+
var work;
166+
var out;
167+
var tau;
168+
var A;
169+
170+
data = COL_MAJOR_K_LT_N;
171+
172+
A = new Float64Array( data.A );
173+
tau = new Float64Array( data.tau );
174+
work = new Float64Array( data.work );
175+
176+
expected = new Float64Array( data.A_out );
177+
178+
out = dorg2r( 'column-major', data.M, data.N, data.K, A, data.LDA, tau, work );
179+
t.strictEqual( out, A, 'returns expected value' );
180+
t.deepEqual( out, expected, 'returns expected value' );
181+
182+
t.end();
183+
});
184+
185+
tape( 'the function generates an orthonormal matrix Q (row-major, K < N)', function test( t ) {
186+
var expected;
187+
var data;
188+
var work;
189+
var out;
190+
var tau;
191+
var A;
192+
193+
data = ROW_MAJOR_K_LT_N;
194+
195+
A = new Float64Array( data.A );
196+
tau = new Float64Array( data.tau );
197+
work = new Float64Array( data.work );
198+
199+
expected = new Float64Array( data.A_out );
200+
201+
out = dorg2r( 'row-major', data.M, data.N, data.K, A, data.LDA, tau, work );
202+
t.strictEqual( out, A, 'returns expected value' );
203+
t.deepEqual( out, expected, 'returns expected value' );
204+
205+
t.end();
206+
});

0 commit comments

Comments
 (0)