home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue2 / SDL.ARC / !unixlib / source / clib / h / complex < prev    next >
Encoding:
Text File  |  2004-09-05  |  4.3 KB  |  161 lines

  1. /****************************************************************************
  2.  *
  3.  * $Source: /usr/local/cvsroot/gccsdk/unixlib/source/clib/complex.h,v $
  4.  * $Date: 2004/04/12 13:03:37 $
  5.  * $Revision: 1.5 $
  6.  * $State: Exp $
  7.  * $Author: nick $
  8.  *
  9.  ***************************************************************************/
  10.  
  11. /* ISO C99: 7.3 Complex arithmetic <complex.h> */
  12.  
  13. #ifndef __COMPLEX_H
  14. #define __COMPLEX_H 1
  15.  
  16. #include <unixlib/features.h>
  17.  
  18. __BEGIN_DECLS
  19.  
  20. #ifdef __GNUC__
  21. #define _Complex __complex__
  22. #define complex _Complex
  23.  
  24. /* Narrowest imaginary unit.  */
  25. #define _Complex_I    (__extension__ 1.0iF)
  26. #else
  27. /* Acorn C doesn't support complex numbers.
  28.    Define enough macros to allow compilation to continue even though
  29.    the functions will never work.  */
  30. #define _Complex /**/
  31. #define __real__ /**/
  32. #define __imag__ /**/
  33. #define __complex__ /**/
  34. #endif
  35.  
  36.  
  37. /* Another more descriptive name is `I'.  */
  38. #undef I
  39. #define I _Complex_I
  40.  
  41. /* Optimization aids.  */
  42. #define CX_LIMITED_RANGE_ON
  43. #define CX_LIMITED_RANGE_OFF
  44. #define CX_LIMITED_RANGE_DEFAULT
  45.  
  46. /* Trigonometric functions.  */
  47.  
  48. /* Arc cosine of Z.  */
  49. extern _Complex double cacos (double _Complex __z)
  50.      __THROW __attribute__ ((__const__));
  51. extern _Complex float cacosf (float _Complex __z)
  52.      __THROW __attribute__ ((__const__));
  53. extern _Complex long double cacosl (long double _Complex __z)
  54.      __THROW __attribute__ ((__const__));
  55.  
  56. /* Arc sine of Z.  */
  57. extern _Complex double casin (double _Complex __z)
  58.      __THROW __attribute__ ((__const__));
  59.  
  60. /* Arc tangent of Z.  */
  61. extern _Complex double catan (double _Complex __z)
  62.      __THROW __attribute__ ((__const__));
  63.  
  64. /* Cosine of Z.  */
  65. extern _Complex double ccos (double _Complex __z)
  66.      __THROW __attribute__ ((__const__));
  67.  
  68. /* Sine of Z.  */
  69. extern _Complex double csin (double _Complex __z)
  70.      __THROW __attribute__ ((__const__));
  71.  
  72. /* Tangent of Z.  */
  73. extern _Complex double ctan (double _Complex __z)
  74.      __THROW __attribute__ ((__const__));
  75.  
  76.  
  77. /* Hyperbolic functions.  */
  78.  
  79. /* Hyperbolic arc cosine of Z.  */
  80. extern _Complex double cacosh (double _Complex __z)
  81.      __THROW __attribute__ ((__const__));
  82.  
  83. /* Hyperbolic arc sine of Z.  */
  84. extern _Complex double casinh (double _Complex __z)
  85.      __THROW __attribute__ ((__const__));
  86.  
  87. /* Hyperbolic arc tangent of Z.  */
  88. extern _Complex double catanh (double _Complex __z)
  89.      __THROW __attribute__ ((__const__));
  90.  
  91. /* Hyperbolic cosine of Z.  */
  92. extern _Complex double ccosh (double _Complex __z)
  93.      __THROW __attribute__ ((__const__));
  94.  
  95. /* Hyperbolic sine of Z.  */
  96. extern _Complex double csinh (double _Complex __z)
  97.      __THROW __attribute__ ((__const__));
  98.  
  99. /* Hyperbolic tangent of Z.  */
  100. extern _Complex double ctanh (double _Complex __z)
  101.      __THROW __attribute__ ((__const__));
  102.  
  103. /* Exponential and logarithmic functions.  */
  104.  
  105. /* Exponential function of Z.  */
  106. extern _Complex double cexp (double _Complex __z)
  107.      __THROW __attribute__ ((__const__));
  108.  
  109. /* Natural logarithm of Z.  */
  110. extern _Complex double clog (double _Complex __z)
  111.      __THROW __attribute__ ((__const__));
  112.  
  113. /* The base 10 logarithm is not defined by the standard but to implement
  114.    the standard C++ library it is handy.  */
  115. extern _Complex double clog10 (double _Complex __z)
  116.      __THROW __attribute__ ((__const__));
  117.  
  118. /* Power functions.  */
  119.  
  120. /* Return X to the Y power.  */
  121. extern _Complex double cpow (double _Complex __x, double _Complex __y)
  122.      __THROW __attribute__ ((__const__));
  123.  
  124. /* Return the square root of Z.  */
  125. extern _Complex double csqrt (double _Complex __z)
  126.      __THROW __attribute__ ((__const__));
  127.  
  128.  
  129. /* Absolute value, conjugates, and projection.  */
  130.  
  131. /* Absolute value of Z.  */
  132. extern double cabs (double _Complex __z)
  133.      __THROW __attribute__ ((__const__));
  134.  
  135. /* Argument value of Z.  */
  136. extern double carg (double _Complex __z)
  137.      __THROW __attribute__ ((__const__));
  138.  
  139. /* Complex conjugate of Z.  */
  140. extern _Complex double conj (double _Complex __z)
  141.      __THROW __attribute__ ((__const__));
  142.  
  143. /* Projection of Z onto the Riemann sphere.  */
  144. extern _Complex double cproj (double _Complex __z)
  145.      __THROW __attribute__ ((__const__));
  146.  
  147.  
  148. /* Decomposing complex values.  */
  149.  
  150. /* Imaginary part of Z.  */
  151. extern double cimag (double _Complex __z)
  152.      __THROW __attribute__ ((__const__));
  153.  
  154. /* Real part of Z.  */
  155. extern double creal (double _Complex __z)
  156.      __THROW __attribute__ ((__const__));
  157.  
  158. __END_DECLS
  159.  
  160. #endif
  161.