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> |