xref: /netbsd-src/include/complex.h (revision 6c1355b4ee29f3ea17bf18601c554e81c8b53760)
1*6c1355b4Smatt /* $NetBSD: complex.h,v 1.4 2013/01/28 23:19:50 matt Exp $ */
2d493d48cSdrochner 
3d493d48cSdrochner /*
4d493d48cSdrochner  * Written by Matthias Drochner.
5d493d48cSdrochner  * Public domain.
6d493d48cSdrochner  */
79d8b5fa7Sdrochner 
8e2a86dd3Schristos #ifndef	_COMPLEX_H
9e2a86dd3Schristos #define	_COMPLEX_H
10e2a86dd3Schristos 
119d8b5fa7Sdrochner #define complex _Complex
129d8b5fa7Sdrochner #define _Complex_I 1.0fi
139d8b5fa7Sdrochner #define I _Complex_I
149d8b5fa7Sdrochner 
159d8b5fa7Sdrochner #include <sys/cdefs.h>
169d8b5fa7Sdrochner 
179d8b5fa7Sdrochner __BEGIN_DECLS
189d8b5fa7Sdrochner 
19e2a86dd3Schristos /* 7.3.5 Trigonometric functions */
20e2a86dd3Schristos /* 7.3.5.1 The cacos functions */
21e2a86dd3Schristos double complex cacos(double complex);
22e2a86dd3Schristos float complex cacosf(float complex);
23*6c1355b4Smatt long double complex cacosl(long double complex);
249d8b5fa7Sdrochner 
25e2a86dd3Schristos /* 7.3.5.2 The casin functions */
26e2a86dd3Schristos double complex casin(double complex);
27e2a86dd3Schristos float complex casinf(float complex);
28*6c1355b4Smatt long double complex casinl(long double complex);
29e2a86dd3Schristos 
30e2a86dd3Schristos /* 7.3.5.1 The catan functions */
31e2a86dd3Schristos double complex catan(double complex);
32e2a86dd3Schristos float complex catanf(float complex);
33*6c1355b4Smatt long double complex catanl(long double complex);
34e2a86dd3Schristos 
35e2a86dd3Schristos /* 7.3.5.1 The ccos functions */
36e2a86dd3Schristos double complex ccos(double complex);
37e2a86dd3Schristos float complex ccosf(float complex);
38*6c1355b4Smatt long double complex ccosl(long double complex);
39e2a86dd3Schristos 
40e2a86dd3Schristos /* 7.3.5.1 The csin functions */
41e2a86dd3Schristos double complex csin(double complex);
42e2a86dd3Schristos float complex csinf(float complex);
43*6c1355b4Smatt long double complex csinl(long double complex);
44e2a86dd3Schristos 
45e2a86dd3Schristos /* 7.3.5.1 The ctan functions */
46e2a86dd3Schristos double complex ctan(double complex);
47e2a86dd3Schristos float complex ctanf(float complex);
48*6c1355b4Smatt long double complex ctanl(long double complex);
49e2a86dd3Schristos 
50e2a86dd3Schristos /* 7.3.6 Hyperbolic functions */
51e2a86dd3Schristos /* 7.3.6.1 The cacosh functions */
52e2a86dd3Schristos double complex cacosh(double complex);
53e2a86dd3Schristos float complex cacoshf(float complex);
54*6c1355b4Smatt long double complex cacoshl(long double complex);
55e2a86dd3Schristos 
56e2a86dd3Schristos /* 7.3.6.2 The casinh functions */
57e2a86dd3Schristos double complex casinh(double complex);
58e2a86dd3Schristos float complex casinhf(float complex);
59*6c1355b4Smatt long double complex casinhl(long double complex);
60e2a86dd3Schristos 
61e2a86dd3Schristos /* 7.3.6.3 The catanh functions */
62e2a86dd3Schristos double complex catanh(double complex);
63e2a86dd3Schristos float complex catanhf(float complex);
64*6c1355b4Smatt long double complex catanhl(long double complex);
65e2a86dd3Schristos 
66e2a86dd3Schristos /* 7.3.6.4 The ccosh functions */
67e2a86dd3Schristos double complex ccosh(double complex);
68e2a86dd3Schristos float complex ccoshf(float complex);
69*6c1355b4Smatt long double complex ccoshl(long double complex);
70e2a86dd3Schristos 
71e2a86dd3Schristos /* 7.3.6.5 The csinh functions */
72e2a86dd3Schristos double complex csinh(double complex);
73e2a86dd3Schristos float complex csinhf(float complex);
74*6c1355b4Smatt long double complex csinhl(long double complex);
75e2a86dd3Schristos 
76e2a86dd3Schristos /* 7.3.6.6 The ctanh functions */
77e2a86dd3Schristos double complex ctanh(double complex);
78e2a86dd3Schristos float complex ctanhf(float complex);
79*6c1355b4Smatt long double complex ctanhl(long double complex);
80e2a86dd3Schristos 
81e2a86dd3Schristos /* 7.3.7 Exponential and logarithmic functions */
82e2a86dd3Schristos /* 7.3.7.1 The cexp functions */
83e2a86dd3Schristos double complex cexp(double complex);
84e2a86dd3Schristos float complex cexpf(float complex);
85*6c1355b4Smatt long double complex cexpl(long double complex);
86e2a86dd3Schristos 
87e2a86dd3Schristos /* 7.3.7.2 The clog functions */
88e2a86dd3Schristos double complex clog(double complex);
89e2a86dd3Schristos float complex clogf(float complex);
90*6c1355b4Smatt long double complex clogl(long double complex);
91e2a86dd3Schristos 
92e2a86dd3Schristos /* 7.3.8 Power and absolute-value functions */
93e2a86dd3Schristos /* 7.3.8.1 The cabs functions */
949d8b5fa7Sdrochner #ifndef __LIBM0_SOURCE__
959d8b5fa7Sdrochner /* avoid conflict with historical cabs(struct complex) */
969d8b5fa7Sdrochner double cabs(double complex) __RENAME(__c99_cabs);
979d8b5fa7Sdrochner float cabsf(float complex) __RENAME(__c99_cabsf);
98*6c1355b4Smatt long double cabsl(long double complex) __RENAME(__c99_cabsl);
999d8b5fa7Sdrochner #endif
100e2a86dd3Schristos 
101e2a86dd3Schristos /* 7.3.8.2 The cpow functions */
102e2a86dd3Schristos double complex cpow(double complex, double complex);
103e2a86dd3Schristos float complex cpowf(float complex, float complex);
104*6c1355b4Smatt long double complex cpowl(long double complex, long double complex);
105e2a86dd3Schristos 
106e2a86dd3Schristos /* 7.3.8.3 The csqrt functions */
107e2a86dd3Schristos double complex csqrt(double complex);
108e2a86dd3Schristos float complex csqrtf(float complex);
109*6c1355b4Smatt long double complex csqrtl(long double complex);
110e2a86dd3Schristos 
111e2a86dd3Schristos /* 7.3.9 Manipulation functions */
112e2a86dd3Schristos /* 7.3.9.1 The carg functions */
1139d8b5fa7Sdrochner double carg(double complex);
1149d8b5fa7Sdrochner float cargf(float complex);
115*6c1355b4Smatt long double cargl(long double complex);
1169d8b5fa7Sdrochner 
117e2a86dd3Schristos /* 7.3.9.2 The cimag functions */
118e2a86dd3Schristos double cimag(double complex);
119e2a86dd3Schristos float cimagf(float complex);
120e2a86dd3Schristos long double cimagl(long double complex);
1219d8b5fa7Sdrochner 
122e2a86dd3Schristos /* 7.3.9.3 The conj functions */
123e2a86dd3Schristos double complex conj(double complex);
124e2a86dd3Schristos float complex conjf(float complex);
125e2a86dd3Schristos long double complex conjl(long double complex);
1269d8b5fa7Sdrochner 
127e2a86dd3Schristos /* 7.3.9.4 The cproj functions */
128e2a86dd3Schristos double complex cproj(double complex);
129e2a86dd3Schristos float complex cprojf(float complex);
130e2a86dd3Schristos long double complex cprojl(long double complex);
1319d8b5fa7Sdrochner 
132e2a86dd3Schristos /* 7.3.9.5 The creal functions */
133e2a86dd3Schristos double creal(double complex);
134e2a86dd3Schristos float crealf(float complex);
135e2a86dd3Schristos long double creall(long double complex);
1369d8b5fa7Sdrochner 
1379d8b5fa7Sdrochner __END_DECLS
138e2a86dd3Schristos 
139e2a86dd3Schristos #endif	/* ! _COMPLEX_H */
140