{{alias}}( ord, trans, M, N, α, A, lda, x, sx, β, y, sy ) Performs one of the matrix-vector operations `y = α*A*x + β*y` or `y = α*A**T*x + β*y`, where `α` and `β` are scalars, `x` and `y` are vectors, and `A` is an `M` by `N` matrix. Indexing is relative to the first index. To introduce an offset, use typed array views. If `M` or `N` is equal to `0`, the function returns `y` unchanged. If `α` equals `0` and β equals `1`, the function returns `y` unchanged. Parameters ---------- ord: string Row-major (C-style) or column-major (Fortran-style) order. trans: string Specifies whether `A` should be transposed, conjugate-transposed, or not transposed. M: integer Number of rows in `A`. N: integer Number of columns in `A`. α: number Scalar constant. A: Float32Array Input Matrix. lda: integer Stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`). x: Float32Array First input vector. sx: integer Index increment for `x`. β: number Scalar constant. y: Float32Array Second input vector. sy: integer Index increment for `y`. Returns ------- y: Float32Array Second input vector. Examples -------- // Standard usage: > var x = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > var A = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > var ord = 'row-major'; > var trans = 'no-transpose'; > {{alias}}( ord, trans, 2, 2, 1.0, A, 2, x, 1, 1.0, y, 1 ) [ 4.0, 8.0 ] // Advanced indexing: > x = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > y = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > A = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > {{alias}}( ord, trans, 2, 2, 1.0, A, 2, x, -1, 1.0, y, -1 ) [ 8.0, 4.0 ] // Using typed array views: > var x0 = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0, 1.0 ] ); > var y0 = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > A = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); > var x1 = new {{alias:@stdlib/array/float32}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); > var y1 = new {{alias:@stdlib/array/float32}}( y0.buffer, y0.BYTES_PER_ELEMENT*1 ); > {{alias}}( ord, trans, 2, 2, 1.0, A, 2, x1, -1, 1.0, y1, -1 ); > y0 [ 1.0, 8.0 ] {{alias}}.ndarray( trans, M, N, α, A, sa1, sa2, oa, x, sx, ox, β, y, sy, oy ) Performs one of the matrix-vector operations `y = α*A*x + β*y` or `y = α*A**T*x + β*y`, using alternative indexing semantics and where `α` and `β` are scalars, `x` and `y` are vectors, and `A` is an `M` by `N` matrix. While typed array views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. Parameters ---------- trans: string Specifies whether `A` should be transposed, conjugate-transposed, or not transposed. M: integer Number of rows in `A`. N: integer Number of columns in `A`. α: number Scalar constant. A: Float32Array Input Matrix. sa1: integer Stride of the first dimension of `A`. sa2: integer Stride of the second dimension of `A`. oa: integer Starting index for `A`. x: Float32Array First input vector. sx: integer Index increment for `x`. ox: integer Starting index for `x`. β: number Scalar constant. y: Float32Array Second input vector. sy: integer Index increment for `y`. oy: integer Starting index for `y`. Returns ------- y: Float32Array Second input vector. Examples -------- > var x = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0 ] ); > var A = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > var trans = 'no-transpose'; > {{alias}}.ndarray( trans, 2, 2, 1, A, 2, 1, 0, x, 1, 0, 1, y, 1, 0 ) [ 4.0, 8.0 ] See Also --------