BLAS Level 2 GEMV (matrix-vector multiply) for ndarrays
Calculate y <- alpha * A * x + beta * y
for scalar alpha, matrix A, vector x, scalar beta, and vector y. Result is overwritten in vector y. All other inputs are unchanged.
var gemv = require('ndarray-blas-gemv')
var A = ndarray([1,2,5,3], [2,2]),
x = ndarray([-4,7]),
y = ndarray([3,-2])
gemv( -4, A, x, 2, y )
// Result: y = [-34, -8]
To multiply using the transpose of A, you can simply use .transpose(1,0)
to transpose the input (note that this calculates new strides and offsets but does not rearrange the physical memory).
var A = ndarray([1,2,5,3], [2,2]),
x = ndarray([-4,7]),
y = ndarray([3,-2])
gemv( -4, A.transpose(1,0), x, 2, y )
// Result: y = [-118, -56]
(c) 2015 Ricky Reusser. MIT License