dlarmm function
Implementation
double dlarmm(
final double ANORM,
final double BNORM,
final double CNORM,
) {
const ONE = 1.0, HALF = 0.5, FOUR = 4.0;
double BIGNUM, SMLNUM;
// Determine machine dependent parameters to control overflow.
SMLNUM = dlamch('Safe minimum') / dlamch('Precision');
BIGNUM = (ONE / SMLNUM) / FOUR;
// Compute a scale factor.
if (BNORM <= ONE) {
if (ANORM * BNORM > BIGNUM - CNORM) {
return HALF;
}
} else {
if (ANORM > (BIGNUM - CNORM) / BNORM) {
return HALF / BNORM;
}
}
return ONE;
}