laev2#

Functions

void slaev2(
    const f32  a,
    const f32  b,
    const f32  c,
          f32* rt1,
          f32* rt2,
          f32* cs1,
          f32* sn1
);
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

in
a

The (1,1) element of the 2-by-2 matrix.

in
b

The (1,2) element of the 2-by-2 matrix.

in
c

The (2,2) element of the 2-by-2 matrix.

out
rt1

The eigenvalue of larger absolute value.

out
rt2

The eigenvalue of smaller absolute value.

out
cs1

The cosine of the rotation.

out
sn1

The sine of the rotation. The vector (CS1, SN1) is a unit right eigenvector for RT1.

Functions

void dlaev2(
    const f64  a,
    const f64  b,
    const f64  c,
          f64* rt1,
          f64* rt2,
          f64* cs1,
          f64* sn1
);
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

in
a

The (1,1) element of the 2-by-2 matrix.

in
b

The (1,2) element of the 2-by-2 matrix.

in
c

The (2,2) element of the 2-by-2 matrix.

out
rt1

The eigenvalue of larger absolute value.

out
rt2

The eigenvalue of smaller absolute value.

out
cs1

The cosine of the rotation.

out
sn1

The sine of the rotation. The vector (CS1, SN1) is a unit right eigenvector for RT1.

Functions

void claev2(
    const c64  a,
    const c64  b,
    const c64  c,
          f32* rt1,
          f32* rt2,
          f32* cs1,
          c64* sn1
);
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

in
a

The (1,1) element of the 2-by-2 matrix.

in
b

The (1,2) element and the conjugate of the (2,1) element of the 2-by-2 matrix.

in
c

The (2,2) element of the 2-by-2 matrix.

out
rt1

The eigenvalue of larger absolute value.

out
rt2

The eigenvalue of smaller absolute value.

out
cs1

The cosine of the rotation.

out
sn1

The vector (CS1, SN1) is a unit right eigenvector for RT1.

Functions

void zlaev2(
    const c128  a,
    const c128  b,
    const c128  c,
          f64*  rt1,
          f64*  rt2,
          f64*  cs1,
          c128* sn1
);
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

in
a

The (1,1) element of the 2-by-2 matrix.

in
b

The (1,2) element and the conjugate of the (2,1) element of the 2-by-2 matrix.

in
c

The (2,2) element of the 2-by-2 matrix.

out
rt1

The eigenvalue of larger absolute value.

out
rt2

The eigenvalue of smaller absolute value.

out
cs1

The cosine of the rotation.

out
sn1

The vector (CS1, SN1) is a unit right eigenvector for RT1.