LinearAlgebra`BLAS`
LinearAlgebra`BLAS`

# HERK

HERK[ul,ts,α,a,β,b]

computes the Hermitian rank-k update α opts[a].ConjugateTranspose[opts[a]]+β b and resets the appropriate part of b to the result.

# Details

• To use HERK, 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 ts input string transposition string α input expression scalar mutliple a input expression rectangular matrix β input expression scalar multiple b input/output symbol square matrix; the symbol value is modified in place
• The upper/lower triangular string ul may be specified as:
•  "U" update the upper triangular part of b "L" update the lower triangular part of b
• The transposition strings describe the operators opts and may be specified as:
•  "N" no transposition "T" transpose "C" conjugate transpose
• The main diagonal elements of b are assumed to be real-valued.
• Dimensions of the matrix arguments must be such that the dot product and addition are well defined.

# Examples

open allclose all

## Basic Examples(1)

Apply Hermitian rank-2 update to the upper triangular part of a matrix:

## Scope(4)

Real matrices:

Complex matrices:

Arbitrary-precision matrices:

Integer-symbolic matrices:

## Properties & Relations(1)

HERK["U","N",α,a,β,b] is equivalent to b=α a.ConjugateTranspose[a]+β b applied to the upper triangular part of b:

The strictly lower triangular part of b is unchanged:

## Possible Issues(2)

The last argument must be a symbol: The last argument must be initialized to a matrix, otherwise an error message is issued: 