SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ dlamc4()

subroutine dlamc4 ( integer  emin,
double precision  start,
integer  base 
)

Definition at line 623 of file tools.f.

624*
625* -- LAPACK auxiliary routine (version 2.0) --
626* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
627* Courant Institute, Argonne National Lab, and Rice University
628* October 31, 1992
629*
630* .. Scalar Arguments ..
631 INTEGER BASE, EMIN
632 DOUBLE PRECISION START
633* ..
634*
635* Purpose
636* =======
637*
638* DLAMC4 is a service routine for DLAMC2.
639*
640* Arguments
641* =========
642*
643* EMIN (output) EMIN
644* The minimum exponent before (gradual) underflow, computed by
645* setting A = START and dividing by BASE until the previous A
646* can not be recovered.
647*
648* START (input) DOUBLE PRECISION
649* The starting point for determining EMIN.
650*
651* BASE (input) INTEGER
652* The base of the machine.
653*
654* =====================================================================
655*
656* .. Local Scalars ..
657 INTEGER I
658 DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO
659* ..
660* .. External Functions ..
661 DOUBLE PRECISION DLAMC3
662 EXTERNAL dlamc3
663* ..
664* .. Executable Statements ..
665*
666 a = start
667 one = 1
668 rbase = one / base
669 zero = 0
670 emin = 1
671 b1 = dlamc3( a*rbase, zero )
672 c1 = a
673 c2 = a
674 d1 = a
675 d2 = a
676*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
677* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
678 10 CONTINUE
679 IF( ( c1.EQ.a ) .AND. ( c2.EQ.a ) .AND. ( d1.EQ.a ) .AND.
680 $ ( d2.EQ.a ) ) THEN
681 emin = emin - 1
682 a = b1
683 b1 = dlamc3( a / base, zero )
684 c1 = dlamc3( b1*base, zero )
685 d1 = zero
686 DO 20 i = 1, base
687 d1 = d1 + b1
688 20 CONTINUE
689 b2 = dlamc3( a*rbase, zero )
690 c2 = dlamc3( b2 / rbase, zero )
691 d2 = zero
692 DO 30 i = 1, base
693 d2 = d2 + b2
694 30 CONTINUE
695 GO TO 10
696 END IF
697*+ END WHILE
698*
699 RETURN
700*
701* End of DLAMC4
702*
double precision function dlamc3(a, b)
Definition tools.f:586
Here is the caller graph for this function: