@@ -25,7 +25,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
25
25
< div class ='fl pad1y space-right2 '>
26
26
< span class ="strong "> 100% </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 100/100 </ span >
28
+ < span class ='fraction '> 124/124 </ span >
29
29
</ div >
30
30
31
31
@@ -46,7 +46,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
46
46
< div class ='fl pad1y space-right2 '>
47
47
< span class ="strong "> 100% </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 100/100 </ span >
49
+ < span class ='fraction '> 124/124 </ span >
50
50
</ div >
51
51
52
52
@@ -163,7 +163,31 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
163
163
< a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164
164
< a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165
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 >
166
+ < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a >
167
+ < a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168
+ < a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169
+ < a name ='L104 '> </ a > < a href ='#L104 '> 104</ a >
170
+ < a name ='L105 '> </ a > < a href ='#L105 '> 105</ a >
171
+ < a name ='L106 '> </ a > < a href ='#L106 '> 106</ a >
172
+ < a name ='L107 '> </ a > < a href ='#L107 '> 107</ a >
173
+ < a name ='L108 '> </ a > < a href ='#L108 '> 108</ a >
174
+ < a name ='L109 '> </ a > < a href ='#L109 '> 109</ a >
175
+ < a name ='L110 '> </ a > < a href ='#L110 '> 110</ a >
176
+ < a name ='L111 '> </ a > < a href ='#L111 '> 111</ a >
177
+ < a name ='L112 '> </ a > < a href ='#L112 '> 112</ a >
178
+ < a name ='L113 '> </ a > < a href ='#L113 '> 113</ a >
179
+ < a name ='L114 '> </ a > < a href ='#L114 '> 114</ a >
180
+ < a name ='L115 '> </ a > < a href ='#L115 '> 115</ a >
181
+ < a name ='L116 '> </ a > < a href ='#L116 '> 116</ a >
182
+ < a name ='L117 '> </ a > < a href ='#L117 '> 117</ a >
183
+ < a name ='L118 '> </ a > < a href ='#L118 '> 118</ a >
184
+ < a name ='L119 '> </ a > < a href ='#L119 '> 119</ a >
185
+ < a name ='L120 '> </ a > < a href ='#L120 '> 120</ a >
186
+ < a name ='L121 '> </ a > < a href ='#L121 '> 121</ a >
187
+ < a name ='L122 '> </ a > < a href ='#L122 '> 122</ a >
188
+ < a name ='L123 '> </ a > < a href ='#L123 '> 123</ a >
189
+ < a name ='L124 '> </ a > < a href ='#L124 '> 124</ a >
190
+ < a name ='L125 '> </ a > < a href ='#L125 '> 125</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
167
191
< span class ="cline-any cline-yes "> 3x</ span >
168
192
< span class ="cline-any cline-yes "> 3x</ span >
169
193
< span class ="cline-any cline-yes "> 3x</ span >
@@ -226,18 +250,34 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
226
250
< span class ="cline-any cline-yes "> 9x</ span >
227
251
< span class ="cline-any cline-yes "> 9x</ span >
228
252
< span class ="cline-any cline-yes "> 9x</ span >
253
+ < span class ="cline-any cline-yes "> 9x</ span >
254
+ < span class ="cline-any cline-yes "> 9x</ span >
255
+ < span class ="cline-any cline-yes "> 9x</ span >
256
+ < span class ="cline-any cline-yes "> 9x</ span >
257
+ < span class ="cline-any cline-yes "> 9x</ span >
229
258
< span class ="cline-any cline-yes "> 1x</ span >
230
259
< span class ="cline-any cline-yes "> 1x</ span >
231
260
< span class ="cline-any cline-yes "> 8x</ span >
232
261
< span class ="cline-any cline-yes "> 8x</ span >
262
+ < span class ="cline-any cline-yes "> 8x</ span >
263
+ < span class ="cline-any cline-yes "> 8x</ span >
264
+ < span class ="cline-any cline-yes "> 8x</ span >
265
+ < span class ="cline-any cline-yes "> 8x</ span >
233
266
< span class ="cline-any cline-yes "> 9x</ span >
234
267
< span class ="cline-any cline-yes "> 16x</ span >
235
268
< span class ="cline-any cline-yes "> 112x</ span >
236
269
< span class ="cline-any cline-yes "> 112x</ span >
270
+ < span class ="cline-any cline-yes "> 112x</ span >
271
+ < span class ="cline-any cline-yes "> 16x</ span >
272
+ < span class ="cline-any cline-yes "> 16x</ span >
237
273
< span class ="cline-any cline-yes "> 16x</ span >
238
274
< span class ="cline-any cline-yes "> 16x</ span >
239
275
< span class ="cline-any cline-yes "> 8x</ span >
240
276
< span class ="cline-any cline-yes "> 8x</ span >
277
+ < span class ="cline-any cline-yes "> 8x</ span >
278
+ < span class ="cline-any cline-yes "> 8x</ span >
279
+ < span class ="cline-any cline-yes "> 8x</ span >
280
+ < span class ="cline-any cline-yes "> 8x</ span >
241
281
< span class ="cline-any cline-yes "> 9x</ span >
242
282
< span class ="cline-any cline-yes "> 20x</ span >
243
283
< span class ="cline-any cline-yes "> 20x</ span >
@@ -252,8 +292,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
252
292
< span class ="cline-any cline-yes "> 20x</ span >
253
293
< span class ="cline-any cline-yes "> 20x</ span >
254
294
< span class ="cline-any cline-yes "> 20x</ span >
295
+ < span class ="cline-any cline-yes "> 20x</ span >
296
+ < span class ="cline-any cline-yes "> 20x</ span >
297
+ < span class ="cline-any cline-yes "> 20x</ span >
255
298
< span class ="cline-any cline-yes "> 16x</ span >
256
299
< span class ="cline-any cline-yes "> 16x</ span >
300
+ < span class ="cline-any cline-yes "> 16x</ span >
301
+ < span class ="cline-any cline-yes "> 20x</ span >
302
+ < span class ="cline-any cline-yes "> 20x</ span >
303
+ < span class ="cline-any cline-yes "> 20x</ span >
304
+ < span class ="cline-any cline-yes "> 20x</ span >
257
305
< span class ="cline-any cline-yes "> 20x</ span >
258
306
< span class ="cline-any cline-yes "> 8x</ span >
259
307
< span class ="cline-any cline-yes "> 8x</ span >
@@ -298,7 +346,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
298
346
* @param {PositiveInteger} M - number of rows in matrix `A`
299
347
* @param {PositiveInteger} N - number of columns in matrix `A`
300
348
* @param {NonNegativeInteger} K - number of elementary reflectors whose product defines the matrix Q
301
- * @param {Float64Array} A - input matrix (overwritten by Householder vectors from `dgeqrf`
349
+ * @param {Float64Array} A - input matrix
302
350
* @param {integer} strideA1 - stride of the first dimension of `A`
303
351
* @param {integer} strideA2 - stride of the second dimension of `A`
304
352
* @param {NonNegativeInteger} offsetA - index offset for `A`
@@ -321,6 +369,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
321
369
* // A => <Float64Array>[ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 ]
322
370
*/
323
371
function dorg2r( M, N, K, A, strideA1, strideA2, offsetA, tau, strideTau, offsetTau, work, strideWork, offsetWork ) { // eslint-disable-line max-len, max-params
372
+ var ia1;
373
+ var ia3;
374
+ var del;
375
+ var ia2;
376
+ var it;
324
377
var i;
325
378
var j;
326
379
var l;
@@ -330,30 +383,49 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
330
383
}
331
384
332
385
// Initialize columns k+1:n to columns of the unit matrix
386
+ ia1 = offsetA + (K*strideA1) + (K*strideA2);
387
+ ia2 = offsetA + (K*strideA2);
388
+ del = strideA1 + strideA2;
389
+
333
390
for ( j = K; j < N; j++ ) {
334
391
for ( l = 0; l < M; l++ ) {
335
- A[ offsetA + (l*strideA1) + (j*strideA2) ] = 0.0;
392
+ A[ ia2 ] = 0.0;
393
+ ia2 += strideA1;
336
394
}
337
- A[ offsetA + (j*strideA1) + (j*strideA2) ] = 1.0;
395
+ A[ ia1 ] = 1.0;
396
+ ia1 += del;
397
+ ia2 += strideA2;
338
398
}
399
+
400
+ it = offsetTau + ((K-1)*strideTau);
401
+ ia1 = offsetA + ((K-1)*(strideA1+strideA2));
402
+ ia2 = offsetA + ((K-1)*strideA2);
339
403
340
404
// Apply H(i) to A(i:m,i:n) from the left
341
405
for ( i = K-1; i >= 0; i-- ) {
342
406
if ( i < N ) {
343
407
// 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 );
408
+ dlarf1f( 'left', M-i, N-i-1, A, strideA1, ia1 , tau[ it ], A, strideA1, strideA2, ia1 + strideA2, work, strideWork, offsetWork );
345
409
}
346
410
if ( i < M ) {
347
411
// 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
412
+ dscal( M-i-1, -tau[ it ], A, strideA1, ia1 + strideA1 );
349
413
}
414
+
350
415
// 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
416
+ A[ ia1 ] = 1.0 - tau[ it ];
417
+
418
+ ia3 = 0;
352
419
353
420
// Set A(0:i-1,i) to zero
354
421
for ( l = 0; l < i; l++ ) {
355
- A[ offsetA + (l*strideA1) + (i*strideA2) ] = 0.0;
422
+ A[ ia2 + ia3 ] = 0.0;
423
+ ia3 += strideA1;
356
424
}
425
+ it -= strideTau;
426
+
427
+ ia1 -= del;
428
+ ia2 -= strideA2;
357
429
}
358
430
359
431
return A;
@@ -370,7 +442,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
370
442
< div class ='footer quiet pad2 space-top1 center small '>
371
443
Code coverage generated by
372
444
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
373
- at 2025-08-01T02:55:53.002Z
445
+ at 2025-08-01T03:30:31.375Z
374
446
</ div >
375
447
< script src ="../../../../prettify.js "> </ script >
376
448
< script >
0 commit comments