@@ -25,14 +25,14 @@ <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 '> 104/104 </ span >
28+ < span class ='fraction '> 115/115 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
3333 < span class ="strong "> 100% </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 18/18 </ span >
35+ < span class ='fraction '> 17/17 </ span >
3636 </ div >
3737
3838
@@ -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 '> 104/104 </ span >
49+ < span class ='fraction '> 115/115 </ span >
5050 </ div >
5151
5252
@@ -167,7 +167,29 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
167167< a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168168< a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169169< a name ='L104 '> </ a > < a href ='#L104 '> 104</ a >
170- < a name ='L105 '> </ a > < a href ='#L105 '> 105</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
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 > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
182+ < span class ="cline-any cline-yes "> 2x</ span >
183+ < span class ="cline-any cline-yes "> 2x</ span >
184+ < span class ="cline-any cline-yes "> 2x</ span >
185+ < span class ="cline-any cline-yes "> 2x</ span >
186+ < span class ="cline-any cline-yes "> 2x</ span >
187+ < span class ="cline-any cline-yes "> 2x</ span >
188+ < span class ="cline-any cline-yes "> 2x</ span >
189+ < span class ="cline-any cline-yes "> 2x</ span >
190+ < span class ="cline-any cline-yes "> 2x</ span >
191+ < span class ="cline-any cline-yes "> 2x</ span >
192+ < span class ="cline-any cline-yes "> 2x</ span >
171193< span class ="cline-any cline-yes "> 2x</ span >
172194< span class ="cline-any cline-yes "> 2x</ span >
173195< span class ="cline-any cline-yes "> 2x</ span >
@@ -293,12 +315,15 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
293315
294316// MODULES //
295317
318+ var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' );
296319var isLayout = require( '@stdlib/blas/base/assert/is-layout' );
297320var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' );
298321var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' );
322+ var operationSides = require( '@stdlib/blas/base/operation-sides' );
323+ var join = require( '@stdlib/array/base/join' );
299324var max = require( '@stdlib/math/base/special/max' );
300- var format = require( '@stdlib/string/format' );
301325var stride2offset = require( '@stdlib/strided/base/stride2offset' );
326+ var format = require( '@stdlib/string/format' );
302327var base = require( './base.js' );
303328
304329
@@ -309,12 +334,20 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
309334*
310335* ## Notes
311336*
312- * - `work` should have `N` indexed elements if side = `'left'` and `M` indexed elements if side = `'right'`.
313- * - `V` should have `1 + (M-1) * abs(incv)` indexed elements if side = `'left'` and `1 + (N-1) * abs(incv)` indexed elements if side = `'right'`.
314- * - `C` is overwritten by `H * C` if side = `'left'` and `C * H` if side = `'right'`.
337+ * - If `side = 'left'`,
338+ *
339+ * - `work` should have `N` indexed elements.
340+ * - `V` should have `1 + (M-1) * abs(strideV)` indexed elements.
341+ * - `C` is overwritten by `H * C`.
342+ *
343+ * - If `side = 'right'`,
344+ *
345+ * - `work` should have `M` indexed elements.
346+ * - `V` should have `1 + (N-1) * abs(strideV)` indexed elements.
347+ * - `C` is overwritten by `C * H`.
315348*
316349* @param {string} order - storage layout
317- * @param {string} side - specifies the side of multiplication with `C`. Use `'left'` to form `H * C` and `'right'` to form `C * H`.
350+ * @param {string} side - specifies the side of multiplication with `C`
318351* @param {NonNegativeInteger} M - number of rows in `C`
319352* @param {NonNegativeInteger} N - number of columns in `C`
320353* @param {Float64Array} V - the vector `v`
@@ -325,7 +358,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
325358* @param {Float64Array} work - workspace array
326359* @throws {TypeError} first argument must be a valid order
327360* @throws {TypeError} second argument must be a valid side
328- * @throws {RangeError} ninth argument must be greater than or equal to max(1,N)
361+ * @throws {RangeError} fourth argument must be greater than or equal to max(1,N)
329362* @throws {RangeError} fifth argument must not be zero
330363* @returns {Float64Array} `C * H` or `H * C`
331364*
@@ -350,11 +383,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
350383 if ( isRowMajor( order ) && LDC < max( 1, N ) ) {
351384 throw new RangeError( format( 'invalid argument. Fourth argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDC ) );
352385 }
353- if ( side !== 'left' && side !== 'right' ) { // TODO - refactor this to make use of an array if needed
354- throw new TypeError( format( 'invalid argument. Second argument must be a valid side (left or right) . Value: `%s`.', side ) );
386+ if ( !isOperationSide( side ) ) {
387+ throw new TypeError( format( 'invalid argument. Second argument must be one of the following: "%s" . Value: `%s`.', join( operationSides(), '", "' ) , side ) );
355388 }
356389 if ( incv === 0 ) {
357- throw new RangeError( format( 'invalid argument. Fifth argument must not be zero' ) );
390+ throw new RangeError( format( 'invalid argument. Fifth argument must be non- zero. Value: `%s`.', incv ) );
358391 }
359392 if ( isColumnMajor( order ) ) {
360393 sc1 = 1;
@@ -382,7 +415,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
382415 < div class ='footer quiet pad2 space-top1 center small '>
383416 Code coverage generated by
384417 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
385- at 2025-08-19T11:42:31.873Z
418+ at 2025-08-29T08:26:00.838Z
386419 </ div >
387420 < script src ="../../../../prettify.js "> </ script >
388421 < script >
0 commit comments