1*25c28e83SPiotr Jasiukajtis /* 2*25c28e83SPiotr Jasiukajtis * CDDL HEADER START 3*25c28e83SPiotr Jasiukajtis * 4*25c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the 5*25c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License"). 6*25c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License. 7*25c28e83SPiotr Jasiukajtis * 8*25c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*25c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing. 10*25c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions 11*25c28e83SPiotr Jasiukajtis * and limitations under the License. 12*25c28e83SPiotr Jasiukajtis * 13*25c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each 14*25c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*25c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the 16*25c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying 17*25c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner] 18*25c28e83SPiotr Jasiukajtis * 19*25c28e83SPiotr Jasiukajtis * CDDL HEADER END 20*25c28e83SPiotr Jasiukajtis */ 21*25c28e83SPiotr Jasiukajtis /* 22*25c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 23*25c28e83SPiotr Jasiukajtis */ 24*25c28e83SPiotr Jasiukajtis /* 25*25c28e83SPiotr Jasiukajtis * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 26*25c28e83SPiotr Jasiukajtis * Use is subject to license terms. 27*25c28e83SPiotr Jasiukajtis */ 28*25c28e83SPiotr Jasiukajtis 29*25c28e83SPiotr Jasiukajtis #ifndef _COMPLEX_H 30*25c28e83SPiotr Jasiukajtis #define _COMPLEX_H 31*25c28e83SPiotr Jasiukajtis 32*25c28e83SPiotr Jasiukajtis #ifdef __cplusplus 33*25c28e83SPiotr Jasiukajtis extern "C" { 34*25c28e83SPiotr Jasiukajtis #endif 35*25c28e83SPiotr Jasiukajtis 36*25c28e83SPiotr Jasiukajtis /* 37*25c28e83SPiotr Jasiukajtis * Compilation environments for Solaris must provide the _Imaginary datatype 38*25c28e83SPiotr Jasiukajtis * and the compiler intrinsics _Complex_I and _Imaginary_I 39*25c28e83SPiotr Jasiukajtis */ 40*25c28e83SPiotr Jasiukajtis #if defined(__SUNPRO_C) 41*25c28e83SPiotr Jasiukajtis #define _Complex_I _Complex_I 42*25c28e83SPiotr Jasiukajtis #define _Imaginary_I _Imaginary_I 43*25c28e83SPiotr Jasiukajtis #else 44*25c28e83SPiotr Jasiukajtis #define _Complex_I 1.0fi 45*25c28e83SPiotr Jasiukajtis #define _Imaginary_I 1.0fi 46*25c28e83SPiotr Jasiukajtis #endif 47*25c28e83SPiotr Jasiukajtis #define complex _Complex 48*25c28e83SPiotr Jasiukajtis #define imaginary _Imaginary 49*25c28e83SPiotr Jasiukajtis #undef I 50*25c28e83SPiotr Jasiukajtis #define I _Imaginary_I 51*25c28e83SPiotr Jasiukajtis 52*25c28e83SPiotr Jasiukajtis extern float cabsf(float complex); 53*25c28e83SPiotr Jasiukajtis extern float cargf(float complex); 54*25c28e83SPiotr Jasiukajtis extern float cimagf(float complex); 55*25c28e83SPiotr Jasiukajtis extern float crealf(float complex); 56*25c28e83SPiotr Jasiukajtis extern float complex cacosf(float complex); 57*25c28e83SPiotr Jasiukajtis extern float complex cacoshf(float complex); 58*25c28e83SPiotr Jasiukajtis extern float complex casinf(float complex); 59*25c28e83SPiotr Jasiukajtis extern float complex casinhf(float complex); 60*25c28e83SPiotr Jasiukajtis extern float complex catanf(float complex); 61*25c28e83SPiotr Jasiukajtis extern float complex catanhf(float complex); 62*25c28e83SPiotr Jasiukajtis extern float complex ccosf(float complex); 63*25c28e83SPiotr Jasiukajtis extern float complex ccoshf(float complex); 64*25c28e83SPiotr Jasiukajtis extern float complex cexpf(float complex); 65*25c28e83SPiotr Jasiukajtis extern float complex clogf(float complex); 66*25c28e83SPiotr Jasiukajtis extern float complex conjf(float complex); 67*25c28e83SPiotr Jasiukajtis extern float complex cpowf(float complex, float complex); 68*25c28e83SPiotr Jasiukajtis extern float complex cprojf(float complex); 69*25c28e83SPiotr Jasiukajtis extern float complex csinf(float complex); 70*25c28e83SPiotr Jasiukajtis extern float complex csinhf(float complex); 71*25c28e83SPiotr Jasiukajtis extern float complex csqrtf(float complex); 72*25c28e83SPiotr Jasiukajtis extern float complex ctanf(float complex); 73*25c28e83SPiotr Jasiukajtis extern float complex ctanhf(float complex); 74*25c28e83SPiotr Jasiukajtis 75*25c28e83SPiotr Jasiukajtis extern double cabs(double complex); 76*25c28e83SPiotr Jasiukajtis extern double carg(double complex); 77*25c28e83SPiotr Jasiukajtis extern double cimag(double complex); 78*25c28e83SPiotr Jasiukajtis extern double creal(double complex); 79*25c28e83SPiotr Jasiukajtis extern double complex cacos(double complex); 80*25c28e83SPiotr Jasiukajtis extern double complex cacosh(double complex); 81*25c28e83SPiotr Jasiukajtis extern double complex casin(double complex); 82*25c28e83SPiotr Jasiukajtis extern double complex casinh(double complex); 83*25c28e83SPiotr Jasiukajtis extern double complex catan(double complex); 84*25c28e83SPiotr Jasiukajtis extern double complex catanh(double complex); 85*25c28e83SPiotr Jasiukajtis extern double complex ccos(double complex); 86*25c28e83SPiotr Jasiukajtis extern double complex ccosh(double complex); 87*25c28e83SPiotr Jasiukajtis extern double complex cexp(double complex); 88*25c28e83SPiotr Jasiukajtis #if defined(__PRAGMA_REDEFINE_EXTNAME) 89*25c28e83SPiotr Jasiukajtis #pragma redefine_extname clog __clog 90*25c28e83SPiotr Jasiukajtis #else 91*25c28e83SPiotr Jasiukajtis #undef clog 92*25c28e83SPiotr Jasiukajtis #define clog __clog 93*25c28e83SPiotr Jasiukajtis #endif 94*25c28e83SPiotr Jasiukajtis extern double complex clog(double complex); 95*25c28e83SPiotr Jasiukajtis extern double complex conj(double complex); 96*25c28e83SPiotr Jasiukajtis extern double complex cpow(double complex, double complex); 97*25c28e83SPiotr Jasiukajtis extern double complex cproj(double complex); 98*25c28e83SPiotr Jasiukajtis extern double complex csin(double complex); 99*25c28e83SPiotr Jasiukajtis extern double complex csinh(double complex); 100*25c28e83SPiotr Jasiukajtis extern double complex csqrt(double complex); 101*25c28e83SPiotr Jasiukajtis extern double complex ctan(double complex); 102*25c28e83SPiotr Jasiukajtis extern double complex ctanh(double complex); 103*25c28e83SPiotr Jasiukajtis 104*25c28e83SPiotr Jasiukajtis extern long double cabsl(long double complex); 105*25c28e83SPiotr Jasiukajtis extern long double cargl(long double complex); 106*25c28e83SPiotr Jasiukajtis extern long double cimagl(long double complex); 107*25c28e83SPiotr Jasiukajtis extern long double creall(long double complex); 108*25c28e83SPiotr Jasiukajtis extern long double complex cacoshl(long double complex); 109*25c28e83SPiotr Jasiukajtis extern long double complex cacosl(long double complex); 110*25c28e83SPiotr Jasiukajtis extern long double complex casinhl(long double complex); 111*25c28e83SPiotr Jasiukajtis extern long double complex casinl(long double complex); 112*25c28e83SPiotr Jasiukajtis extern long double complex catanhl(long double complex); 113*25c28e83SPiotr Jasiukajtis extern long double complex catanl(long double complex); 114*25c28e83SPiotr Jasiukajtis extern long double complex ccoshl(long double complex); 115*25c28e83SPiotr Jasiukajtis extern long double complex ccosl(long double complex); 116*25c28e83SPiotr Jasiukajtis extern long double complex cexpl(long double complex); 117*25c28e83SPiotr Jasiukajtis extern long double complex clogl(long double complex); 118*25c28e83SPiotr Jasiukajtis extern long double complex conjl(long double complex); 119*25c28e83SPiotr Jasiukajtis extern long double complex cpowl(long double complex, long double complex); 120*25c28e83SPiotr Jasiukajtis extern long double complex cprojl(long double complex); 121*25c28e83SPiotr Jasiukajtis extern long double complex csinhl(long double complex); 122*25c28e83SPiotr Jasiukajtis extern long double complex csinl(long double complex); 123*25c28e83SPiotr Jasiukajtis extern long double complex csqrtl(long double complex); 124*25c28e83SPiotr Jasiukajtis extern long double complex ctanhl(long double complex); 125*25c28e83SPiotr Jasiukajtis extern long double complex ctanl(long double complex); 126*25c28e83SPiotr Jasiukajtis 127*25c28e83SPiotr Jasiukajtis #ifdef __cplusplus 128*25c28e83SPiotr Jasiukajtis } 129*25c28e83SPiotr Jasiukajtis #endif 130*25c28e83SPiotr Jasiukajtis #endif /* _COMPLEX_H */ 131