github.com/gopherd/gonum@v0.0.4/mathext/internal/amos/amoslib/zuchk.f (about)

     1        SUBROUTINE ZUCHK(YR, YI, NZ, ASCLE, TOL)
     2  C***BEGIN PROLOGUE  ZUCHK
     3  C***REFER TO ZSERI,ZUOIK,ZUNK1,ZUNK2,ZUNI1,ZUNI2,ZKSCL
     4  C
     5  C      Y ENTERS AS A SCALED QUANTITY WHOSE MAGNITUDE IS GREATER THAN
     6  C      EXP(-ALIM)=ASCLE=1.0E+3*D1MACH(1)/TOL. THE TEST IS MADE TO SEE
     7  C      IF THE MAGNITUDE OF THE REAL OR IMAGINARY PART WOULD UNDERFLOW
     8  C      WHEN Y IS SCALED (BY TOL) TO ITS PROPER VALUE. Y IS ACCEPTED
     9  C      IF THE UNDERFLOW IS AT LEAST ONE PRECISION BELOW THE MAGNITUDE
    10  C      OF THE LARGEST COMPONENT; OTHERWISE THE PHASE ANGLE DOES NOT HAVE
    11  C      ABSOLUTE ACCURACY AND AN UNDERFLOW IS ASSUMED.
    12  C
    13  C***ROUTINES CALLED  (NONE)
    14  C***END PROLOGUE  ZUCHK
    15  C
    16  C     COMPLEX Y
    17        DOUBLE PRECISION ASCLE, SS, ST, TOL, WR, WI, YR, YI
    18        INTEGER NZ
    19        NZ = 0
    20        WR = DABS(YR)
    21        WI = DABS(YI)
    22        ST = DMIN1(WR,WI)
    23        IF (ST.GT.ASCLE) RETURN
    24        SS = DMAX1(WR,WI)
    25        ST = ST/TOL
    26        IF (SS.LT.ST) NZ = 1
    27        RETURN
    28        END