Click or drag to resize

DLAGS2Run Method

Purpose ======= DLAGS2 computes 2-by-2 orthogonal matrices U, V and Q, such that if ( UPPER ) then U'*A*Q = U'*( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x ) and V'*B*Q = V'*( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x ) or if ( .NOT.UPPER ) then U'*A*Q = U'*( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x ) and V'*B*Q = V'*( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x ) The rows of the transformed A and B are parallel, where U = ( CSU SNU ), V = ( CSV SNV ), Q = ( CSQ SNQ ) ( -SNU CSU ) ( -SNV CSV ) ( -SNQ CSQ ) Z' denotes the transpose of Z.

Namespace: DotNumerics.LinearAlgebra.CSLapack
Assembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax
public void Run(
	bool UPPER,
	double A1,
	double A2,
	double A3,
	double B1,
	double B2,
	double B3,
	ref double CSU,
	ref double SNU,
	ref double CSV,
	ref double SNV,
	ref double CSQ,
	ref double SNQ
)
Request Example View Source

Parameters

UPPER  Boolean
(input) LOGICAL = .TRUE.: the input matrices A and B are upper triangular. = .FALSE.: the input matrices A and B are lower triangular.
A1  Double
(input) DOUBLE PRECISION
A2  Double
(input) DOUBLE PRECISION
A3  Double
(input) DOUBLE PRECISION On entry, A1, A2 and A3 are elements of the input 2-by-2 upper (lower) triangular matrix A.
B1  Double
(input) DOUBLE PRECISION
B2  Double
(input) DOUBLE PRECISION
B3  Double
(input) DOUBLE PRECISION On entry, B1, B2 and B3 are elements of the input 2-by-2 upper (lower) triangular matrix B.
CSU  Double
(output) DOUBLE PRECISION
SNU  Double
(output) DOUBLE PRECISION The desired orthogonal matrix U.
CSV  Double
(output) DOUBLE PRECISION
SNV  Double
(output) DOUBLE PRECISION The desired orthogonal matrix V.
CSQ  Double
(output) DOUBLE PRECISION
SNQ  Double
(output) DOUBLE PRECISION The desired orthogonal matrix Q.
See Also