1 #ifndef __GSL_COMPLEX_H__
2 #define __GSL_COMPLEX_H__
3
4 void gsl_complex_inverse (gnm_complex const *a, gnm_complex *res);
5 void gsl_complex_arcsin (gnm_complex const *a, gnm_complex *res);
6 void gsl_complex_arccos (gnm_complex const *a, gnm_complex *res);
7 void gsl_complex_arctan (gnm_complex const *a, gnm_complex *res);
8 void gsl_complex_arcsec (gnm_complex const *a, gnm_complex *res);
9 void gsl_complex_arccsc (gnm_complex const *a, gnm_complex *res);
10 void gsl_complex_arccot (gnm_complex const *a, gnm_complex *res);
11 void gsl_complex_sinh (gnm_complex const *a, gnm_complex *res);
12 void gsl_complex_cosh (gnm_complex const *a, gnm_complex *res);
13 void gsl_complex_tanh (gnm_complex const *a, gnm_complex *res);
14 void gsl_complex_sech (gnm_complex const *a, gnm_complex *res);
15 void gsl_complex_csch (gnm_complex const *a, gnm_complex *res);
16 void gsl_complex_coth (gnm_complex const *a, gnm_complex *res);
17 void gsl_complex_arcsinh (gnm_complex const *a, gnm_complex *res);
18 void gsl_complex_arccosh (gnm_complex const *a, gnm_complex *res);
19 void gsl_complex_arctanh (gnm_complex const *a, gnm_complex *res);
20 void gsl_complex_arcsech (gnm_complex const *a, gnm_complex *res);
21 void gsl_complex_arccsch (gnm_complex const *a, gnm_complex *res);
22 void gsl_complex_arccoth (gnm_complex const *a, gnm_complex *res);
23
24 static inline gnm_complex
gnm_complex_f1r_(void (* f)(gnm_complex const *,gnm_complex *),gnm_complex a1)25 gnm_complex_f1r_ (void (*f) (gnm_complex const *, gnm_complex *),
26 gnm_complex a1)
27 {
28 gnm_complex res;
29 f (&a1, &res);
30 return res;
31 }
32
33 #define GNM_CARCSIN(c1) (gnm_complex_f1r_ (gsl_complex_arcsin, (c1)))
34 #define GNM_CARCCOS(c1) (gnm_complex_f1r_ (gsl_complex_arccos, (c1)))
35 #define GNM_CARCTAN(c1) (gnm_complex_f1r_ (gsl_complex_arctan, (c1)))
36 #define GNM_CARCSEC(c1) (gnm_complex_f1r_ (gsl_complex_arcsec, (c1)))
37 #define GNM_CARCCSC(c1) (gnm_complex_f1r_ (gsl_complex_arccsc, (c1)))
38 #define GNM_CARCCOT(c1) (gnm_complex_f1r_ (gsl_complex_arccot, (c1)))
39 #define GNM_CSINH(c1) (gnm_complex_f1r_ (gsl_complex_sinh, (c1)))
40 #define GNM_CCOSH(c1) (gnm_complex_f1r_ (gsl_complex_cosh, (c1)))
41 #define GNM_CTANH(c1) (gnm_complex_f1r_ (gsl_complex_tanh, (c1)))
42 #define GNM_CSECH(c1) (gnm_complex_f1r_ (gsl_complex_sech, (c1)))
43 #define GNM_CCSCH(c1) (gnm_complex_f1r_ (gsl_complex_csch, (c1)))
44 #define GNM_CCOTH(c1) (gnm_complex_f1r_ (gsl_complex_coth, (c1)))
45 #define GNM_CARCSINH(c1) (gnm_complex_f1r_ (gsl_complex_arcsinh, (c1)))
46 #define GNM_CARCCOSH(c1) (gnm_complex_f1r_ (gsl_complex_arccosh, (c1)))
47 #define GNM_CARCTANH(c1) (gnm_complex_f1r_ (gsl_complex_arctanh, (c1)))
48 #define GNM_CARCSECH(c1) (gnm_complex_f1r_ (gsl_complex_arcsech, (c1)))
49 #define GNM_CARCCSCH(c1) (gnm_complex_f1r_ (gsl_complex_arccsch, (c1)))
50 #define GNM_CARCCOTH(c1) (gnm_complex_f1r_ (gsl_complex_arccoth, (c1)))
51
52 #endif
53