@@ -25,7 +25,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 116/116 </ span >
28+ < span class ='fraction '> 113/113 </ span >
2929 </ div >
3030
3131
@@ -46,7 +46,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 116/116 </ span >
49+ < span class ='fraction '> 113/113 </ span >
5050 </ div >
5151
5252
@@ -176,10 +176,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
176176< a name ='L111 '> </ a > < a href ='#L111 '> 111</ a >
177177< a name ='L112 '> </ a > < a href ='#L112 '> 112</ a >
178178< 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 > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
179+ < a name ='L114 '> </ a > < a href ='#L114 '> 114</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
183180< span class ="cline-any cline-yes "> 3x</ span >
184181< span class ="cline-any cline-yes "> 3x</ span >
185182< span class ="cline-any cline-yes "> 3x</ span >
@@ -256,14 +253,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
256253< span class ="cline-any cline-yes "> 6x</ span >
257254< span class ="cline-any cline-yes "> 6x</ span >
258255< span class ="cline-any cline-yes "> 6x</ span >
259- < span class ="cline-any cline-yes "> 6x</ span >
260256< span class ="cline-any cline-yes "> 18x</ span >
261257< span class ="cline-any cline-yes "> 18x</ span >
262258< span class ="cline-any cline-yes "> 18x</ span >
263259< span class ="cline-any cline-yes "> 18x</ span >
264260< span class ="cline-any cline-yes "> 24x</ span >
265261< span class ="cline-any cline-yes "> 6x</ span >
266- < span class ="cline-any cline-yes "> 6x</ span >
267262< span class ="cline-any cline-yes "> 24x</ span >
268263< span class ="cline-any cline-yes "> 12x</ span >
269264< span class ="cline-any cline-yes "> 12x</ span >
@@ -288,7 +283,6 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
288283< span class ="cline-any cline-yes "> 12x</ span >
289284< span class ="cline-any cline-yes "> 12x</ span >
290285< span class ="cline-any cline-yes "> 12x</ span >
291- < span class ="cline-any cline-yes "> 12x</ span >
292286< span class ="cline-any cline-yes "> 24x</ span >
293287< span class ="cline-any cline-yes "> 3x</ span >
294288< span class ="cline-any cline-yes "> 3x</ span >
@@ -328,13 +322,13 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
328322// MAIN //
329323
330324/**
331- * Generates a real elementary reflector `H` of order `N` such that applying `H` to a vector `[alpha; x ]` zeros out `X`.
325+ * Generates a real elementary reflector `H` of order `N` such that applying `H` to a vector `[alpha; X ]` zeros out `X`.
332326*
333327* ## Notes
334328*
335- * - `H` is a Householder matrix with the form `H = I - tau * [1; v ] * [1, v ^T]`, where `tau` is a scalar and `v ` is a vector.
336- * - the input vector is `[alpha; x ]`, where `alpha` is a scalar and `X` is a real `(n-1)`-element vector.
337- * - the result of applying `H` to `[alpha; x ]` is `[beta; 0]`, with `beta` being a scalar and the rest of the vector zeroed.
329+ * - `H` is a Householder matrix with the form `H = I - tau * [1; V ] * [1, V ^T]`, where `tau` is a scalar and `V ` is a vector.
330+ * - the input vector is `[alpha; X ]`, where `alpha` is a scalar and `X` is a real `(n-1)`-element vector.
331+ * - the result of applying `H` to `[alpha; X ]` is `[beta; 0]`, with `beta` being a scalar and the rest of the vector zeroed.
338332* - if all elements of `X` are zero, then `tau = 0` and `H` is the identity matrix.
339333* - otherwise, `1 <= tau <= 2`
340334*
@@ -346,7 +340,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
346340* @param {Float64Array} out - array to store `alpha` and `tau`, first indexed element stores `alpha` and the second indexed element stores `tau`
347341* @param {integer} strideOut - stride length for `out`
348342* @param {NonNegativeInteger} offsetOut - starting index of `out`
349- * @returns {void} overwrites the array `X` and `out` in place
343+ * @returns {void}
350344*
351345* @example
352346* var Float64Array = require( '@stdlib/array/float64' );
@@ -369,40 +363,37 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
369363 var i;
370364
371365 if ( N <= 1 ) {
372- tau = 0.0; // tau = 0.0
373- out[ offsetOut + strideOut ] = tau;
366+ out[ offsetOut + strideOut ] = 0.0;
374367 return;
375368 }
376369
377370 xnorm = dnrm2( N - 1, X, strideX, offsetX );
378371 alpha = out[ offsetOut ];
379372
380373 if ( xnorm === 0.0 ) {
381- tau = 0.0; // tau = 0.0
382- out[ strideOut + offsetOut ] = tau;
374+ out[ strideOut + offsetOut ] = 0.0;
383375 } else {
384376 beta = -1.0 * sign( dlapy2( alpha, xnorm ), alpha );
385- safemin = dlamch( 'S ' ) / dlamch( 'E ' );
377+ safemin = dlamch( 'safemin ' ) / dlamch( 'epsilon ' );
386378 knt = 0;
387379 if ( abs( beta ) < safemin ) {
388380 rsafmin = 1.0 / safemin;
389381 while ( abs( beta ) < safemin && knt < 20 ) {
390382 knt += 1;
391383 dscal( N-1, rsafmin, X, strideX, offsetX );
392384 beta *= rsafmin;
393- alpha *= rsafmin; // alpha *= rsafmin
385+ alpha *= rsafmin;
394386 }
395387 xnorm = dnrm2( N - 1, X, strideX, offsetX );
396388 beta = -1.0 * sign( dlapy2( alpha, xnorm ), alpha );
397389 }
398- tau = ( beta - alpha ) / beta; // tau = (beta - alpha) / beta
390+ tau = ( beta - alpha ) / beta;
399391 dscal( N-1, 1.0 / ( alpha - beta ), X, strideX, offsetX );
400392 for ( i = 0; i < knt; i++ ) {
401393 beta *= safemin;
402394 }
403- alpha = beta;
404395
405- out[ offsetOut ] = alpha ;
396+ out[ offsetOut ] = beta ;
406397 out[ strideOut + offsetOut ] = tau;
407398 }
408399}
@@ -418,7 +409,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
418409 < div class ='footer quiet pad2 space-top1 center small '>
419410 Code coverage generated by
420411 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
421- at 2025-06-04T03:31:12.657Z
412+ at 2025-06-05T04:51:44.445Z
422413 </ div >
423414 < script src ="../../../../prettify.js "> </ script >
424415 < script >
0 commit comments