@@ -25,14 +25,14 @@ <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 '> 104/104 </ span >
28
+ < span class ='fraction '> 115/115 </ 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 '> 18/18 </ span >
35
+ < span class ='fraction '> 17/17 </ span >
36
36
</ div >
37
37
38
38
@@ -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 '> 104/104 </ span >
49
+ < span class ='fraction '> 115/115 </ span >
50
50
</ div >
51
51
52
52
@@ -167,7 +167,29 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
167
167
< a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168
168
< a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169
169
< 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 >
171
193
< span class ="cline-any cline-yes "> 2x</ span >
172
194
< span class ="cline-any cline-yes "> 2x</ span >
173
195
< 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
293
315
294
316
// MODULES //
295
317
318
+ var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' );
296
319
var isLayout = require( '@stdlib/blas/base/assert/is-layout' );
297
320
var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' );
298
321
var 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' );
299
324
var max = require( '@stdlib/math/base/special/max' );
300
- var format = require( '@stdlib/string/format' );
301
325
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
326
+ var format = require( '@stdlib/string/format' );
302
327
var base = require( './base.js' );
303
328
304
329
@@ -309,12 +334,20 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
309
334
*
310
335
* ## Notes
311
336
*
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`.
315
348
*
316
349
* @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`
318
351
* @param {NonNegativeInteger} M - number of rows in `C`
319
352
* @param {NonNegativeInteger} N - number of columns in `C`
320
353
* @param {Float64Array} V - the vector `v`
@@ -325,7 +358,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
325
358
* @param {Float64Array} work - workspace array
326
359
* @throws {TypeError} first argument must be a valid order
327
360
* @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)
329
362
* @throws {RangeError} fifth argument must not be zero
330
363
* @returns {Float64Array} `C * H` or `H * C`
331
364
*
@@ -350,11 +383,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
350
383
if ( isRowMajor( order ) && LDC < max( 1, N ) ) {
351
384
throw new RangeError( format( 'invalid argument. Fourth argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDC ) );
352
385
}
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 ) );
355
388
}
356
389
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 ) );
358
391
}
359
392
if ( isColumnMajor( order ) ) {
360
393
sc1 = 1;
@@ -382,7 +415,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
382
415
< div class ='footer quiet pad2 space-top1 center small '>
383
416
Code coverage generated by
384
417
< 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
386
419
</ div >
387
420
< script src ="../../../../prettify.js "> </ script >
388
421
< script >
0 commit comments