Batched matrix-vector operations.
| Event batchlas::gemv | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | A, | ||
| const VectorView< T > & | X, | ||
| const VectorView< T > & | Y, | ||
| T | alpha, | ||
| T | beta, | ||
| Transpose | transA ) |
Batched general matrix-vector multiply.
For every batch item \(b\) computes
\[ y_b := \alpha \, \mathrm{op}(A_b) \, x_b + \beta \, y_b \]
where \(\mathrm{op}(A)\) is \(A\), \(A^T\) or \(A^H\) according to transA. For an m x n A, X has length n and Y length m under NoTrans, and the other way round under Trans / ConjTrans. The vectors' inc (element spacing) and stride (batch spacing) are honoured.
Also callable as gemv(ctx, A, x, y, GemvOptions<T>{...}), with owning Matrix / Vector arguments, and without B (taken from ctx.backend()).
| B | backend the call is compiled for; must match ctx's device |
| T | scalar type: float, double, std::complex<float> or std::complex<double> |
| ctx | queue the work is enqueued on |
| A | batch of m x n matrices |
| X | batch of input vectors |
| Y | batch of output vectors; input scaled by beta, overwritten with the result |
| alpha | scale of the product |
| beta | scale of the input Y |
| transA | op() applied to A |
| batchlas::NoRouteError | in a build without the vendor BLAS for B when no native kernel can run the call (for example a heterogeneous A). |