complex.h revision 230278
178172Sru/*- 2226458Sdas * Copyright (c) 2001-2011 The FreeBSD Project. 378172Sru * All rights reserved. 478172Sru * 578172Sru * Redistribution and use in source and binary forms, with or without 678172Sru * modification, are permitted provided that the following conditions 778172Sru * are met: 878172Sru * 1. Redistributions of source code must retain the above copyright 978172Sru * notice, this list of conditions and the following disclaimer. 1078172Sru * 2. Redistributions in binary form must reproduce the above copyright 1178172Sru * notice, this list of conditions and the following disclaimer in the 1278172Sru * documentation and/or other materials provided with the distribution. 1378172Sru * 1478172Sru * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1578172Sru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1678172Sru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1778172Sru * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1878172Sru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1978172Sru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2078172Sru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2178172Sru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2278172Sru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2378172Sru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2478172Sru * SUCH DAMAGE. 2578172Sru * 2678172Sru * $FreeBSD: head/include/complex.h 230278 2012-01-17 20:22:10Z ed $ 2778172Sru */ 2878172Sru 2978172Sru#ifndef _COMPLEX_H 30133724Sstefanf#define _COMPLEX_H 3178172Sru 32229590Sed#include <sys/cdefs.h> 33229590Sed 3478172Sru#ifdef __GNUC__ 35133725Sstefanf#if __STDC_VERSION__ < 199901 36133724Sstefanf#define _Complex __complex__ 37133725Sstefanf#endif 38229590Sed#define _Complex_I ((float _Complex)1.0i) 39230278Sed#endif 40230278Sed 41230278Sed#ifdef __generic 42229590Sed_Static_assert(__generic(_Complex_I, float _Complex, 1, 0), 43229590Sed "_Complex_I must be of type float _Complex"); 4478172Sru#endif 4578172Sru 46133724Sstefanf#define complex _Complex 47133724Sstefanf#define I _Complex_I 4878172Sru 4978172Sru__BEGIN_DECLS 5078172Sru 51129864Sstefanfdouble cabs(double complex); 52129864Sstefanffloat cabsf(float complex); 53177760Sdaslong double cabsl(long double complex); 54174561Sdasdouble carg(double complex); 55174561Sdasfloat cargf(float complex); 56181375Sdaslong double cargl(long double complex); 57226458Sdasdouble complex ccos(double complex); 58226458Sdasfloat complex ccosf(float complex); 59226458Sdasdouble complex ccosh(double complex); 60226458Sdasfloat complex ccoshf(float complex); 61219379Sdasdouble complex cexp(double complex); 62219379Sdasfloat complex cexpf(float complex); 63181375Sdasdouble cimag(double complex) __pure2; 64181375Sdasfloat cimagf(float complex) __pure2; 65181375Sdaslong double cimagl(long double complex) __pure2; 66181375Sdasdouble complex conj(double complex) __pure2; 67181375Sdasfloat complex conjf(float complex) __pure2; 68129864Sstefanflong double complex 69181375Sdas conjl(long double complex) __pure2; 70181377Sdasfloat complex cprojf(float complex) __pure2; 71181377Sdasdouble complex cproj(double complex) __pure2; 72181377Sdaslong double complex 73181377Sdas cprojl(long double complex) __pure2; 74181375Sdasdouble creal(double complex) __pure2; 75181375Sdasfloat crealf(float complex) __pure2; 76181375Sdaslong double creall(long double complex) __pure2; 77226458Sdasdouble complex csin(double complex); 78226458Sdasfloat complex csinf(float complex); 79226458Sdasdouble complex csinh(double complex); 80226458Sdasfloat complex csinhf(float complex); 81174617Sdasdouble complex csqrt(double complex); 82174617Sdasfloat complex csqrtf(float complex); 83177761Sdaslong double complex 84177761Sdas csqrtl(long double complex); 85226458Sdasdouble complex ctan(double complex); 86226458Sdasfloat complex ctanf(float complex); 87226458Sdasdouble complex ctanh(double complex); 88226458Sdasfloat complex ctanhf(float complex); 8978172Sru 9078172Sru__END_DECLS 9178172Sru 9278172Sru#endif /* _COMPLEX_H */ 93