laqhp#

Functions

void claqhp(
    const char*          uplo,
    const INT            n,
          c64*  restrict AP,
    const f32*  restrict S,
    const f32            scond,
    const f32            amax,
          char*          equed
);
void claqhp(const char *uplo, const INT n, c64 *restrict AP, const f32 *restrict S, const f32 scond, const f32 amax, char *equed)#

CLAQHP equilibrates a Hermitian matrix A using the scaling factors in the vector S.

Internal Parameters:

THRESH decides whether to scale based on the ratio of the scaling factors: scaling is performed when scond<THRESH. LARGE and SMALL decide whether to scale based on the absolute size of the largest matrix element: scaling is performed when amax>LARGE or amax<SMALL.

Parameters

in
uplo

  • 'U': Upper triangular part of A is stored

  • 'L': Lower triangular part of A is stored

in
n

The order of the matrix A. n>=0.

inout
AP

On entry, the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows: if uplo='U', AP[i + j*(j+1)/2] = A(i,j) for 0<=i<=j; if uplo='L', AP[i - j + j*(2*n-j+1)/2] = A(i,j) for j<=i<n. On exit, the equilibrated matrix: diag(S) * A * diag(S), in the same storage format as A. Array of dimension n*(n+1)/2.

in
S

The scale factors for A. Array of dimension n.

in
scond

Ratio of the smallest S(i) to the largest S(i).

in
amax

Absolute value of largest matrix entry.

out
equed

  • 'N': No equilibration

  • 'Y': Equilibration was done, i.e., A has been replaced by diag(S) * A * diag(S).

Functions

void zlaqhp(
    const char*          uplo,
    const INT            n,
          c128* restrict AP,
    const f64*  restrict S,
    const f64            scond,
    const f64            amax,
          char*          equed
);
void zlaqhp(const char *uplo, const INT n, c128 *restrict AP, const f64 *restrict S, const f64 scond, const f64 amax, char *equed)#

ZLAQHP equilibrates a Hermitian matrix A using the scaling factors in the vector S.

Internal Parameters:

THRESH decides whether to scale based on the ratio of the scaling factors: scaling is performed when scond<THRESH. LARGE and SMALL decide whether to scale based on the absolute size of the largest matrix element: scaling is performed when amax>LARGE or amax<SMALL.

Parameters

in
uplo

  • 'U': Upper triangular part of A is stored

  • 'L': Lower triangular part of A is stored

in
n

The order of the matrix A. n>=0.

inout
AP

On entry, the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows: if uplo='U', AP[i + j*(j+1)/2] = A(i,j) for 0<=i<=j; if uplo='L', AP[i - j + j*(2*n-j+1)/2] = A(i,j) for j<=i<n. On exit, the equilibrated matrix: diag(S) * A * diag(S), in the same storage format as A. Array of dimension n*(n+1)/2.

in
S

The scale factors for A. Array of dimension n.

in
scond

Ratio of the smallest S(i) to the largest S(i).

in
amax

Absolute value of largest matrix entry.

out
equed

  • 'N': No equilibration

  • 'Y': Equilibration was done, i.e., A has been replaced by diag(S) * A * diag(S).