{{alias}}( ord, uplo, N, α, AP, x, sx, β, y, sy ) Performs the matrix-vector operation `y = α*A*x + β*y` where `α` and `β` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix supplied in packed form. Indexing is relative to the first index. To introduce an offset, use typed array views. If `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. Must be either 'row-major' or 'column-major'. uplo: string Specifies whether the upper or lower triangular matrix of `A` is supplied. Must be either 'upper' or 'lower'. N: integer Number of elements along each dimension of `A`. α: number Scalar constant. AP: Float64Array Matrix in packed form. x: Float64Array Input vector `x`. sx: integer Index increment for `x`. β: number Scalar constant. y: Float64Array Input/output vector `y`. sy: integer Index increment for `y`. Returns ------- y: Float64Array Output array. Examples -------- // Standard usage: > var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var AP = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > {{alias}}( 'row-major', 'upper', 2, 1.0, AP, x, 1, 1.0, y, 1 ) [ ~4.0, ~6.0 ] // Advanced indexing: > x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > AP = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > {{alias}}( 'row-major', 'upper', 2, 1.0, AP, x, -1, 1.0, y, -1 ) [ ~6.0, ~4.0 ] // Using typed array views: > var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var y0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > AP = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0 ] ); > var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*0 ); > var y1 = new {{alias:@stdlib/array/float64}}( y0.buffer, y0.BYTES_PER_ELEMENT*0 ); > {{alias}}( 'row-major', 'upper', 2, 1.0, AP, x1, -1, 1.0, y1, -1 ); > y0 [ ~6.0, ~4.0 ] {{alias}}.ndarray( ord, uplo, N, α, AP, oa, x, sx, ox, β, y, sy, oy ) Performs the matrix-vector operation `y = α*A*x + β*y` using alternative indexing semantics and where `α` and `β` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix supplied in packed form. While typed array views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. Parameters ---------- ord: string Row-major (C-style) or column-major (Fortran-style) order. Must be either 'row-major' or 'column-major'. uplo: string Specifies whether the upper or lower triangular matrix of `A` is supplied. Must be either 'upper' or 'lower'. N: integer Number of elements along each dimension of `A`. α: number Scalar. AP: Float64Array Matrix in packed form. oa: integer Starting index for `AP`. x: Float64Array Input vector `x`. sx: integer Index increment for `x`. ox: integer Starting index for `x`. β: number Scalar. y: Float64Array Input/output vector `y`. sy: integer Index increment for `y`. oy: integer Starting index for `y`. Returns ------- y: Float64Array Output array. Examples -------- // Standard usage: > var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var AP = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > var ord = 'row-major'; > var uplo = 'upper'; > {{alias}}.ndarray( ord, uplo, 2, 1.0, AP, 0, x, 1, 0, 1.0, y, 1, 0 ) [ ~4.0, ~6.0 ] // Advanced indexing: > x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > AP = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] ); > {{alias}}.ndarray( ord, uplo, 2, 1.0, AP, 0, x, -1, 1, 1.0, y, -1, 1 ) [ ~6.0, ~4.0 ] See Also --------