|  | 
| 20 | 20 | 
 | 
| 21 | 21 | // MODULES // | 
| 22 | 22 | 
 | 
|  | 23 | +var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); | 
| 23 | 24 | var resolve = require( '@stdlib/blas/base/layout-resolve-enum' ); | 
| 24 | 25 | var format = require( '@stdlib/string/format' ); | 
| 25 | 26 | var addon = require( './../src/addon.node' ); | 
| @@ -59,11 +60,22 @@ var addon = require( './../src/addon.node' ); | 
| 59 | 60 | * // A => <Float64Array>[ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 ] | 
| 60 | 61 | */ | 
| 61 | 62 | function dger( order, M, N, alpha, x, strideX, y, strideY, A, LDA ) { | 
| 62 |  | -	var ord = resolve( order ); | 
| 63 |  | -	if ( ord === null ) { | 
|  | 63 | +	if ( !isLayout( order ) ) { | 
| 64 | 64 | 		throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) ); | 
| 65 | 65 | 	} | 
| 66 |  | -	addon( ord, M, N, alpha, x, strideX, y, strideY, A, LDA ); | 
|  | 66 | +	if ( M < 0 ) { | 
|  | 67 | +		throw new RangeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%d`.', M ) ); | 
|  | 68 | +	} | 
|  | 69 | +	if ( N < 0 ) { | 
|  | 70 | +		throw new RangeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%d`.', N ) ); | 
|  | 71 | +	} | 
|  | 72 | +	if ( strideX === 0 ) { | 
|  | 73 | +		throw new RangeError( format( 'invalid argument. Sixth argument must be non-zero. Value: `%d`.', strideX ) ); | 
|  | 74 | +	} | 
|  | 75 | +	if ( strideY === 0 ) { | 
|  | 76 | +		throw new RangeError( format( 'invalid argument. Eighth argument must be non-zero. Value: `%d`.', strideY ) ); | 
|  | 77 | +	} | 
|  | 78 | +	addon( resolve( order ), M, N, alpha, x, strideX, y, strideY, A, LDA ); | 
| 67 | 79 | 	return A; | 
| 68 | 80 | } | 
| 69 | 81 | 
 | 
|  | 
0 commit comments