computes the symmetric rank-one update a+α Outer[Times,x,x] and resets the appropriate part of a to the result.


  • To use SYR, you first need to load the BLAS Package using Needs["LinearAlgebra`BLAS`"].
  • The following arguments must be given:
  • ulinput stringupper/lower triangular string
    αinput expressionscalar mutliple
    xinput expressionvector
    ainput/output symbolmatrix; the symbol value is modified in place
  • The upper/lower triangular string ul may be specified as:
  • "U"update the upper triangular part of a
    "L"update the lower triangular part of a
  • Dimensions of the matrix and vector arguments must be such that the dot product and addition are well defined.


open allclose all

Basic Examples  (1)

Load the BLAS package:

Apply a symmetric rank-one update to the upper triangular part of a matrix:

Scope  (4)

Real matrix and vectors:

Complex matrix and vectors:

Arbitrary-precision matrix and vectors:

Integer-symbolic matrix and vectors:

Properties & Relations  (1)

SYR["U",α,x,a] is equivalent to a=a+α Outer[Times,x,x] for the upper triangular part of a:

The strictly lower triangular part of a is unchanged:

Possible Issues  (2)

The last argument must be a symbol:

The last argument must be initialized to a matrix: