|
kusano |
7d535a |
|
|
kusano |
7d535a |
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
|
|
kusano |
7d535a |
<title>SuperLU: SRC/dlamch.c File Reference</title>
|
|
kusano |
7d535a |
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
kusano |
7d535a |
<link href="tabs.css" rel="stylesheet" type="text/css">
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Main Page
|
|
kusano |
7d535a |
Data Structures
|
|
kusano |
7d535a |
Files
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
SRC/dlamch.c File ReferenceDetermines double precision machine parameters. More...
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#include <stdio.h>
|
|
kusano |
7d535a |
#include "slu_Cnames.h"
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Defines
|
|
kusano |
7d535a |
#define TRUE_ (1)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define FALSE_ (0)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define abs(x) ((x) >= 0 ? (x) : -(x))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define min(a, b) ((a) <= (b) ? (a) : (b))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define max(a, b) ((a) >= (b) ? (a) : (b))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Functions
|
|
kusano |
7d535a |
double dlamch_ (char *cmach)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc1_ (int *beta, int *t, int *rnd, int *ieee1)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc2_ (int *beta, int *t, int *rnd, double *eps, int *emin, double *rmin, int *emax, double *rmax)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double dlamc3_ (double *a, double *b)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc4_ (int *emin, double *start, int *base)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc5_ (int *beta, int *p, int *emin, int *ieee, int *emax, double *rmax)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double pow_di (double *ap, int *bp)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Detailed Description
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
-- LAPACK auxiliary routine (version 2.0) --
|
|
kusano |
7d535a |
Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
|
|
kusano |
7d535a |
Courant Institute, Argonne National Lab, and Rice University
|
|
kusano |
7d535a |
October 31, 1992
|
|
kusano |
7d535a |
Define Documentation
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define abs
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
x
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
((x) >= 0 ? (x) : -(x))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define FALSE_ (0)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define max
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
a,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
b
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
((a) >= (b) ? (a) : (b))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define min
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
a,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
b
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
((a) <= (b) ? (a) : (b))
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
#define TRUE_ (1)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Function Documentation
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc1_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
beta,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
t,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
rnd,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
ieee1
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMC1 determines the machine parameters given by BETA, T, RND, and
|
|
kusano |
7d535a |
IEEE1.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
BETA (output) INT
|
|
kusano |
7d535a |
The base of the machine.
|
|
kusano |
7d535a |
T (output) INT
|
|
kusano |
7d535a |
The number of ( BETA ) digits in the mantissa.
|
|
kusano |
7d535a |
RND (output) INT
|
|
kusano |
7d535a |
Specifies whether proper rounding ( RND = .TRUE. ) or
|
|
kusano |
7d535a |
chopping ( RND = .FALSE. ) occurs in addition. This may not
|
|
kusano |
7d535a |
be a reliable guide to the way in which the machine performs
|
|
kusano |
7d535a |
its arithmetic.
|
|
kusano |
7d535a |
IEEE1 (output) INT
|
|
kusano |
7d535a |
Specifies whether rounding appears to be done in the IEEE
|
|
kusano |
7d535a |
'round to nearest' style.
|
|
kusano |
7d535a |
Further Details
|
|
kusano |
7d535a |
===============
|
|
kusano |
7d535a |
The routine is based on the routine ENVRON by Malcolm and
|
|
kusano |
7d535a |
incorporates suggestions by Gentleman and Marovich. See
|
|
kusano |
7d535a |
Malcolm M. A. (1972) Algorithms to reveal properties of
|
|
kusano |
7d535a |
floating-point arithmetic. Comms. of the ACM, 15, 949-951.
|
|
kusano |
7d535a |
Gentleman W. M. and Marovich S. B. (1974) More on algorithms
|
|
kusano |
7d535a |
that reveal properties of floating point arithmetic units.
|
|
kusano |
7d535a |
Comms. of the ACM, 17, 276-277.
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc2_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
beta,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
t,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
rnd,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
eps,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
emin,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
rmin,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
emax,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
rmax
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMC2 determines the machine parameters specified in its argument
|
|
kusano |
7d535a |
list.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
BETA (output) INT
|
|
kusano |
7d535a |
The base of the machine.
|
|
kusano |
7d535a |
T (output) INT
|
|
kusano |
7d535a |
The number of ( BETA ) digits in the mantissa.
|
|
kusano |
7d535a |
RND (output) INT
|
|
kusano |
7d535a |
Specifies whether proper rounding ( RND = .TRUE. ) or
|
|
kusano |
7d535a |
chopping ( RND = .FALSE. ) occurs in addition. This may not
|
|
kusano |
7d535a |
be a reliable guide to the way in which the machine performs
|
|
kusano |
7d535a |
its arithmetic.
|
|
kusano |
7d535a |
EPS (output) DOUBLE PRECISION
|
|
kusano |
7d535a |
The smallest positive number such that
|
|
kusano |
7d535a |
fl( 1.0 - EPS ) .LT. 1.0,
|
|
kusano |
7d535a |
where fl denotes the computed value.
|
|
kusano |
7d535a |
EMIN (output) INT
|
|
kusano |
7d535a |
The minimum exponent before (gradual) underflow occurs.
|
|
kusano |
7d535a |
RMIN (output) DOUBLE PRECISION
|
|
kusano |
7d535a |
The smallest normalized number for the machine, given by
|
|
kusano |
7d535a |
BASE**( EMIN - 1 ), where BASE is the floating point value
|
|
kusano |
7d535a |
of BETA.
|
|
kusano |
7d535a |
EMAX (output) INT
|
|
kusano |
7d535a |
The maximum exponent before overflow occurs.
|
|
kusano |
7d535a |
RMAX (output) DOUBLE PRECISION
|
|
kusano |
7d535a |
The largest positive number for the machine, given by
|
|
kusano |
7d535a |
BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
|
|
kusano |
7d535a |
value of BETA.
|
|
kusano |
7d535a |
Further Details
|
|
kusano |
7d535a |
===============
|
|
kusano |
7d535a |
The computation of EPS is based on a routine PARANOIA by
|
|
kusano |
7d535a |
W. Kahan of the University of California at Berkeley.
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double dlamc3_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
a,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
b
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMC3 is intended to force A and B to be stored prior to doing
|
|
kusano |
7d535a |
the addition of A and B , for use in situations where optimizers
|
|
kusano |
7d535a |
might hold one of these in a register.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
A, B (input) DOUBLE PRECISION
|
|
kusano |
7d535a |
The values A and B.
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc4_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
emin,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
start,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
base
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMC4 is a service routine for DLAMC2.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
EMIN (output) EMIN
|
|
kusano |
7d535a |
The minimum exponent before (gradual) underflow, computed by
|
|
kusano |
7d535a |
setting A = START and dividing by BASE until the previous A
|
|
kusano |
7d535a |
can not be recovered.
|
|
kusano |
7d535a |
START (input) DOUBLE PRECISION
|
|
kusano |
7d535a |
The starting point for determining EMIN.
|
|
kusano |
7d535a |
BASE (input) INT
|
|
kusano |
7d535a |
The base of the machine.
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int dlamc5_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
beta,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
p,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
emin,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
ieee,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
emax,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
rmax
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMC5 attempts to compute RMAX, the largest machine floating-point
|
|
kusano |
7d535a |
number, without overflow. It assumes that EMAX + abs(EMIN) sum
|
|
kusano |
7d535a |
approximately to a power of 2. It will fail on machines where this
|
|
kusano |
7d535a |
assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
|
|
kusano |
7d535a |
EMAX = 28718). It will also fail if the value supplied for EMIN is
|
|
kusano |
7d535a |
too large (i.e. too close to zero), probably with overflow.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
BETA (input) INT
|
|
kusano |
7d535a |
The base of floating-point arithmetic.
|
|
kusano |
7d535a |
P (input) INT
|
|
kusano |
7d535a |
The number of base BETA digits in the mantissa of a
|
|
kusano |
7d535a |
floating-point value.
|
|
kusano |
7d535a |
EMIN (input) INT
|
|
kusano |
7d535a |
The minimum exponent before (gradual) underflow.
|
|
kusano |
7d535a |
IEEE (input) INT
|
|
kusano |
7d535a |
A int flag specifying whether or not the arithmetic
|
|
kusano |
7d535a |
system is thought to comply with the IEEE standard.
|
|
kusano |
7d535a |
EMAX (output) INT
|
|
kusano |
7d535a |
The largest exponent before overflow
|
|
kusano |
7d535a |
RMAX (output) DOUBLE PRECISION
|
|
kusano |
7d535a |
The largest machine floating-point number.
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
First compute LEXP and UEXP, two powers of 2 that bound
|
|
kusano |
7d535a |
abs(EMIN). We then assume that EMAX + abs(EMIN) will sum
|
|
kusano |
7d535a |
approximately to the bound that is closest to abs(EMIN).
|
|
kusano |
7d535a |
(EMAX is the exponent of the required number RMAX).
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double dlamch_
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
char *
|
|
kusano |
7d535a |
cmach
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Purpose
|
|
kusano |
7d535a |
=======
|
|
kusano |
7d535a |
DLAMCH determines double precision machine parameters.
|
|
kusano |
7d535a |
Arguments
|
|
kusano |
7d535a |
=========
|
|
kusano |
7d535a |
CMACH (input) CHARACTER*1
|
|
kusano |
7d535a |
Specifies the value to be returned by DLAMCH:
|
|
kusano |
7d535a |
= 'E' or 'e', DLAMCH := eps
|
|
kusano |
7d535a |
= 'S' or 's , DLAMCH := sfmin
|
|
kusano |
7d535a |
= 'B' or 'b', DLAMCH := base
|
|
kusano |
7d535a |
= 'P' or 'p', DLAMCH := eps*base
|
|
kusano |
7d535a |
= 'N' or 'n', DLAMCH := t
|
|
kusano |
7d535a |
= 'R' or 'r', DLAMCH := rnd
|
|
kusano |
7d535a |
= 'M' or 'm', DLAMCH := emin
|
|
kusano |
7d535a |
= 'U' or 'u', DLAMCH := rmin
|
|
kusano |
7d535a |
= 'L' or 'l', DLAMCH := emax
|
|
kusano |
7d535a |
= 'O' or 'o', DLAMCH := rmax
|
|
kusano |
7d535a |
where
|
|
kusano |
7d535a |
eps = relative machine precision
|
|
kusano |
7d535a |
sfmin = safe minimum, such that 1/sfmin does not overflow
|
|
kusano |
7d535a |
base = base of the machine
|
|
kusano |
7d535a |
prec = eps*base
|
|
kusano |
7d535a |
t = number of (base) digits in the mantissa
|
|
kusano |
7d535a |
rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
|
|
kusano |
7d535a |
emin = minimum exponent before (gradual) underflow
|
|
kusano |
7d535a |
rmin = underflow threshold - base**(emin-1)
|
|
kusano |
7d535a |
emax = largest exponent before overflow
|
|
kusano |
7d535a |
rmax = overflow threshold - (base**emax)*(1-eps)
|
|
kusano |
7d535a |
=====================================================================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
double pow_di
|
|
kusano |
7d535a |
(
|
|
kusano |
7d535a |
double *
|
|
kusano |
7d535a |
ap,
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
int *
|
|
kusano |
7d535a |
bp
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
<address style="text-align: right;"><small>Generated on Mon Nov 22 10:23:47 2010 for SuperLU by </small></address>
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
1.5.5
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|