1/*
2 * Copyright 2015 Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _COMPLEX_H_
6#define _COMPLEX_H_
7
8#ifdef __GNUC__
9#  if __STDC_VERSION__ < 199901L
10#    define _Complex __complex__
11#endif
12#define _Complex_I ((float _Complex)1.0i)
13#endif
14
15#define complex _Complex
16#define I _Complex_I
17
18#ifdef  __cplusplus
19extern "C" {
20#endif
21
22extern double               cabs(double complex);
23extern float                cabsf(float complex);
24extern long double          cabsl(long double complex);
25extern double complex       cacos(double complex);
26extern float complex        cacosf(float complex);
27extern double complex       cacosh(double complex);
28extern float complex        cacoshf(float complex);
29extern long double complex  cacoshl(long double complex);
30extern long double complex  cacosl(long double complex);
31extern double               carg(double complex);
32extern float                cargf(float complex);
33extern long double          cargl(long double complex);
34extern double complex       casin(double complex);
35extern float complex        casinf(float complex);
36extern double complex       casinh(double complex);
37extern float complex        casinhf(float complex);
38extern long double complex  casinhl(long double complex);
39extern long double complex  casinl(long double complex);
40extern double complex       catan(double complex);
41extern float complex        catanf(float complex);
42extern double complex       catanh(double complex);
43extern float complex        catanhf(float complex);
44extern long double complex  catanhl(long double complex);
45extern long double complex  catanl(long double complex);
46extern double complex       ccos(double complex);
47extern float complex        ccosf(float complex);
48extern double complex       ccosh(double complex);
49extern float complex        ccoshf(float complex);
50extern long double complex  ccoshl(long double complex);
51extern long double complex  ccosl(long double complex);
52extern double complex       cexp(double complex);
53extern float complex        cexpf(float complex);
54extern long double complex  cexpl(long double complex);
55extern double               cimag(double complex);
56extern float                cimagf(float complex);
57extern long double          cimagl(long double complex);
58extern double complex       clog(double complex);
59extern float complex        clogf(float complex);
60extern long double complex  clogl(long double complex);
61extern double complex       conj(double complex);
62extern float complex        conjf(float complex);
63extern long double complex  conjl(long double complex);
64extern double complex       cpow(double complex, double complex);
65extern float complex        cpowf(float complex, float complex);
66extern long double complex  cpowl(long double complex, long double complex);
67extern double complex       cproj(double complex);
68extern float complex        cprojf(float complex);
69extern long double complex  cprojl(long double complex);
70extern double               creal(double complex);
71extern float                crealf(float complex);
72extern long double          creall(long double complex);
73extern double complex       csin(double complex);
74extern float complex        csinf(float complex);
75extern double complex       csinh(double complex);
76extern float complex        csinhf(float complex);
77extern long double complex  csinhl(long double complex);
78extern long double complex  csinl(long double complex);
79extern double complex       csqrt(double complex);
80extern float complex        csqrtf(float complex);
81extern long double complex  csqrtl(long double complex);
82extern double complex       ctan(double complex);
83extern float complex        ctanf(float complex);
84extern double complex       ctanh(double complex);
85extern float complex        ctanhf(float complex);
86extern long double complex  ctanhl(long double complex);
87extern long double complex  ctanl(long double complex);
88
89#ifdef __cplusplus
90} /* extern "C" */
91#endif
92
93#endif	/* _COMPLEX_H_ */
94