Statistiques
| Révision :

root / www / HPL_dlamch.html

Historique | Voir | Annoter | Télécharger (3,39 ko)

1 1 equemene
<HTML>
2 1 equemene
<HEAD>
3 1 equemene
<TITLE>HPL_dlamch HPL 2.0 Library Functions September 10, 2008</TITLE>
4 1 equemene
</HEAD>
5 1 equemene
6 1 equemene
<BODY BGCOLOR="WHITE" TEXT = "#000000" LINK = "#0000ff" VLINK = "#000099"
7 1 equemene
      ALINK = "#ffff00">
8 1 equemene
9 1 equemene
<H1>Name</H1>
10 1 equemene
<B>HPL_dlamch</B> determines machine-specific arithmetic constants.
11 1 equemene
12 1 equemene
<H1>Synopsis</H1>
13 1 equemene
<CODE>#include "hpl.h"</CODE><BR><BR>
14 1 equemene
<CODE>double</CODE>
15 1 equemene
<CODE>HPL_dlamch(</CODE>
16 1 equemene
<CODE>const HPL_T_MACH</CODE>
17 1 equemene
<CODE>CMACH</CODE>
18 1 equemene
<CODE>);</CODE>
19 1 equemene
20 1 equemene
<H1>Description</H1>
21 1 equemene
<B>HPL_dlamch</B>
22 1 equemene
determines  machine-specific  arithmetic constants such as
23 1 equemene
the relative machine precision  (eps),  the safe minimum (sfmin) such
24 1 equemene
that 1 / sfmin does not overflow, the base of the machine (base), the
25 1 equemene
precision (prec), the  number of (base) digits  in the  mantissa (t),
26 1 equemene
whether rounding occurs in addition (rnd=1.0 and 0.0 otherwise),  the
27 1 equemene
minimum exponent before  (gradual)  underflow (emin),  the  underflow
28 1 equemene
threshold (rmin) base**(emin-1), the largest exponent before overflow
29 1 equemene
(emax), the overflow threshold (rmax) (base**emax)*(1-eps).
30 1 equemene
31 1 equemene
<H1>Arguments</H1>
32 1 equemene
<PRE>
33 1 equemene
CMACH   (local input)                 const HPL_T_MACH
34 1 equemene
        Specifies the value to be returned by HPL_dlamch
35 1 equemene
           = HPL_MACH_EPS,   HPL_dlamch := eps (default)
36 1 equemene
           = HPL_MACH_SFMIN, HPL_dlamch := sfmin
37 1 equemene
           = HPL_MACH_BASE,  HPL_dlamch := base
38 1 equemene
           = HPL_MACH_PREC,  HPL_dlamch := eps*base
39 1 equemene
           = HPL_MACH_MLEN,  HPL_dlamch := t
40 1 equemene
           = HPL_MACH_RND,   HPL_dlamch := rnd
41 1 equemene
           = HPL_MACH_EMIN,  HPL_dlamch := emin
42 1 equemene
           = HPL_MACH_RMIN,  HPL_dlamch := rmin
43 1 equemene
           = HPL_MACH_EMAX,  HPL_dlamch := emax
44 1 equemene
           = HPL_MACH_RMAX,  HPL_dlamch := rmax
45 1 equemene
46 1 equemene
        where
47 1 equemene
48 1 equemene
           eps   = relative machine precision,
49 1 equemene
           sfmin = safe minimum,
50 1 equemene
           base  = base of the machine,
51 1 equemene
           prec  = eps*base,
52 1 equemene
           t     = number of digits in the mantissa,
53 1 equemene
           rnd   = 1.0 if rounding occurs in addition,
54 1 equemene
           emin  = minimum exponent before underflow,
55 1 equemene
           rmin  = underflow threshold,
56 1 equemene
           emax  = largest exponent before overflow,
57 1 equemene
           rmax  = overflow threshold.
58 1 equemene
</PRE>
59 1 equemene
60 1 equemene
<H1>Example</H1>
61 1 equemene
<CODE>#include "hpl.h"</CODE><BR><BR>
62 1 equemene
<PRE>
63 1 equemene
int main(int argc, char *argv[])
64 1 equemene
{
65 1 equemene
   double eps;
66 1 equemene
   eps = HPL_dlamch( HPL_MACH_EPS );
67 1 equemene
   printf("eps=%18.8e\n", eps);
68 1 equemene
   exit(0); return(0);
69 1 equemene
}
70 1 equemene
</PRE>
71 1 equemene
72 1 equemene
<H1>References</H1>
73 1 equemene
This function has been manually translated from the Fortran 77 LAPACK
74 1 equemene
auxiliary function dlamch.f  (version 2.0 -- 1992), that  was  itself
75 1 equemene
based on the function ENVRON  by Malcolm and incorporated suggestions
76 1 equemene
by Gentleman and Marovich. See
77 1 equemene
78 1 equemene
Malcolm M. A.,  Algorithms  to  reveal  properties  of floating-point
79 1 equemene
arithmetic.,  Comms. of the ACM, 15, 949-951 (1972).
80 1 equemene
81 1 equemene
Gentleman W. M. and Marovich S. B.,  More  on algorithms  that reveal
82 1 equemene
properties of  floating point arithmetic units.,  Comms. of  the ACM,
83 1 equemene
17, 276-277 (1974).
84 1 equemene
85 1 equemene
</BODY>
86 1 equemene
</HTML>