github.com/afumu/libc@v0.0.6/musl/include/complex.h (about)

     1  #ifndef _COMPLEX_H
     2  #define _COMPLEX_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #define complex _Complex
     9  #ifdef __GNUC__
    10  #define _Complex_I (__extension__ (0.0f+1.0fi))
    11  #else
    12  #define _Complex_I (0.0f+1.0fi)
    13  #endif
    14  #define I _Complex_I
    15  
    16  double complex cacos(double complex);
    17  float complex cacosf(float complex);
    18  long double complex cacosl(long double complex);
    19  
    20  double complex casin(double complex);
    21  float complex casinf(float complex);
    22  long double complex casinl(long double complex);
    23  
    24  double complex catan(double complex);
    25  float complex catanf(float complex);
    26  long double complex catanl(long double complex);
    27  
    28  double complex ccos(double complex);
    29  float complex ccosf(float complex);
    30  long double complex ccosl(long double complex);
    31  
    32  double complex csin(double complex);
    33  float complex csinf(float complex);
    34  long double complex csinl(long double complex);
    35  
    36  double complex ctan(double complex);
    37  float complex ctanf(float complex);
    38  long double complex ctanl(long double complex);
    39  
    40  double complex cacosh(double complex);
    41  float complex cacoshf(float complex);
    42  long double complex cacoshl(long double complex);
    43  
    44  double complex casinh(double complex);
    45  float complex casinhf(float complex);
    46  long double complex casinhl(long double complex);
    47  
    48  double complex catanh(double complex);
    49  float complex catanhf(float complex);
    50  long double complex catanhl(long double complex);
    51  
    52  double complex ccosh(double complex);
    53  float complex ccoshf(float complex);
    54  long double complex ccoshl(long double complex);
    55  
    56  double complex csinh(double complex);
    57  float complex csinhf(float complex);
    58  long double complex csinhl(long double complex);
    59  
    60  double complex ctanh(double complex);
    61  float complex ctanhf(float complex);
    62  long double complex ctanhl(long double complex);
    63  
    64  double complex cexp(double complex);
    65  float complex cexpf(float complex);
    66  long double complex cexpl(long double complex);
    67  
    68  double complex clog(double complex);
    69  float complex clogf(float complex);
    70  long double complex clogl(long double complex);
    71  
    72  double cabs(double complex);
    73  float cabsf(float complex);
    74  long double cabsl(long double complex);
    75  
    76  double complex cpow(double complex, double complex);
    77  float complex cpowf(float complex, float complex);
    78  long double complex cpowl(long double complex, long double complex);
    79  
    80  double complex csqrt(double complex);
    81  float complex csqrtf(float complex);
    82  long double complex csqrtl(long double complex);
    83  
    84  double carg(double complex);
    85  float cargf(float complex);
    86  long double cargl(long double complex);
    87  
    88  double cimag(double complex);
    89  float cimagf(float complex);
    90  long double cimagl(long double complex);
    91  
    92  double complex conj(double complex);
    93  float complex conjf(float complex);
    94  long double complex conjl(long double complex);
    95  
    96  double complex cproj(double complex);
    97  float complex cprojf(float complex);
    98  long double complex cprojl(long double complex);
    99  
   100  double creal(double complex);
   101  float crealf(float complex);
   102  long double creall(long double complex);
   103  
   104  #ifndef __cplusplus
   105  #define __CIMAG(x, t) \
   106  	(+(union { _Complex t __z; t __xy[2]; }){(_Complex t)(x)}.__xy[1])
   107  
   108  #define creal(x) ((double)(x))
   109  #define crealf(x) ((float)(x))
   110  #define creall(x) ((long double)(x))
   111  
   112  #define cimag(x) __CIMAG(x, double)
   113  #define cimagf(x) __CIMAG(x, float)
   114  #define cimagl(x) __CIMAG(x, long double)
   115  #endif
   116  
   117  #if __STDC_VERSION__ >= 201112L
   118  #if defined(_Imaginary_I)
   119  #define __CMPLX(x, y, t) ((t)(x) + _Imaginary_I*(t)(y))
   120  #elif defined(__clang__)
   121  #define __CMPLX(x, y, t) (+(_Complex t){ (t)(x), (t)(y) })
   122  #else
   123  #define __CMPLX(x, y, t) (__builtin_complex((t)(x), (t)(y)))
   124  #endif
   125  #define CMPLX(x, y) __CMPLX(x, y, double)
   126  #define CMPLXF(x, y) __CMPLX(x, y, float)
   127  #define CMPLXL(x, y) __CMPLX(x, y, long double)
   128  #endif
   129  
   130  #ifdef __cplusplus
   131  }
   132  #endif
   133  #endif