@@ -23,30 +23,30 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
23
23
< div class ='clearfix '>
24
24
25
25
< div class ='fl pad1y space-right2 '>
26
- < span class ="strong "> 62.88 % </ span >
26
+ < span class ="strong "> 100 % </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 61/97 </ span >
28
+ < span class ='fraction '> 100/100 </ span >
29
29
</ div >
30
30
31
31
32
32
< div class ='fl pad1y space-right2 '>
33
33
< span class ="strong "> 100% </ span >
34
34
< span class ="quiet "> Branches</ span >
35
- < span class ='fraction '> 1/1 </ span >
35
+ < span class ='fraction '> 10/10 </ span >
36
36
</ div >
37
37
38
38
39
39
< div class ='fl pad1y space-right2 '>
40
- < span class ="strong "> 0 % </ span >
40
+ < span class ="strong "> 100 % </ span >
41
41
< span class ="quiet "> Functions</ span >
42
- < span class ='fraction '> 0 /1</ span >
42
+ < span class ='fraction '> 1 /1</ span >
43
43
</ div >
44
44
45
45
46
46
< div class ='fl pad1y space-right2 '>
47
- < span class ="strong "> 62.88 % </ span >
47
+ < span class ="strong "> 100 % </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 61/97 </ span >
49
+ < span class ='fraction '> 100/100 </ span >
50
50
</ div >
51
51
52
52
@@ -61,7 +61,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
61
61
</ div >
62
62
</ template >
63
63
</ div >
64
- < div class ='status-line medium '> </ div >
64
+ < div class ='status-line high '> </ div >
65
65
< pre > < table class ="coverage ">
66
66
< tr > < td class ="line-count quiet "> < a name ='L1 '> </ a > < a href ='#L1 '> 1</ a >
67
67
< a name ='L2 '> </ a > < a href ='#L2 '> 2</ a >
@@ -160,7 +160,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
160
160
< a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161
161
< a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162
162
< a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163
- < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
163
+ < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164
+ < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165
+ < a name ='L100 '> </ a > < a href ='#L100 '> 100</ a >
166
+ < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
167
+ < span class ="cline-any cline-yes "> 3x</ span >
164
168
< span class ="cline-any cline-yes "> 3x</ span >
165
169
< span class ="cline-any cline-yes "> 3x</ span >
166
170
< span class ="cline-any cline-yes "> 3x</ span >
@@ -216,42 +220,44 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
216
220
< span class ="cline-any cline-yes "> 3x</ span >
217
221
< span class ="cline-any cline-yes "> 3x</ span >
218
222
< span class ="cline-any cline-yes "> 3x</ span >
219
- < span class ="cline-any cline-no "> </ span >
220
- < span class ="cline-any cline-no "> </ span >
221
- < span class ="cline-any cline-no "> </ span >
222
- < span class ="cline-any cline-no "> </ span >
223
- < span class ="cline-any cline-no "> </ span >
224
- < span class ="cline-any cline-no "> </ span >
225
- < span class ="cline-any cline-no "> </ span >
226
- < span class ="cline-any cline-no "> </ span >
227
- < span class ="cline-any cline-no "> </ span >
228
- < span class ="cline-any cline-no "> </ span >
229
- < span class ="cline-any cline-no "> </ span >
230
- < span class ="cline-any cline-no "> </ span >
231
- < span class ="cline-any cline-no "> </ span >
232
- < span class ="cline-any cline-no "> </ span >
233
- < span class ="cline-any cline-no "> </ span >
234
- < span class ="cline-any cline-no "> </ span >
235
- < span class ="cline-any cline-no "> </ span >
236
- < span class ="cline-any cline-no "> </ span >
237
- < span class ="cline-any cline-no "> </ span >
238
- < span class ="cline-any cline-no "> </ span >
239
- < span class ="cline-any cline-no "> </ span >
240
- < span class ="cline-any cline-no "> </ span >
241
- < span class ="cline-any cline-no "> </ span >
242
- < span class ="cline-any cline-no "> </ span >
243
- < span class ="cline-any cline-no "> </ span >
244
- < span class ="cline-any cline-no "> </ span >
245
- < span class ="cline-any cline-no "> </ span >
246
- < span class ="cline-any cline-no "> </ span >
247
- < span class ="cline-any cline-no "> </ span >
248
- < span class ="cline-any cline-no "> </ span >
249
- < span class ="cline-any cline-no "> </ span >
250
- < span class ="cline-any cline-no "> </ span >
251
- < span class ="cline-any cline-no "> </ span >
252
- < span class ="cline-any cline-no "> </ span >
253
- < span class ="cline-any cline-no "> </ span >
254
- < span class ="cline-any cline-no "> </ span >
223
+ < span class ="cline-any cline-yes "> 9x</ span >
224
+ < span class ="cline-any cline-yes "> 9x</ span >
225
+ < span class ="cline-any cline-yes "> 9x</ span >
226
+ < span class ="cline-any cline-yes "> 9x</ span >
227
+ < span class ="cline-any cline-yes "> 9x</ span >
228
+ < span class ="cline-any cline-yes "> 9x</ span >
229
+ < span class ="cline-any cline-yes "> 1x</ span >
230
+ < span class ="cline-any cline-yes "> 1x</ span >
231
+ < span class ="cline-any cline-yes "> 8x</ span >
232
+ < span class ="cline-any cline-yes "> 8x</ span >
233
+ < span class ="cline-any cline-yes "> 9x</ span >
234
+ < span class ="cline-any cline-yes "> 16x</ span >
235
+ < span class ="cline-any cline-yes "> 112x</ span >
236
+ < span class ="cline-any cline-yes "> 112x</ span >
237
+ < span class ="cline-any cline-yes "> 16x</ span >
238
+ < span class ="cline-any cline-yes "> 16x</ span >
239
+ < span class ="cline-any cline-yes "> 8x</ span >
240
+ < span class ="cline-any cline-yes "> 8x</ span >
241
+ < span class ="cline-any cline-yes "> 9x</ span >
242
+ < span class ="cline-any cline-yes "> 20x</ span >
243
+ < span class ="cline-any cline-yes "> 20x</ span >
244
+ < span class ="cline-any cline-yes "> 20x</ span >
245
+ < span class ="cline-any cline-yes "> 20x</ span >
246
+ < span class ="cline-any cline-yes "> 20x</ span >
247
+ < span class ="cline-any cline-yes "> 20x</ span >
248
+ < span class ="cline-any cline-yes "> 20x</ span >
249
+ < span class ="cline-any cline-yes "> 20x</ span >
250
+ < span class ="cline-any cline-yes "> 20x</ span >
251
+ < span class ="cline-any cline-yes "> 20x</ span >
252
+ < span class ="cline-any cline-yes "> 20x</ span >
253
+ < span class ="cline-any cline-yes "> 20x</ span >
254
+ < span class ="cline-any cline-yes "> 20x</ span >
255
+ < span class ="cline-any cline-yes "> 16x</ span >
256
+ < span class ="cline-any cline-yes "> 16x</ span >
257
+ < span class ="cline-any cline-yes "> 20x</ span >
258
+ < span class ="cline-any cline-yes "> 8x</ span >
259
+ < span class ="cline-any cline-yes "> 8x</ span >
260
+ < span class ="cline-any cline-yes "> 9x</ span >
255
261
< span class ="cline-any cline-yes "> 3x</ span >
256
262
< span class ="cline-any cline-yes "> 3x</ span >
257
263
< span class ="cline-any cline-yes "> 3x</ span >
@@ -302,6 +308,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
302
308
* @param {Float64Array} work - workspace array
303
309
* @param {integer} strideWork - stride length for `work`
304
310
* @param {NonNegativeInteger} offsetWork - index offset for `work`
311
+ * @returns {Float64Array} matrix `A` overwritten with the orthogonal matrix Q
305
312
*
306
313
* @example
307
314
* var Float64Array = require( '@stdlib/array/float64' );
@@ -313,42 +320,44 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
313
320
* dorg2r( 3, 2, 2, A, 1, 3, 0, tau, 1, 0, work, 1, 0 );
314
321
* // A => <Float64Array>[ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 ]
315
322
*/
316
- < span class ="cstat-no " title ="statement not covered " > < span class ="fstat-no " title ="function not covered " > function dorg2r( M, N, K, A, strideA1, strideA2, offsetA, tau, strideTau, offsetTau, work, strideWork, offsetWork ) { // eslint-disable-line max-len, max-params</ span > </ span >
317
- < span class ="cstat-no " title ="statement not covered " > var i;</ span >
318
- < span class ="cstat-no " title ="statement not covered " > var j;</ span >
319
- < span class ="cstat-no " title ="statement not covered " > var l;</ span >
320
- < span class ="cstat-no " title ="statement not covered " > </ span >
321
- < span class ="cstat-no " title ="statement not covered " > if ( N <= 0 ) {</ span >
322
- < span class ="cstat-no " title ="statement not covered " > return;</ span >
323
- < span class ="cstat-no " title ="statement not covered " > }</ span >
324
- < span class ="cstat-no " title ="statement not covered " > </ span >
325
- < span class ="cstat-no " title ="statement not covered " > // Initialize columns k+1:n to columns of the unit matrix</ span >
326
- < span class ="cstat-no " title ="statement not covered " > for ( j = K; j < N; j++ ) {</ span >
327
- < span class ="cstat-no " title ="statement not covered " > for ( l = 0; l < M; l++ ) {</ span >
328
- < span class ="cstat-no " title ="statement not covered " > A[ offsetA + (l*strideA1) + (j*strideA2) ] = 0.0;</ span >
329
- < span class ="cstat-no " title ="statement not covered " > }</ span >
330
- < span class ="cstat-no " title ="statement not covered " > A[ offsetA + (j*strideA1) + (j*strideA2) ] = 1.0;</ span >
331
- < span class ="cstat-no " title ="statement not covered " > }</ span >
332
- < span class ="cstat-no " title ="statement not covered " > </ span >
333
- < span class ="cstat-no " title ="statement not covered " > // Apply H(i) to A(i:m,i:n) from the left</ span >
334
- < span class ="cstat-no " title ="statement not covered " > for ( i = K-1; i >= 0; i-- ) {</ span >
335
- < span class ="cstat-no " title ="statement not covered " > if ( i < N ) {</ span >
336
- < span class ="cstat-no " title ="statement not covered " > // Apply H(i) to A(i:m,i+1:n) from the left</ span >
337
- < span class ="cstat-no " title ="statement not covered " > dlarf1f( 'left', M-i, N-i-1, A, strideA1, offsetA + (i*strideA1) + (i*strideA2), tau[ offsetTau + (i*strideTau) ], A, strideA1, strideA2, offsetA + (i*strideA1) + ((i+1)*strideA2), work, strideWork, offsetWork );</ span >
338
- < span class ="cstat-no " title ="statement not covered " > }</ span >
339
- < span class ="cstat-no " title ="statement not covered " > if ( i < M ) {</ span >
340
- < span class ="cstat-no " title ="statement not covered " > // Scale A(i+1:m,i) by -tau(i)</ span >
341
- < span class ="cstat-no " title ="statement not covered " > dscal( M-i-1, -tau[ offsetTau + (i*strideTau) ], A, strideA1, offsetA + ((i+1)*strideA1) + (i*strideA2) ); // eslint-disable-line max-len</ span >
342
- < span class ="cstat-no " title ="statement not covered " > }</ span >
343
- < span class ="cstat-no " title ="statement not covered " > // Set A(i,i) = 1 - tau(i)</ span >
344
- < span class ="cstat-no " title ="statement not covered " > A[ offsetA + (i*strideA1) + (i*strideA2) ] = 1.0 - tau[ offsetTau + (i*strideTau) ]; // eslint-disable-line max-len</ span >
345
- < span class ="cstat-no " title ="statement not covered " > </ span >
346
- < span class ="cstat-no " title ="statement not covered " > // Set A(0:i-1,i) to zero</ span >
347
- < span class ="cstat-no " title ="statement not covered " > for ( l = 0; l < i; l++ ) {</ span >
348
- < span class ="cstat-no " title ="statement not covered " > A[ offsetA + (l*strideA1) + (i*strideA2) ] = 0.0;</ span >
349
- < span class ="cstat-no " title ="statement not covered " > }</ span >
350
- < span class ="cstat-no " title ="statement not covered " > }</ span >
351
- < span class ="cstat-no " title ="statement not covered " > }</ span >
323
+ function dorg2r( M, N, K, A, strideA1, strideA2, offsetA, tau, strideTau, offsetTau, work, strideWork, offsetWork ) { // eslint-disable-line max-len, max-params
324
+ var i;
325
+ var j;
326
+ var l;
327
+
328
+ if ( N <= 0 ) {
329
+ return A;
330
+ }
331
+
332
+ // Initialize columns k+1:n to columns of the unit matrix
333
+ for ( j = K; j < N; j++ ) {
334
+ for ( l = 0; l < M; l++ ) {
335
+ A[ offsetA + (l*strideA1) + (j*strideA2) ] = 0.0;
336
+ }
337
+ A[ offsetA + (j*strideA1) + (j*strideA2) ] = 1.0;
338
+ }
339
+
340
+ // Apply H(i) to A(i:m,i:n) from the left
341
+ for ( i = K-1; i >= 0; i-- ) {
342
+ if ( i < N ) {
343
+ // Apply H(i) to A(i:m,i+1:n) from the left
344
+ dlarf1f( 'left', M-i, N-i-1, A, strideA1, offsetA + (i*strideA1) + (i*strideA2), tau[ offsetTau + (i*strideTau) ], A, strideA1, strideA2, offsetA + (i*strideA1) + ((i+1)*strideA2), work, strideWork, offsetWork );
345
+ }
346
+ if ( i < M ) {
347
+ // Scale A(i+1:m,i) by -tau(i)
348
+ dscal( M-i-1, -tau[ offsetTau + (i*strideTau) ], A, strideA1, offsetA + ((i+1)*strideA1) + (i*strideA2) ); // eslint-disable-line max-len
349
+ }
350
+ // Set A(i,i) = 1 - tau(i)
351
+ A[ offsetA + (i*strideA1) + (i*strideA2) ] = 1.0 - tau[ offsetTau + (i*strideTau) ]; // eslint-disable-line max-len
352
+
353
+ // Set A(0:i-1,i) to zero
354
+ for ( l = 0; l < i; l++ ) {
355
+ A[ offsetA + (l*strideA1) + (i*strideA2) ] = 0.0;
356
+ }
357
+ }
358
+
359
+ return A;
360
+ }
352
361
353
362
354
363
// EXPORTS //
@@ -361,7 +370,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
361
370
< div class ='footer quiet pad2 space-top1 center small '>
362
371
Code coverage generated by
363
372
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
364
- at 2025-07-31T06:37:27.135Z
373
+ at 2025-07-31T07:58:29.087Z
365
374
</ div >
366
375
< script src ="../../../../prettify.js "> </ script >
367
376
< script >
0 commit comments