functionsolveSymRight_C

Solve real system of linear equations X*A=B where A is symmetrix positive definite

Extends from Modelica.Icons.Function (Icon for functions).

Information

This function solves the equation

  X*A = B

where matrix A with symmetric positiv definite matrix. The calculation is rather efficient since symmetrie and decomposition of positive definite matrices is exploited.

Due to symmetrie, Matrix A is uniquely defined by a triangle, i.e. the upper or the lower triangular matrix. It is assumed, that the input to describe A is either a Cholesky factor or part of matrix A itself. This is defined by the user with the boolean inputs isCholesky and upper which is true when A is already Cholesky factor and when A is upper triangular respectively.

Considering the Cholesky decomposition

         T
  A = L*L

with lower triangular matrix L the equation above could be rewritten as
       T
  X*L*L = B

which is solved with BLAS function dtrmm applied to a upper triangular matrix and subsequently to a lower triangular matrix.

In contrast to function solveSymRight this function is implemented in C-code

Inputs

TypeNameDefaultDescription
Real[:,size(A, 1)]AMatrix A of X*A = B
Real[:,:]BMatrix B of X*op(A) = B
BooleanisTriangularfalseTrue if the A is already lower triangular
BooleanupperfalseTrue if A is upper triAngular

Outputs

TypeNameDefaultDescription
Real[size(B, 1),size(B, 2)]XBMatrix X such that X*A = B
Integerinfo

Revisions

Date Author Comment
2010-05-31 Marcus Baur, DLR-RM Realization