|
|
| |
| # lines: |
82 | | # code: |
82 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 7 |
| # Callers: | 50 |
| # Callings: | 0 |
| # Words: | 28 |
| # Keywords: | 22 |
|
|
|
|
|
..
Purpose
=======
PSLAMCH determines single precision machine parameters.
Arguments
=========
ICTXT (global input) INTEGER
The BLACS context handle in which the computation takes
place.
CMACH (global input) CHARACTER*1
Specifies the value to be returned by PSLAMCH:
= 'E' or 'e', PSLAMCH := eps
= 'S' or 's , PSLAMCH := sfmin
= 'B' or 'b', PSLAMCH := base
= 'P' or 'p', PSLAMCH := eps*base
= 'N' or 'n', PSLAMCH := t
= 'R' or 'r', PSLAMCH := rnd
= 'M' or 'm', PSLAMCH := emin
= 'U' or 'u', PSLAMCH := rmin
= 'L' or 'l', PSLAMCH := emax
= 'O' or 'o', PSLAMCH := rmax
where
eps = relative machine precision
sfmin = safe minimum, such that 1/sfmin does not overflow
base = base of the machine
prec = eps*base
t = number of (base) digits in the mantissa
rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
emin = minimum exponent before (gradual) underflow
rmin = underflow threshold - base**(emin-1)
emax = largest exponent before overflow
rmax = overflow threshold - (base**emax)*(1-eps)
=====================================================================
.. Local Scalars ..
|
|
|
|
01 REAL FUNCTION PSLAMCH( ICTXT , CMACH )
02
03 * -- ScaLAPACK auxiliary routine(version 1.7) --
04 * University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
05 * and University of California , Berkeley.
06 * May 1 , 1997
07
08 * .. Scalar Arguments ..
09 CHARACTER CMACH
10 INTEGER ICTXT
11 INTEGER IDUMM
12 REAL TEMP
13 * ..
14 * .. External Subroutines ..
15 EXTERNAL SGAMN2D , SGAMX2D
16 * ..
17 * .. External Functions ..
18 LOGICAL LSAME
19 REAL SLAMCH
20 EXTERNAL LSAME , SLAMCH
21 * ..
22 * .. Executable Statements ..
23
24 TEMP = SLAMCH( CMACH )
25
26 IF( LSAME( CMACH , 'E' ).OR.LSAME( CMACH , 'S' ).OR.
27 $LSAME( CMACH , 'M' ).OR.LSAME( CMACH , 'U' ) ) THEN
28 CALL SGAMX2D( ICTXT , 'All' , ' ' , 1 , 1 , TEMP , 1 , IDUMM ,
29 $IDUMM , - 1 , - 1 , IDUMM )
30 ELSE IF( LSAME( CMACH , 'L' ).OR.LSAME( CMACH , 'O' ) ) THEN
30
31 CALL SGAMN2D( ICTXT , 'All' , ' ' , 1 , 1 , TEMP , 1 , IDUMM ,
32 $ IDUMM , - 1 , - 1 , IDUMM )
33 END IF
34
35 PSLAMCH = TEMP
36
37 * End of PSLAMCH
38
39 END7
1
|
|
Variables in Routine PSLAMCH()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| CHARACTER | 1 | 1 |
| INTEGER | 2 | 8 |
| LOGICAL | 1 | 1 |
| REAL | 3 | 12 |
| TOTAL | 7 | 22 |
List of Variables
CHARACTER
INTEGER
LOGICAL
REAL
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | PSLAMCH | <--- | TEMPPSLAMCH = TEMP |
| TEMP | <--- | CMACHTEMP = SLAMCH( CMACH ), SLAMCHTEMP = SLAMCH( CMACH ) |
|
|
Analysis elements of the routine PSLAMCH() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | PSLAMCH , TEMP |
|
Active variables |
| | | CMACH , ICTXT , IDUMM , LSAME , PSLAMCH , SLAMCH , TEMP |
|
Accessed arrays [ array name : associated index ] |
| | LSAME | : CMACH, 'E' , CMACH, 'L' , CMACH, 'M' , CMACH, 'O' , CMACH, 'S' , CMACH, 'U' |
| | PSLAMCH | : ICTXT, CMACH |
| | SLAMCH | : CMACH |
|
Conditional statements [ statement : associated predicate ] |
| | if | : ( (LSAME( CMACH , 'E' ).OR.LSAME( CMACH , 'S' ).OR. ) , ( (LSAME( CMACH , 'L' ).OR.LSAME( CMACH , 'O' ) ) ) |
|
| List of variables | CMACH ICTXT IDUMM LSAME PSLAMCH SLAMCH TEMP | | close
| |
CMACH
ICTXT
IDUMM
LSAME
PSLAMCH
SLAMCH
TEMP
| |