public interface geequb
GEEQUB computes row and column scalings intended to equilibrate an
M-by-N matrix A and reduce its condition number. R returns the row
scale factors and C the column scale factors, chosen to try to make
the largest element in each row and column of the matrix B with
elements B(i,j)=R(i)A(i,j)C(j) have an absolute value of at most
the radix.
R(i) and C(j) are restricted to be a power of the radix between
SMLNUM = smallest safe number and BIGNUM = largest safe number. Use
of these scaling factors is not guaranteed to reduce the condition
number of A but works well in practice.
This routine differs from CGEEQU by restricting the scaling factors
to a power of the radix. Barring over- and underflow, scaling by
these factors introduces no additional rounding errors. However, the
scaled entries' magnitudes are no longer approximately 1 but lie
between sqrt(radix) and 1/sqrt(radix).
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=sp),
|
intent(in) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
r(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
c(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
rowcnd |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
colcnd |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
amax |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
r(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
c(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
rowcnd |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
colcnd |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
amax |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
r(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
c(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
rowcnd |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
colcnd |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
amax |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=dp),
|
intent(in) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
r(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
c(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
rowcnd |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
colcnd |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
amax |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures