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