22
22
23
23
var minViewBufferIndex = require ( '@stdlib/strided/base/min-view-buffer-index' ) ;
24
24
var offsetView = require ( '@stdlib/strided/base/offset-view' ) ;
25
+ var resolve = require ( '@stdlib/blas/base/layout-resolve-enum' ) ;
26
+ var format = require ( '@stdlib/string/format' ) ;
25
27
var addon = require ( './dger.native.js' ) ;
26
28
27
29
@@ -30,7 +32,7 @@ var addon = require( './dger.native.js' );
30
32
/**
31
33
* Performs the rank 1 operation `A = alpha*x*y^T + A`.
32
34
*
33
- * @param {string } order - storage layout
35
+ * @param {* } order - storage layout
34
36
* @param {NonNegativeInteger } M - number of rows in the matrix `A`
35
37
* @param {NonNegativeInteger } N - number of columns in the matrix `A`
36
38
* @param {number } alpha - scalar constant
@@ -42,6 +44,7 @@ var addon = require( './dger.native.js' );
42
44
* @param {NonNegativeInteger } offsetY - starting `y` index
43
45
* @param {Float64Array } A - matrix of coefficients
44
46
* @param {PositiveInteger } LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`)
47
+ * @throws {TypeError } first argument must be a supported BLAS memory layout
45
48
* @returns {Float64Array } `A`
46
49
*
47
50
* @example
@@ -61,14 +64,19 @@ var addon = require( './dger.native.js' );
61
64
function dger ( order , M , N , alpha , x , strideX , offsetX , y , strideY , offsetY , A , LDA ) { // eslint-disable-line max-len, max-params
62
65
var viewX ;
63
66
var viewY ;
67
+ var ord ;
64
68
69
+ ord = resolve ( order ) ;
70
+ if ( ord === null ) {
71
+ throw new TypeError ( format ( 'invalid argument. First argument must be a supported BLAS memory layout. Value: `%s`.' , order ) ) ;
72
+ }
65
73
offsetX = minViewBufferIndex ( N , strideX , offsetX ) ;
66
74
offsetY = minViewBufferIndex ( N , strideY , offsetY ) ;
67
75
68
76
viewX = offsetView ( x , offsetX ) ;
69
77
viewY = offsetView ( y , offsetY ) ;
70
78
71
- addon ( 101 , M , N , alpha , viewX , strideX , viewY , strideY , A , LDA ) ; // FIXME: resolve order enum
79
+ addon ( ord , M , N , alpha , viewX , strideX , viewY , strideY , A , LDA ) ;
72
80
return A ;
73
81
}
74
82
0 commit comments