File: mdefs.c

package info (click to toggle)
r-pdl 0.2-2
  • links: PTS
  • area: main
  • in suites: slink
  • size: 10,848 kB
  • ctags: 5,599
  • sloc: ansic: 66,166; fortran: 3,810; sh: 2,561; perl: 1,930; yacc: 1,508; makefile: 623
file content (40 lines) | stat: -rw-r--r-- 760 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "Mathlib.h"
#ifdef HAVE_ISNAN
double R_Zero_Hack = 0.0;		/* silence the compiler */
#endif


double	R_tmp;				/* Temporary Value */
double	R_NaN;				/* NaN or -DBL_MAX */
double	R_PosInf;			/* IEEE Inf or DBL_MAX */
double	R_NegInf;			/* IEEE -Inf or -DBL_MAX */
int	R_NaInt;			/* NA_INTEGER */
double	R_NaReal;			/* NA_REAL */

void set_random_generator (double (*function)()) {
  uniform_deviate = function;
}

void InitArithmetic()
{ 
	R_NaInt = INT_MIN;

#ifdef HAVE_ISNAN
	R_NaN = 0.0/1.0;
	R_NaReal = R_NaN;
	R_PosInf = 1.0/R_Zero_Hack;
	R_NegInf = -1.0/R_Zero_Hack;
#else
	R_NaN = -DBL_MAX;
	R_NaReal = R_NaN;
	R_PosInf = -DBL_MAX;
	R_NegInf = DBL_MAX;

#ifdef Unix
	signal(SIGFPE, handle_fperror);
#endif
#endif
}

			/* Arithmetic Values */