1/* specfunc/gsl_sf_airy.h
2 *
3 * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19
20/* Author: G. Jungman */
21
22#ifndef __GSL_SF_AIRY_H__
23#define __GSL_SF_AIRY_H__
24
25#include <gsl/gsl_mode.h>
26#include <gsl/gsl_sf_result.h>
27
28#undef __BEGIN_DECLS
29#undef __END_DECLS
30#ifdef __cplusplus
31# define __BEGIN_DECLS extern "C" {
32# define __END_DECLS }
33#else
34# define __BEGIN_DECLS /* empty */
35# define __END_DECLS /* empty */
36#endif
37
38__BEGIN_DECLS
39
40
41/* Airy function Ai(x)
42 *
43 * exceptions: GSL_EUNDRFLW
44 */
45int gsl_sf_airy_Ai_e(const double x, const gsl_mode_t mode, gsl_sf_result * result);
46double gsl_sf_airy_Ai(const double x, gsl_mode_t mode);
47
48
49/* Airy function Bi(x)
50 *
51 * exceptions: GSL_EOVRFLW
52 */
53int gsl_sf_airy_Bi_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
54double gsl_sf_airy_Bi(const double x, gsl_mode_t mode);
55
56
57/* scaled Ai(x):
58 * Ai(x) x < 0
59 * exp(+2/3 x^{3/2}) Ai(x) x > 0
60 *
61 * exceptions: none
62 */
63int gsl_sf_airy_Ai_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
64double gsl_sf_airy_Ai_scaled(const double x, gsl_mode_t mode);
65
66
67/* scaled Bi(x):
68 * Bi(x) x < 0
69 * exp(-2/3 x^{3/2}) Bi(x) x > 0
70 *
71 * exceptions: none
72 */
73int gsl_sf_airy_Bi_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
74double gsl_sf_airy_Bi_scaled(const double x, gsl_mode_t mode);
75
76
77/* derivative Ai'(x)
78 *
79 * exceptions: GSL_EUNDRFLW
80 */
81int gsl_sf_airy_Ai_deriv_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
82double gsl_sf_airy_Ai_deriv(const double x, gsl_mode_t mode);
83
84
85/* derivative Bi'(x)
86 *
87 * exceptions: GSL_EOVRFLW
88 */
89int gsl_sf_airy_Bi_deriv_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
90double gsl_sf_airy_Bi_deriv(const double x, gsl_mode_t mode);
91
92
93/* scaled derivative Ai'(x):
94 * Ai'(x) x < 0
95 * exp(+2/3 x^{3/2}) Ai'(x) x > 0
96 *
97 * exceptions: none
98 */
99int gsl_sf_airy_Ai_deriv_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
100double gsl_sf_airy_Ai_deriv_scaled(const double x, gsl_mode_t mode);
101
102
103/* scaled derivative:
104 * Bi'(x) x < 0
105 * exp(-2/3 x^{3/2}) Bi'(x) x > 0
106 *
107 * exceptions: none
108 */
109int gsl_sf_airy_Bi_deriv_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
110double gsl_sf_airy_Bi_deriv_scaled(const double x, gsl_mode_t mode);
111
112
113/* Zeros of Ai(x)
114 */
115int gsl_sf_airy_zero_Ai_e(unsigned int s, gsl_sf_result * result);
116double gsl_sf_airy_zero_Ai(unsigned int s);
117
118
119/* Zeros of Bi(x)
120 */
121int gsl_sf_airy_zero_Bi_e(unsigned int s, gsl_sf_result * result);
122double gsl_sf_airy_zero_Bi(unsigned int s);
123
124
125/* Zeros of Ai'(x)
126 */
127int gsl_sf_airy_zero_Ai_deriv_e(unsigned int s, gsl_sf_result * result);
128double gsl_sf_airy_zero_Ai_deriv(unsigned int s);
129
130
131/* Zeros of Bi'(x)
132 */
133int gsl_sf_airy_zero_Bi_deriv_e(unsigned int s, gsl_sf_result * result);
134double gsl_sf_airy_zero_Bi_deriv(unsigned int s);
135
136
137__END_DECLS
138
139#endif /* __GSL_SF_AIRY_H__ */
140