LinearAlgebra`BLAS`
LinearAlgebra`BLAS`

# SYMV

SYMV[ul,α,a,x,β,y]

computes the symmetric matrix-vector multiplication α a.x+β y and resets y to the result.

# Details and Options

• To use SYMV, you first need to load the BLAS Package using Needs["LinearAlgebra`BLAS`"].
• The following arguments must be given:
•  ul input string upper/lower triangular string α input expression scalar mutliple a input expression square symmetric matrix x input expression vector β input expression scalar multiple y input/output symbol vector; the symbol value is modified in place
• The matrix is assumed symmetric, and only the upper or lower triangular part of a is used.
• The upper/lower triangular string ul may be specified as:
•  "U" the upper triangular part of a is to be used "L" the lower triangular part of a is to be used
• Dimensions of the matrix and vector arguments must be such that the dot product and addition are well defined.

# Examples

open allclose all

## Basic Examples(1)

Compute a.x+2y and save it in y:

## Scope(4)

Real symmetric matrix and vectors:

Complex symmetric matrix and vectors:

Arbitrary-precision symmetric matrix and vectors:

Symbolic symmetric matrix and vectors:

## Properties & Relations(3)

SYMV["U",α,a,x,β,y] is equivalent to y=α a.x+β y if a is symmetric:

For a symmetric matrix, using the upper or lower triangular part generally produces the same result:

SYMV works with a non-symmetric matrices:

However, the upper and lower parts give different results:

The effective computation of yU is the following:

## Possible Issues(2)

The last argument must be a symbol: The last argument must be initialized to a vector: 