Home | History | Annotate | Line # | Download | only in stdc
      1 /**
      2  * D header file for C99.
      3  *
      4  * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_complex.h.html, _complex.h)
      5  *
      6  * Copyright: Copyright Sean Kelly 2005 - 2009.
      7  * License: Distributed under the
      8  *      $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
      9  *    (See accompanying file LICENSE)
     10  * Authors:   Sean Kelly
     11  * Source:    $(DRUNTIMESRC core/stdc/_complex.d)
     12  * Standards: ISO/IEC 9899:1999 (E)
     13  */
     14 
     15 module core.stdc.complex;
     16 
     17 extern (C):
     18 @trusted: // All of these operate on floating point values only.
     19 nothrow:
     20 @nogc:
     21 
     22 // @@@DEPRECATED_2.105@@@
     23 deprecated:
     24 alias creal complex;
     25 alias ireal imaginary;
     26 cdouble cacos(cdouble z);
     27 cfloat  cacosf(cfloat z);
     28 creal   cacosl(creal z);
     29 
     30 cdouble casin(cdouble z);
     31 cfloat  casinf(cfloat z);
     32 creal   casinl(creal z);
     33 
     34 cdouble catan(cdouble z);
     35 cfloat  catanf(cfloat z);
     36 creal   catanl(creal z);
     37 
     38 cdouble ccos(cdouble z);
     39 cfloat  ccosf(cfloat z);
     40 creal   ccosl(creal z);
     41 
     42 cdouble csin(cdouble z);
     43 cfloat  csinf(cfloat z);
     44 creal   csinl(creal z);
     45 
     46 cdouble ctan(cdouble z);
     47 cfloat  ctanf(cfloat z);
     48 creal   ctanl(creal z);
     49 
     50 cdouble cacosh(cdouble z);
     51 cfloat  cacoshf(cfloat z);
     52 creal   cacoshl(creal z);
     53 
     54 cdouble casinh(cdouble z);
     55 cfloat  casinhf(cfloat z);
     56 creal   casinhl(creal z);
     57 
     58 cdouble catanh(cdouble z);
     59 cfloat  catanhf(cfloat z);
     60 creal   catanhl(creal z);
     61 
     62 cdouble ccosh(cdouble z);
     63 cfloat  ccoshf(cfloat z);
     64 creal   ccoshl(creal z);
     65 
     66 cdouble csinh(cdouble z);
     67 cfloat  csinhf(cfloat z);
     68 creal   csinhl(creal z);
     69 
     70 cdouble ctanh(cdouble z);
     71 cfloat  ctanhf(cfloat z);
     72 creal   ctanhl(creal z);
     73 
     74 cdouble cexp(cdouble z);
     75 cfloat  cexpf(cfloat z);
     76 creal   cexpl(creal z);
     77 
     78 cdouble clog(cdouble z);
     79 cfloat  clogf(cfloat z);
     80 creal   clogl(creal z);
     81 
     82  double cabs(cdouble z);
     83  float  cabsf(cfloat z);
     84  real   cabsl(creal z);
     85 
     86 cdouble cpow(cdouble x, cdouble y);
     87 cfloat  cpowf(cfloat x, cfloat y);
     88 creal   cpowl(creal x, creal y);
     89 
     90 cdouble csqrt(cdouble z);
     91 cfloat  csqrtf(cfloat z);
     92 creal   csqrtl(creal z);
     93 
     94  double carg(cdouble z);
     95  float  cargf(cfloat z);
     96  real   cargl(creal z);
     97 
     98 pragma(inline, true) double cimag(cdouble z) { return z.im; }
     99 pragma(inline, true) float  cimagf(cfloat z) { return z.im; }
    100 pragma(inline, true) real   cimagl(creal z)  { return z.im; }
    101 
    102 cdouble conj(cdouble z);
    103 cfloat  conjf(cfloat z);
    104 creal   conjl(creal z);
    105 
    106 cdouble cproj(cdouble z);
    107 cfloat  cprojf(cfloat z);
    108 creal   cprojl(creal z);
    109 
    110 // Note: `creal` is a keyword in D and so this function is inaccessible, use `creald` instead
    111 //pragma(inline, true) double creal(cdouble z) { return z.re; }
    112 
    113 pragma(inline, true) double creald(cdouble z) { return z.re; }
    114 pragma(inline, true) float  crealf(cfloat z) { return z.re; }
    115 pragma(inline, true) real   creall(creal z)  { return z.re; }
    116