aboutsummaryrefslogtreecommitdiff
path: root/src/gsl_sf_erf.c
blob: 1b38a763afab306fb4d787161cfceb9dd0befa08 (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <gsl/gsl_sf_erf.h>

#include "cctk.h"



/* Complementary Error Function
 * erfc(x) := 2/Sqrt[Pi] Integrate[Exp[-t^2], {t,x,Infinity}]
 *
 * exceptions: none
 */
int CCTK_FCALL
CCTK_FNAME(gsl_sf_erfc_e) (double const * restrict const x,
                           gsl_sf_result * restrict const result)
{
  return gsl_sf_erfc_e (* x, result);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_erfc) (double const * restrict const x)
{
  return gsl_sf_erfc (* x);
}


/* Log Complementary Error Function
 *
 * exceptions: none
 */
int CCTK_FCALL
CCTK_FNAME(gsl_sf_log_erfc_e) (double const * restrict const x,
                               gsl_sf_result * restrict const result)
{
  return gsl_sf_log_erfc_e (* x, result);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_log_erfc) (double const * restrict const x)
{
  return gsl_sf_log_erfc (* x);
}


/* Error Function
 * erf(x) := 2/Sqrt[Pi] Integrate[Exp[-t^2], {t,0,x}]
 *
 * exceptions: none
 */
int CCTK_FCALL
CCTK_FNAME(gsl_sf_erf_e) (double const * restrict const x,
                          gsl_sf_result * restrict const result)
{
  return gsl_sf_erf_e (* x, result);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_erf) (double const * restrict const x)
{
  return gsl_sf_erf (* x);
}


/* Probability functions:
 * Z(x) :  Abramowitz+Stegun 26.2.1
 * Q(x) :  Abramowitz+Stegun 26.2.3
 *
 * exceptions: none
 */
int CCTK_FCALL
CCTK_FNAME(gsl_sf_erf_Z_e) (double const * restrict const x,
                            gsl_sf_result * restrict const result)
{
  return gsl_sf_erf_Z_e (* x, result);
}

int CCTK_FCALL
CCTK_FNAME(gsl_sf_erf_Q_e) (double const * restrict const x,
                            gsl_sf_result * restrict const result)
{
  return gsl_sf_erf_Q_e (* x, result);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_erf_Z) (double const * restrict const x)
{
  return gsl_sf_erf_Z (* x);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_erf_Q) (double const * restrict const x)
{
  return gsl_sf_erf_Q (* x);
}


#if 0
/* Does not exist in older versions of GSL*/

/* Hazard function, also known as the inverse Mill's ratio.
 *
 *   H(x) := Z(x)/Q(x)
 *         = Sqrt[2/Pi] Exp[-x^2 / 2] / Erfc[x/Sqrt[2]]
 *
 * exceptions: GSL_EUNDRFLW
 */
int CCTK_FCALL
CCTK_FNAME(gsl_sf_hazard_e) (double const * restrict const x,
                             gsl_sf_result * restrict const result)
{
  return gsl_sf_hazard_e (* x, result);
}

double CCTK_FCALL
CCTK_FNAME(gsl_sf_hazard) (double const * restrict const x)
{
  return gsl_sf_hazard (* x);
}
#endif