geequ#
Functions
-
void sgeequ(const INT m, const INT n, const f32 *restrict A, const INT lda, f32 *restrict R, f32 *restrict C, f32 *rowcnd, f32 *colcnd, f32 *amax, INT *info)#
SGEEQU computes row and column scalings intended to equilibrate an
m-by-nmatrixAand reduce its condition number.Rreturns the row scale factors andCthe column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elementsB(i,j)=R(i)*A(i,j)*C(j)have absolute value 1.R(i)andC(j)are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number ofAbut works well in practice.Parameters
inmThe number of rows of the matrix
A.m>=0.innThe number of columns of the matrix
A.n>=0.inAArray of dimension (
lda,n). Them-by-nmatrix whose equilibration factors are to be computed.inldaThe leading dimension of the array
A.lda>=max(1,m).outRArray of dimension
m. Ifinfo=0orinfo>m,Rcontains the row scale factors forA.outCArray of dimension
n. Ifinfo=0,Ccontains the column scale factors forA.outrowcndIf
info=0orinfo>m,rowcndcontains the ratio of the smallest R(i) to the largest R(i). Ifrowcnd>=0.1andamaxis neither too large nor too small, it is not worth scaling byR.outcolcndIf
info=0,colcndcontains the ratio of the smallest C(j) to the largest C(j). Ifcolcnd>=0.1, it is not worth scaling byC.outamaxAbsolute value of largest matrix element. If
amaxis very close to overflow or very close to underflow, the matrix should be scaled.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal valueinfo>0: ifinfo=i, and i isi<=m: the i-th row ofAis exactly zero (1-based)i>m: the (i-m)-th column ofAis exactly zero (1-based)
void sgeequ(
const INT m,
const INT n,
const f32* restrict A,
const INT lda,
f32* restrict R,
f32* restrict C,
f32* rowcnd,
f32* colcnd,
f32* amax,
INT* info
);
Functions
-
void dgeequ(const INT m, const INT n, const f64 *restrict A, const INT lda, f64 *restrict R, f64 *restrict C, f64 *rowcnd, f64 *colcnd, f64 *amax, INT *info)#
DGEEQU computes row and column scalings intended to equilibrate an
m-by-nmatrixAand reduce its condition number.Rreturns the row scale factors andCthe column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elementsB(i,j)=R(i)*A(i,j)*C(j)have absolute value 1.R(i)andC(j)are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number ofAbut works well in practice.Parameters
inmThe number of rows of the matrix
A.m>=0.innThe number of columns of the matrix
A.n>=0.inAArray of dimension (
lda,n). Them-by-nmatrix whose equilibration factors are to be computed.inldaThe leading dimension of the array
A.lda>=max(1,m).outRArray of dimension
m. Ifinfo=0orinfo>m,Rcontains the row scale factors forA.outCArray of dimension
n. Ifinfo=0,Ccontains the column scale factors forA.outrowcndIf
info=0orinfo>m,rowcndcontains the ratio of the smallest R(i) to the largest R(i). Ifrowcnd>=0.1andamaxis neither too large nor too small, it is not worth scaling byR.outcolcndIf
info=0,colcndcontains the ratio of the smallest C(j) to the largest C(j). Ifcolcnd>=0.1, it is not worth scaling byC.outamaxAbsolute value of largest matrix element. If
amaxis very close to overflow or very close to underflow, the matrix should be scaled.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal valueinfo>0: ifinfo=i, and i isi<=m: the i-th row ofAis exactly zero (1-based)i>m: the (i-m)-th column ofAis exactly zero (1-based)
void dgeequ(
const INT m,
const INT n,
const f64* restrict A,
const INT lda,
f64* restrict R,
f64* restrict C,
f64* rowcnd,
f64* colcnd,
f64* amax,
INT* info
);
Functions
-
void cgeequ(const INT m, const INT n, const c64 *restrict A, const INT lda, f32 *restrict R, f32 *restrict C, f32 *rowcnd, f32 *colcnd, f32 *amax, INT *info)#
CGEEQU computes row and column scalings intended to equilibrate an
m-by-nmatrixAand reduce its condition number.Rreturns the row scale factors andCthe column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elementsB(i,j)=R(i)*A(i,j)*C(j)have absolute value 1.R(i)andC(j)are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number ofAbut works well in practice.Parameters
inmThe number of rows of the matrix
A.m>=0.innThe number of columns of the matrix
A.n>=0.inAArray of dimension (
lda,n). Them-by-nmatrix whose equilibration factors are to be computed.inldaThe leading dimension of the array
A.lda>=max(1,m).outRArray of dimension
m. Ifinfo=0orinfo>m,Rcontains the row scale factors forA.outCArray of dimension
n. Ifinfo=0,Ccontains the column scale factors forA.outrowcndIf
info=0orinfo>m,rowcndcontains the ratio of the smallest R(i) to the largest R(i). Ifrowcnd>=0.1andamaxis neither too large nor too small, it is not worth scaling byR.outcolcndIf
info=0,colcndcontains the ratio of the smallest C(j) to the largest C(j). Ifcolcnd>=0.1, it is not worth scaling byC.outamaxAbsolute value of largest matrix element. If
amaxis very close to overflow or very close to underflow, the matrix should be scaled.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal valueinfo>0: ifinfo=i, and i isi<=m: the i-th row ofAis exactly zero (1-based)i>m: the (i-m)-th column ofAis exactly zero (1-based)
void cgeequ(
const INT m,
const INT n,
const c64* restrict A,
const INT lda,
f32* restrict R,
f32* restrict C,
f32* rowcnd,
f32* colcnd,
f32* amax,
INT* info
);
Functions
-
void zgeequ(const INT m, const INT n, const c128 *restrict A, const INT lda, f64 *restrict R, f64 *restrict C, f64 *rowcnd, f64 *colcnd, f64 *amax, INT *info)#
ZGEEQU computes row and column scalings intended to equilibrate an
m-by-nmatrixAand reduce its condition number.Rreturns the row scale factors andCthe column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elementsB(i,j)=R(i)*A(i,j)*C(j)have absolute value 1.R(i)andC(j)are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number ofAbut works well in practice.Parameters
inmThe number of rows of the matrix
A.m>=0.innThe number of columns of the matrix
A.n>=0.inAArray of dimension (
lda,n). Them-by-nmatrix whose equilibration factors are to be computed.inldaThe leading dimension of the array
A.lda>=max(1,m).outRArray of dimension
m. Ifinfo=0orinfo>m,Rcontains the row scale factors forA.outCArray of dimension
n. Ifinfo=0,Ccontains the column scale factors forA.outrowcndIf
info=0orinfo>m,rowcndcontains the ratio of the smallest R(i) to the largest R(i). Ifrowcnd>=0.1andamaxis neither too large nor too small, it is not worth scaling byR.outcolcndIf
info=0,colcndcontains the ratio of the smallest C(j) to the largest C(j). Ifcolcnd>=0.1, it is not worth scaling byC.outamaxAbsolute value of largest matrix element. If
amaxis very close to overflow or very close to underflow, the matrix should be scaled.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal valueinfo>0: ifinfo=i, and i isi<=m: the i-th row ofAis exactly zero (1-based)i>m: the (i-m)-th column ofAis exactly zero (1-based)
void zgeequ(
const INT m,
const INT n,
const c128* restrict A,
const INT lda,
f64* restrict R,
f64* restrict C,
f64* rowcnd,
f64* colcnd,
f64* amax,
INT* info
);