lags2#
Functions
-
void slags2(const INT upper, const f32 a1, const f32 a2, const f32 a3, const f32 b1, const f32 b2, const f32 b3, f32 *csu, f32 *snu, f32 *csv, f32 *snv, f32 *csq, f32 *snq)#
SLAGS2 computes 2-by-2 orthogonal matrices U, V and Q, such that if ( UPPER ) then.
and V**T*B*Q = V**T *( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x )U**T *A*Q = U**T *( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x )
or if ( .NOT.UPPER ) then
and V**T*B*Q = V**T*( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x )U**T *A*Q = U**T *( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 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**T denotes the transpose of Z.
Parameters
inupper= nonzero: the input matrices A and B are upper triangular. = 0: the input matrices A and B are lower triangular.
ina1Element of the input 2-by-2 upper (lower) triangular matrix A.
ina2Element of the input 2-by-2 upper (lower) triangular matrix A.
ina3Element of the input 2-by-2 upper (lower) triangular matrix A.
inb1Element of the input 2-by-2 upper (lower) triangular matrix B.
inb2Element of the input 2-by-2 upper (lower) triangular matrix B.
inb3Element of the input 2-by-2 upper (lower) triangular matrix B.
outcsuThe desired orthogonal matrix U.
outsnuThe desired orthogonal matrix U.
outcsvThe desired orthogonal matrix V.
outsnvThe desired orthogonal matrix V.
outcsqThe desired orthogonal matrix Q.
outsnqThe desired orthogonal matrix Q.
void slags2(
const INT upper,
const f32 a1,
const f32 a2,
const f32 a3,
const f32 b1,
const f32 b2,
const f32 b3,
f32* csu,
f32* snu,
f32* csv,
f32* snv,
f32* csq,
f32* snq
);
Functions
-
void dlags2(const INT upper, const f64 a1, const f64 a2, const f64 a3, const f64 b1, const f64 b2, const f64 b3, f64 *csu, f64 *snu, f64 *csv, f64 *snv, f64 *csq, f64 *snq)#
DLAGS2 computes 2-by-2 orthogonal matrices U, V and Q, such that if ( UPPER ) then.
and V**T*B*Q = V**T *( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x )U**T *A*Q = U**T *( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x )
or if ( .NOT.UPPER ) then
and V**T*B*Q = V**T*( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x )U**T *A*Q = U**T *( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 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**T denotes the transpose of Z.
Parameters
inupper= nonzero: the input matrices A and B are upper triangular. = 0: the input matrices A and B are lower triangular.
ina1Element of the input 2-by-2 upper (lower) triangular matrix A.
ina2Element of the input 2-by-2 upper (lower) triangular matrix A.
ina3Element of the input 2-by-2 upper (lower) triangular matrix A.
inb1Element of the input 2-by-2 upper (lower) triangular matrix B.
inb2Element of the input 2-by-2 upper (lower) triangular matrix B.
inb3Element of the input 2-by-2 upper (lower) triangular matrix B.
outcsuThe desired orthogonal matrix U.
outsnuThe desired orthogonal matrix U.
outcsvThe desired orthogonal matrix V.
outsnvThe desired orthogonal matrix V.
outcsqThe desired orthogonal matrix Q.
outsnqThe desired orthogonal matrix Q.
void dlags2(
const INT upper,
const f64 a1,
const f64 a2,
const f64 a3,
const f64 b1,
const f64 b2,
const f64 b3,
f64* csu,
f64* snu,
f64* csv,
f64* snv,
f64* csq,
f64* snq
);
Functions
-
void clags2(const INT upper, const f32 a1, const c64 a2, const f32 a3, const f32 b1, const c64 b2, const f32 b3, f32 *csu, c64 *snu, f32 *csv, c64 *snv, f32 *csq, c64 *snq)#
CLAGS2 computes 2-by-2 unitary matrices U, V and Q, such that if ( UPPER ) then.
and V**H*B*Q = V**H *( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x )U**H *A*Q = U**H *( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x )
or if ( .NOT.UPPER ) then
and V**H *B*Q = V**H *( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x ) whereU**H *A*Q = U**H *( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x )
U = ( CSU SNU ), V = ( CSV SNV ), ( -SNU**H CSU ) ( -SNV**H CSV )
Q = ( CSQ SNQ ) ( -SNQ**H CSQ )
The rows of the transformed A and B are parallel. Moreover, if the input 2-by-2 matrix A is not zero, then the transformed (1,1) entry of A is not zero. If the input matrices A and B are both not zero, then the transformed (2,2) element of B is not zero, except when the first rows of input A and B are parallel and the second rows are zero.
Parameters
inupper= nonzero: the input matrices A and B are upper triangular. = 0: the input matrices A and B are lower triangular.
ina1Element of the input 2-by-2 upper (lower) triangular matrix A.
ina2Element of the input 2-by-2 upper (lower) triangular matrix A.
ina3Element of the input 2-by-2 upper (lower) triangular matrix A.
inb1Element of the input 2-by-2 upper (lower) triangular matrix B.
inb2Element of the input 2-by-2 upper (lower) triangular matrix B.
inb3Element of the input 2-by-2 upper (lower) triangular matrix B.
outcsuThe desired unitary matrix U.
outsnuThe desired unitary matrix U.
outcsvThe desired unitary matrix V.
outsnvThe desired unitary matrix V.
outcsqThe desired unitary matrix Q.
outsnqThe desired unitary matrix Q.
void clags2(
const INT upper,
const f32 a1,
const c64 a2,
const f32 a3,
const f32 b1,
const c64 b2,
const f32 b3,
f32* csu,
c64* snu,
f32* csv,
c64* snv,
f32* csq,
c64* snq
);
Functions
-
void zlags2(const INT upper, const f64 a1, const c128 a2, const f64 a3, const f64 b1, const c128 b2, const f64 b3, f64 *csu, c128 *snu, f64 *csv, c128 *snv, f64 *csq, c128 *snq)#
ZLAGS2 computes 2-by-2 unitary matrices U, V and Q, such that if ( UPPER ) then.
and V**H*B*Q = V**H *( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x )U**H *A*Q = U**H *( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x )
or if ( .NOT.UPPER ) then
and V**H *B*Q = V**H *( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x ) whereU**H *A*Q = U**H *( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x )
U = ( CSU SNU ), V = ( CSV SNV ), ( -SNU**H CSU ) ( -SNV**H CSV )
Q = ( CSQ SNQ ) ( -SNQ**H CSQ )
The rows of the transformed A and B are parallel. Moreover, if the input 2-by-2 matrix A is not zero, then the transformed (1,1) entry of A is not zero. If the input matrices A and B are both not zero, then the transformed (2,2) element of B is not zero, except when the first rows of input A and B are parallel and the second rows are zero.
Parameters
inupper= nonzero: the input matrices A and B are upper triangular. = 0: the input matrices A and B are lower triangular.
ina1Element of the input 2-by-2 upper (lower) triangular matrix A.
ina2Element of the input 2-by-2 upper (lower) triangular matrix A.
ina3Element of the input 2-by-2 upper (lower) triangular matrix A.
inb1Element of the input 2-by-2 upper (lower) triangular matrix B.
inb2Element of the input 2-by-2 upper (lower) triangular matrix B.
inb3Element of the input 2-by-2 upper (lower) triangular matrix B.
outcsuThe desired unitary matrix U.
outsnuThe desired unitary matrix U.
outcsvThe desired unitary matrix V.
outsnvThe desired unitary matrix V.
outcsqThe desired unitary matrix Q.
outsnqThe desired unitary matrix Q.
void zlags2(
const INT upper,
const f64 a1,
const c128 a2,
const f64 a3,
const f64 b1,
const c128 b2,
const f64 b3,
f64* csu,
c128* snu,
f64* csv,
c128* snv,
f64* csq,
c128* snq
);