The R Project SVN R

Rev

Rev 2278 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2278 Rev 2629
Line 1... Line 1...
1
#ifndef MATHLIB_H
1
#ifndef MATHLIB_H
2
#define MATHLIB_H
2
#define MATHLIB_H
3
 
3
 
4
#include "Arith.h"
4
#include "Arith.h"
5
 
5
 
-
 
6
#ifdef FORTRAN_H
-
 
7
#error __MUST__include "Mathlib.h"  _before_  "Fortran.h"
-
 
8
#endif
-
 
9
 
6
#include <errno.h>
10
#include <errno.h>
7
#include <float.h>
11
#include <float.h>
8
#include <limits.h>
12
#include <limits.h>
9
#include <math.h>
13
#include <math.h>
10
#include <stdlib.h>
14
#include <stdlib.h>
11
 
15
 
-
 
16
/* TRUE and FALSE conflict with the Mac --- Fortran.h still defines them... */
-
 
17
#define LTRUE	(1)
-
 
18
#define LFALSE	(0)
-
 
19
 
12
/* 30 Decimal-place constants computed with bc -l (scale=32; proper round) */
20
/* 30 Decimal-place constants computed with bc -l (scale=32; proper round) */
13
 
21
 
14
#ifndef M_SQRT_2
22
#ifndef M_SQRT_2
15
#define M_SQRT_2	1.4142135623730950488016887242097
23
#define M_SQRT_2	1.4142135623730950488016887242097
16
#define M_1_SQRT_2	0.707106781186547524400844362105	/* 1/sqrt(2) */
24
#define M_1_SQRT_2	0.707106781186547524400844362105	/* 1/sqrt(2) */
Line 153... Line 161...
153
 
161
 
154
double	logrelerr(double);
162
double	logrelerr(double);
155
void	gammalims(double*, double*);
163
void	gammalims(double*, double*);
156
double	lgammacor(double);
164
double	lgammacor(double);
157
double	gammafn(double);
165
double	gammafn(double);
-
 
166
double	gamma_cody(double);
158
double	lgammafn(double);
167
double	lgammafn(double);
159
void	dpsifn(double, int, int, int, double*, int*, int*);
168
void	dpsifn(double, int, int, int, double*, int*, int*);
160
double	digamma(double);
169
double	digamma(double);
161
double	trigamma(double);
170
double	trigamma(double);
162
double	tetragamma(double);
171
double	tetragamma(double);
Line 165... Line 174...
165
double	choose(double, double);
174
double	choose(double, double);
166
double	lchoose(double, double);
175
double	lchoose(double, double);
167
double	fastchoose(double, double);
176
double	fastchoose(double, double);
168
double	lfastchoose(double, double);
177
double	lfastchoose(double, double);
169
 
178
 
-
 
179
	/* Bessel Functions of All Kinds */
-
 
180
 
-
 
181
double  bessel_i(double, double, double);
-
 
182
double  bessel_j(double, double);
-
 
183
double  bessel_k(double, double, double);
-
 
184
double  bessel_y(double, double);
-
 
185
void    I_bessel(double*, double*, long*, long*, double*, long*);
-
 
186
void    J_bessel(double*, double*, long*,        double*, long*);
-
 
187
void 	K_bessel(double*, double*, long*, long*, double*, long*);
-
 
188
void	Y_bessel(double*, double*, long*,        double*, long*);
-
 
189
 
170
	/* Beta and Related Functions */
190
	/* Beta and Related Functions */
171
 
191
 
172
double	beta(double, double);
192
double	beta(double, double);
173
double	lbeta(double, double);
193
double	lbeta(double, double);
174
 
194