LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ slarmm()

real function slarmm ( real  anorm,
real  bnorm,
real  cnorm 
)

SLARMM

Purpose:
 SLARMM returns a factor s in (0, 1] such that the linear updates

    (s * C) - A * (s * B)  and  (s * C) - (s * A) * B

 cannot overflow, where A, B, and C are matrices of conforming
 dimensions.

 This is an auxiliary routine so there is no argument checking.
Parameters
[in]ANORM
          ANORM is REAL
          The infinity norm of A. ANORM >= 0.
          The number of rows of the matrix A.  M >= 0.
[in]BNORM
          BNORM is REAL
          The infinity norm of B. BNORM >= 0.
[in]CNORM
          CNORM is REAL
          The infinity norm of C. CNORM >= 0.
References: C. C. Kjelgaard Mikkelsen and L. Karlsson, Blocked Algorithms for Robust Solution of Triangular Linear Systems. In: International Conference on Parallel Processing and Applied Mathematics, pages 68–78. Springer, 2017.

Definition at line 60 of file slarmm.f.

61 IMPLICIT NONE
62* .. Scalar Arguments ..
63 REAL ANORM, BNORM, CNORM
64* .. Parameters ..
65 REAL ONE, HALF, FOUR
66 parameter( one = 1.0e0, half = 0.5e+0, four = 4.0e+0 )
67* ..
68* .. Local Scalars ..
69 REAL BIGNUM, SMLNUM
70* ..
71* .. External Functions ..
72 REAL SLAMCH
73 EXTERNAL slamch
74* ..
75* .. Executable Statements ..
76*
77*
78* Determine machine dependent parameters to control overflow.
79*
80 smlnum = slamch( 'Safe minimum' ) / slamch( 'Precision' )
81 bignum = ( one / smlnum ) / four
82*
83* Compute a scale factor.
84*
85 slarmm = one
86 IF( bnorm .LE. one ) THEN
87 IF( anorm * bnorm .GT. bignum - cnorm ) THEN
88 slarmm = half
89 END IF
90 ELSE
91 IF( anorm .GT. (bignum - cnorm) / bnorm ) THEN
92 slarmm = half / bnorm
93 END IF
94 END IF
95 RETURN
96*
97* ==== End of SLARMM ====
98*
real function slamch(cmach)
SLAMCH
Definition slamch.f:68
real function slarmm(anorm, bnorm, cnorm)
SLARMM
Definition slarmm.f:61
Here is the call graph for this function:
Here is the caller graph for this function: