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

◆ pslamch()

real function pslamch ( integer  ictxt,
character*1  cmach 
)

Definition at line 6768 of file psblastst.f.

6769*
6770* -- PBLAS test routine (version 2.0) --
6771* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
6772* and University of California, Berkeley.
6773* April 1, 1998
6774*
6775* .. Scalar Arguments ..
6776 CHARACTER*1 CMACH
6777 INTEGER ICTXT
6778* ..
6779*
6780* Purpose
6781* =======
6782*
6783* PSLAMCH determines single precision machine parameters.
6784*
6785* Arguments
6786* =========
6787*
6788* ICTXT (local input) INTEGER
6789* On entry, ICTXT specifies the BLACS context handle, indica-
6790* ting the global context of the operation. The context itself
6791* is global, but the value of ICTXT is local.
6792*
6793* CMACH (global input) CHARACTER*1
6794* On entry, CMACH specifies the value to be returned by PSLAMCH
6795* as follows:
6796* = 'E' or 'e', PSLAMCH := eps,
6797* = 'S' or 's , PSLAMCH := sfmin,
6798* = 'B' or 'b', PSLAMCH := base,
6799* = 'P' or 'p', PSLAMCH := eps*base,
6800* = 'N' or 'n', PSLAMCH := t,
6801* = 'R' or 'r', PSLAMCH := rnd,
6802* = 'M' or 'm', PSLAMCH := emin,
6803* = 'U' or 'u', PSLAMCH := rmin,
6804* = 'L' or 'l', PSLAMCH := emax,
6805* = 'O' or 'o', PSLAMCH := rmax,
6806*
6807* where
6808*
6809* eps = relative machine precision,
6810* sfmin = safe minimum, such that 1/sfmin does not overflow,
6811* base = base of the machine,
6812* prec = eps*base,
6813* t = number of (base) digits in the mantissa,
6814* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise,
6815* emin = minimum exponent before (gradual) underflow,
6816* rmin = underflow threshold - base**(emin-1),
6817* emax = largest exponent before overflow,
6818* rmax = overflow threshold - (base**emax)*(1-eps).
6819*
6820* -- Written on April 1, 1998 by
6821* Antoine Petitet, University of Tennessee, Knoxville 37996, USA.
6822*
6823* =====================================================================
6824*
6825* .. Local Scalars ..
6826 CHARACTER*1 TOP
6827 INTEGER IDUMM
6828 REAL TEMP
6829* ..
6830* .. External Subroutines ..
6831 EXTERNAL pb_topget, sgamn2d, sgamx2d
6832* ..
6833* .. External Functions ..
6834 LOGICAL LSAME
6835 REAL SLAMCH
6836 EXTERNAL lsame, slamch
6837* ..
6838* .. Executable Statements ..
6839*
6840 temp = slamch( cmach )
6841*
6842 IF( lsame( cmach, 'E' ).OR.lsame( cmach, 'S' ).OR.
6843 $ lsame( cmach, 'M' ).OR.lsame( cmach, 'U' ) ) THEN
6844 CALL pb_topget( ictxt, 'Combine', 'All', top )
6845 idumm = 0
6846 CALL sgamx2d( ictxt, 'All', top, 1, 1, temp, 1, idumm,
6847 $ idumm, -1, -1, idumm )
6848 ELSE IF( lsame( cmach, 'L' ).OR.lsame( cmach, 'O' ) ) THEN
6849 CALL pb_topget( ictxt, 'Combine', 'All', top )
6850 idumm = 0
6851 CALL sgamn2d( ictxt, 'All', top, 1, 1, temp, 1, idumm,
6852 $ idumm, -1, -1, idumm )
6853 END IF
6854*
6855 pslamch = temp
6856*
6857 RETURN
6858*
6859* End of PSLAMCH
6860*
real function pslamch(ictxt, cmach)
Definition pcblastst.f:7455
logical function lsame(ca, cb)
Definition tools.f:1724
real function slamch(cmach)
Definition tools.f:867
Here is the call graph for this function: