|
|
| |
| # lines: |
82 | | # code: |
82 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 7 |
| # Callers: | 50 |
| # Callings: | 0 |
| # Words: | 31 |
| # Keywords: | 22 |
|
|
|
|
|
..
Purpose
=======
PDLAMCH determines double 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 PDLAMCH:
= 'E' or 'e', PDLAMCH := eps
= 'S' or 's , PDLAMCH := sfmin
= 'B' or 'b', PDLAMCH := base
= 'P' or 'p', PDLAMCH := eps*base
= 'N' or 'n', PDLAMCH := t
= 'R' or 'r', PDLAMCH := rnd
= 'M' or 'm', PDLAMCH := emin
= 'U' or 'u', PDLAMCH := rmin
= 'L' or 'l', PDLAMCH := emax
= 'O' or 'o', PDLAMCH := 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 DOUBLE PRECISION FUNCTION PDLAMCH( 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 DOUBLE PRECISION TEMP
13 * ..
14 * .. External Subroutines ..
15 EXTERNAL DGAMN2D , DGAMX2D
16 * ..
17 * .. External Functions ..
18 LOGICAL LSAME
19 DOUBLE PRECISION DLAMCH
20 EXTERNAL DLAMCH , LSAME
21 * ..
22 * .. Executable Statements ..
23
24 TEMP = DLAMCH( CMACH )
25
26 IF( LSAME( CMACH , 'E' ).OR.LSAME( CMACH , 'S' ).OR.
27 $LSAME( CMACH , 'M' ).OR.LSAME( CMACH , 'U' ) ) THEN
28 CALL DGAMX2D( 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 DGAMN2D( ICTXT , 'All' , ' ' , 1 , 1 , TEMP , 1 , IDUMM ,
32 $ IDUMM , - 1 , - 1 , IDUMM )
33 END IF
34
35 PDLAMCH = TEMP
36
37 * End of PDLAMCH
38
39 END7
1
|
|
Variables in Routine PDLAMCH()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| CHARACTER | 1 | 1 |
| DOUBLE PRECISION | 2 | 8 |
| INTEGER | 2 | 8 |
| LOGICAL | 1 | 1 |
| REAL | 1 | 4 |
| TOTAL | 7 | 22 |
List of Variables
CHARACTER
DOUBLE PRECISION
INTEGER
LOGICAL
REAL
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | PDLAMCH | <--- | TEMPPDLAMCH = TEMP |
| TEMP | <--- | CMACHTEMP = DLAMCH( CMACH ), DLAMCHTEMP = DLAMCH( CMACH ) |
|
|
Analysis elements of the routine PDLAMCH() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | PDLAMCH , TEMP |
|
Active variables |
| | | CMACH , DLAMCH , ICTXT , IDUMM , LSAME , PDLAMCH , TEMP |
|
Accessed arrays [ array name : associated index ] |
| | DLAMCH | : CMACH |
| | LSAME | : CMACH, 'E' , CMACH, 'L' , CMACH, 'M' , CMACH, 'O' , CMACH, 'S' , CMACH, 'U' |
| | PDLAMCH | : ICTXT, 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 DLAMCH ICTXT IDUMM LSAME PDLAMCH TEMP | | close
| |
CMACH
DLAMCH
ICTXT
IDUMM
LSAME
PDLAMCH
TEMP
| |