1 | /* gsl_pow_int.h |
2 | * |
3 | * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004, 2007 Gerard Jungman, Brian Gough |
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 | #ifndef __GSL_POW_INT_H__ |
21 | #define __GSL_POW_INT_H__ |
22 | #include <gsl/gsl_inline.h> |
23 | |
24 | #undef __BEGIN_DECLS |
25 | #undef __END_DECLS |
26 | #ifdef __cplusplus |
27 | # define __BEGIN_DECLS extern "C" { |
28 | # define __END_DECLS } |
29 | #else |
30 | # define __BEGIN_DECLS /* empty */ |
31 | # define __END_DECLS /* empty */ |
32 | #endif |
33 | |
34 | __BEGIN_DECLS |
35 | |
36 | INLINE_DECL double gsl_pow_2(const double x); |
37 | INLINE_DECL double gsl_pow_3(const double x); |
38 | INLINE_DECL double gsl_pow_4(const double x); |
39 | INLINE_DECL double gsl_pow_5(const double x); |
40 | INLINE_DECL double gsl_pow_6(const double x); |
41 | INLINE_DECL double gsl_pow_7(const double x); |
42 | INLINE_DECL double gsl_pow_8(const double x); |
43 | INLINE_DECL double gsl_pow_9(const double x); |
44 | |
45 | #ifdef HAVE_INLINE |
46 | INLINE_FUN double gsl_pow_2(const double x) { return x*x; } |
47 | INLINE_FUN double gsl_pow_3(const double x) { return x*x*x; } |
48 | INLINE_FUN double gsl_pow_4(const double x) { double x2 = x*x; return x2*x2; } |
49 | INLINE_FUN double gsl_pow_5(const double x) { double x2 = x*x; return x2*x2*x; } |
50 | INLINE_FUN double gsl_pow_6(const double x) { double x2 = x*x; return x2*x2*x2; } |
51 | INLINE_FUN double gsl_pow_7(const double x) { double x3 = x*x*x; return x3*x3*x; } |
52 | INLINE_FUN double gsl_pow_8(const double x) { double x2 = x*x; double x4 = x2*x2; return x4*x4; } |
53 | INLINE_FUN double gsl_pow_9(const double x) { double x3 = x*x*x; return x3*x3*x3; } |
54 | #endif |
55 | |
56 | double gsl_pow_int(double x, int n); |
57 | double gsl_pow_uint(double x, unsigned int n); |
58 | |
59 | __END_DECLS |
60 | |
61 | #endif /* __GSL_POW_INT_H__ */ |
62 | |