laev2#
Functions
-
void slaev2(const f32 a, const f32 b, const f32 c, f32 *rt1, f32 *rt2, f32 *cs1, f32 *sn1)#
SLAEV2 computes the eigendecomposition of a 2-by-2 symmetric matrix [ A B ] [ B C ].
On return, RT1 is the eigenvalue of larger absolute value, RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right eigenvector for RT1, giving the decomposition
[ CS1 SN1 ] [ A B ] [ CS1 -SN1 ] = [ RT1 0 ] [-SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ].
Parameters
inaThe (1,1) element of the 2-by-2 matrix.
inbThe (1,2) element of the 2-by-2 matrix.
incThe (2,2) element of the 2-by-2 matrix.
outrt1The eigenvalue of larger absolute value.
outrt2The eigenvalue of smaller absolute value.
outcs1The cosine of the rotation.
outsn1The sine of the rotation. The vector (CS1, SN1) is a unit right eigenvector for RT1.
void slaev2(
const f32 a,
const f32 b,
const f32 c,
f32* rt1,
f32* rt2,
f32* cs1,
f32* sn1
);
Functions
-
void dlaev2(const f64 a, const f64 b, const f64 c, f64 *rt1, f64 *rt2, f64 *cs1, f64 *sn1)#
DLAEV2 computes the eigendecomposition of a 2-by-2 symmetric matrix [ A B ] [ B C ].
On return, RT1 is the eigenvalue of larger absolute value, RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right eigenvector for RT1, giving the decomposition
[ CS1 SN1 ] [ A B ] [ CS1 -SN1 ] = [ RT1 0 ] [-SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ].
Parameters
inaThe (1,1) element of the 2-by-2 matrix.
inbThe (1,2) element of the 2-by-2 matrix.
incThe (2,2) element of the 2-by-2 matrix.
outrt1The eigenvalue of larger absolute value.
outrt2The eigenvalue of smaller absolute value.
outcs1The cosine of the rotation.
outsn1The sine of the rotation. The vector (CS1, SN1) is a unit right eigenvector for RT1.
void dlaev2(
const f64 a,
const f64 b,
const f64 c,
f64* rt1,
f64* rt2,
f64* cs1,
f64* sn1
);
Functions
-
void claev2(const c64 a, const c64 b, const c64 c, f32 *rt1, f32 *rt2, f32 *cs1, c64 *sn1)#
CLAEV2 computes the eigendecomposition of a 2-by-2 Hermitian matrix [ A B ] [ CONJG(B) C ].
On return, RT1 is the eigenvalue of larger absolute value, RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right eigenvector for RT1, giving the decomposition
[ CS1 CONJG(SN1) ] [ A B ] [ CS1 -CONJG(SN1) ] = [ RT1 0 ] [-SN1 CS1 ] [ CONJG(B) C ] [ SN1 CS1 ] [ 0 RT2 ].
Parameters
inaThe (1,1) element of the 2-by-2 matrix.
inbThe (1,2) element and the conjugate of the (2,1) element of the 2-by-2 matrix.
incThe (2,2) element of the 2-by-2 matrix.
outrt1The eigenvalue of larger absolute value.
outrt2The eigenvalue of smaller absolute value.
outcs1The cosine of the rotation.
outsn1The vector (CS1, SN1) is a unit right eigenvector for RT1.
void claev2(
const c64 a,
const c64 b,
const c64 c,
f32* rt1,
f32* rt2,
f32* cs1,
c64* sn1
);
Functions
-
void zlaev2(const c128 a, const c128 b, const c128 c, f64 *rt1, f64 *rt2, f64 *cs1, c128 *sn1)#
ZLAEV2 computes the eigendecomposition of a 2-by-2 Hermitian matrix [ A B ] [ CONJG(B) C ].
On return, RT1 is the eigenvalue of larger absolute value, RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right eigenvector for RT1, giving the decomposition
[ CS1 CONJG(SN1) ] [ A B ] [ CS1 -CONJG(SN1) ] = [ RT1 0 ] [-SN1 CS1 ] [ CONJG(B) C ] [ SN1 CS1 ] [ 0 RT2 ].
Parameters
inaThe (1,1) element of the 2-by-2 matrix.
inbThe (1,2) element and the conjugate of the (2,1) element of the 2-by-2 matrix.
incThe (2,2) element of the 2-by-2 matrix.
outrt1The eigenvalue of larger absolute value.
outrt2The eigenvalue of smaller absolute value.
outcs1The cosine of the rotation.
outsn1The vector (CS1, SN1) is a unit right eigenvector for RT1.
void zlaev2(
const c128 a,
const c128 b,
const c128 c,
f64* rt1,
f64* rt2,
f64* cs1,
c128* sn1
);