// ----------------------------------------------------------------------------
// DEFINES
-// TODO: #defines for complex, _Complex_I, imaginary, _Imaginary_I, and I.
+#ifndef __cplusplus
+#define complex _Complex
+#endif
+
+#define _Complex_I (float _Complex){0, 1}
+#define imaginary _Imaginary // optional
+
+#ifdef imaginary
+#define _Imaginary_I ((float _Imaginary)1)
+#endif
+
+#ifdef imaginary
+#define I _Imaginary_I
+#else
+#define I _Complex_I
+#endif
// ----------------------------------------------------------------------------
// FUNCTIONS - C++
#ifdef __cplusplus
// These functions return the absolute value (magnitude) of their parameter.
-double abs( double _Complex x );
-float abs( float _Complex x );
-long double abs( long double _Complex x );
-double fabs( double _Complex x );
-float fabs( float _Complex x );
-long double fabs( long double _Complex x );
+double abs( double _Complex x );
+float abs( float _Complex x );
+long double abs( long double _Complex x );
+double fabs( double _Complex x );
+float fabs( float _Complex x );
+long double fabs( long double _Complex x );
// These functions return the sine of their parameter.
-double _Complex sin( double _Complex x );
-float _Complex sin( float _Complex x );
-long double _Complex sin( long double _Complex x );
+double _Complex sin( double _Complex x );
+float _Complex sin( float _Complex x );
+long double _Complex sin( long double _Complex x );
// These functions return the hyperbolic sine of their parameter.
-double _Complex sinh( double _Complex x );
-float _Complex sinh( float _Complex x );
-long double _Complex sinh( long double _Complex x );
+double _Complex sinh( double _Complex x );
+float _Complex sinh( float _Complex x );
+long double _Complex sinh( long double _Complex x );
// These functions return the arcsine of their parameter.
-double _Complex asin( double _Complex x );
-float _Complex asin( float _Complex x );
-long double _Complex asin( long double _Complex x );
+double _Complex asin( double _Complex x );
+float _Complex asin( float _Complex x );
+long double _Complex asin( long double _Complex x );
// These functions return the hyperbolic arcsine of their parameter.
double _Complex asinh( double _Complex x );
long double _Complex asinh( long double _Complex x );
// These functions return the cosine of their parameter.
-double _Complex cos( double _Complex x );
-float _Complex cos( float _Complex x );
-long double _Complex cos( long double _Complex x );
+double _Complex cos( double _Complex x );
+float _Complex cos( float _Complex x );
+long double _Complex cos( long double _Complex x );
// These functions return the hyperbolic cosine of their parameter.
-double _Complex cosh( double _Complex x );
-float _Complex cosh( float _Complex x );
-long double _Complex cosh( long double _Complex x );
+double _Complex cosh( double _Complex x );
+float _Complex cosh( float _Complex x );
+long double _Complex cosh( long double _Complex x );
// These functions return the arccosine of their parameter.
-double _Complex acos( double _Complex x );
-float _Complex acos( float _Complex x );
-long double _Complex acos( long double _Complex x );
+double _Complex acos( double _Complex x );
+float _Complex acos( float _Complex x );
+long double _Complex acos( long double _Complex x );
// These functions return the hyperbolic arccosine of their parameter.
double _Complex acosh( double _Complex x );
long double _Complex acosh( long double _Complex x );
// These functions return the tangent of their parameter.
-double _Complex tan( double _Complex x );
-float _Complex tan( float _Complex x );
-long double _Complex tan( long double _Complex x );
+double _Complex tan( double _Complex x );
+float _Complex tan( float _Complex x );
+long double _Complex tan( long double _Complex x );
// These functions return the hyperbolic tangent of their parameter.
-double _Complex tanh( double _Complex x );
-float _Complex tanh( float _Complex x );
-long double _Complex tanh( long double _Complex x );
+double _Complex tanh( double _Complex x );
+float _Complex tanh( float _Complex x );
+long double _Complex tanh( long double _Complex x );
// These functions return the arctangent of their parameter.
-double _Complex atan( double _Complex x );
-float _Complex atan( float _Complex x );
-long double _Complex atan( long double _Complex x );
+double _Complex atan( double _Complex x );
+float _Complex atan( float _Complex x );
+long double _Complex atan( long double _Complex x );
// These functions return the hyperbolic arctangent of their parameter.
double _Complex atanh( double _Complex x );
float creal( float _Complex x );
long double creal( long double _Complex x );
-// These functions return value^exponent.
-double _Complex pow( double _Complex value,
- double _Complex exponent );
-float _Complex pow( float _Complex value,
- float _Complex exponent );
-long double _Complex pow( long double _Complex value,
- long double _Complex exponent );
+// These functions return x^y.
+double _Complex pow( double _Complex x, double _Complex y );
+float _Complex pow( float _Complex x, float _Complex y );
+long double _Complex pow( long double _Complex x, long double _Complex y );
// These functions return the square root of their parameter.
-double _Complex sqrt( double _Complex x );
-float _Complex sqrt( float _Complex x );
-long double _Complex sqrt( long double _Complex x );
+double _Complex sqrt( double _Complex x );
+float _Complex sqrt( float _Complex x );
+long double _Complex sqrt( long double _Complex x );
// These functions return the exponential of their parameter.
-double _Complex exp( double _Complex x );
-float _Complex exp( float _Complex x );
-long double _Complex exp( long double _Complex x );
+double _Complex exp( double _Complex x );
+float _Complex exp( float _Complex x );
+long double _Complex exp( long double _Complex x );
// These functions return the logarithm of their parameter.
-double _Complex log( double _Complex x );
-float _Complex log( float _Complex x );
-long double _Complex log( long double _Complex x );
+double _Complex log( double _Complex x );
+float _Complex log( float _Complex x );
+long double _Complex log( long double _Complex x );
// These functions return the phase angle of their parameter.
-double arg( double _Complex x );
-float arg( float _Complex x );
-long double arg( long double _Complex x );
-float carg( float _Complex x );
-long double carg( long double _Complex x );
+double arg( double _Complex x );
+float arg( float _Complex x );
+long double arg( long double _Complex x );
+float carg( float _Complex x );
+long double carg( long double _Complex x );
// These functions return the conjugate of their parameter.
-float _Complex conj( float _Complex x );
-long double _Complex conj( long double _Complex x );
+float _Complex conj( float _Complex x );
+long double _Complex conj( long double _Complex x );
// These functions return the projection of their parameter.
float _Complex cproj( float _Complex x );
// FUNCTIONS - Standard C
// These functions return the absolute value (magnitude) of their parameter.
-double cabs( double _Complex x );
-float cabsf( float _Complex x );
-long double cabsl( long double _Complex x );
+double cabs( double _Complex x );
+float cabsf( float _Complex x );
+long double cabsl( long double _Complex x );
// These functions return the sine of their parameter.
-double _Complex csin( double _Complex x );
-float _Complex csinf( float _Complex x );
-long double _Complex csinl( long double _Complex x );
+double _Complex csin( double _Complex x );
+float _Complex csinf( float _Complex x );
+long double _Complex csinl( long double _Complex x );
// These functions return the hyperbolic sine of their parameter.
-double _Complex csinh( double _Complex x );
-float _Complex csinhf( float _Complex x );
-long double _Complex csinhl( long double _Complex x );
+double _Complex csinh( double _Complex x );
+float _Complex csinhf( float _Complex x );
+long double _Complex csinhl( long double _Complex x );
// These functions return the arcsine of their parameter.
-double _Complex casin( double _Complex x );
-float _Complex casinf( float _Complex x );
-long double _Complex casinl( long double _Complex x );
+double _Complex casin( double _Complex x );
+float _Complex casinf( float _Complex x );
+long double _Complex casinl( long double _Complex x );
// These functions return the hyperbolic arcsine of their parameter.
double _Complex casinh( double _Complex x );
long double _Complex casinhl( long double _Complex x );
// These functions return the cosine of their parameter.
-double _Complex ccos( double _Complex x );
-float _Complex ccosf( float _Complex x );
-long double _Complex ccosl( long double _Complex x );
+double _Complex ccos( double _Complex x );
+float _Complex ccosf( float _Complex x );
+long double _Complex ccosl( long double _Complex x );
// These functions return the hyperbolic cosine of their parameter.
-double _Complex ccosh( double _Complex x );
-float _Complex ccoshf( float _Complex x );
-long double _Complex ccoshl( long double _Complex x );
+double _Complex ccosh( double _Complex x );
+float _Complex ccoshf( float _Complex x );
+long double _Complex ccoshl( long double _Complex x );
// These functions return the arccosine of their parameter.
-double _Complex cacos( double _Complex x );
-float _Complex cacosf( float _Complex x );
-long double _Complex cacosl( long double _Complex x );
+double _Complex cacos( double _Complex x );
+float _Complex cacosf( float _Complex x );
+long double _Complex cacosl( long double _Complex x );
// These functions return the hyperbolic arccosine of their parameter.
double _Complex cacosh( double _Complex x );
long double _Complex cacoshl( long double _Complex x );
// These functions return the tangent of their parameter.
-double _Complex ctan( double _Complex x );
-float _Complex ctanf( float _Complex x );
-long double _Complex ctanl( long double _Complex x );
+double _Complex ctan( double _Complex x );
+float _Complex ctanf( float _Complex x );
+long double _Complex ctanl( long double _Complex x );
// These functions return the hyperbolic tangent of their parameter.
-double _Complex ctanh( double _Complex x );
-float _Complex ctanhf( float _Complex x );
-long double _Complex ctanhl( long double _Complex x );
+double _Complex ctanh( double _Complex x );
+float _Complex ctanhf( float _Complex x );
+long double _Complex ctanhl( long double _Complex x );
// These functions return the arctangent of their parameter.
-double _Complex catan( double _Complex x );
-float _Complex catanf( float _Complex x );
-long double _Complex catanl( long double _Complex x );
+double _Complex catan( double _Complex x );
+float _Complex catanf( float _Complex x );
+long double _Complex catanl( long double _Complex x );
// These functions return the hyperbolic arctangent of their parameter.
double _Complex catanh( double _Complex x );
long double _Complex catanhl( long double _Complex x );
// These functions return the imaginary part of their parameter.
-double cimag( double _Complex x );
-float cimagf( float _Complex x );
-long double cimagl( long double _Complex x );
+double cimag( double _Complex x );
+float cimagf( float _Complex x );
+long double cimagl( long double _Complex x );
// These functions return the real part of their parameter.
-double creal( double _Complex x );
-float crealf( float _Complex x );
-long double creall( long double _Complex x );
-
-// These functions return value^exponent.
-double _Complex cpow( double _Complex value,
- double _Complex exponent );
-float _Complex cpowf( float _Complex value,
- float _Complex exponent );
-long double _Complex cpowl( long double _Complex value,
- long double _Complex exponent );
+double creal( double _Complex x );
+float crealf( float _Complex x );
+long double creall( long double _Complex x );
+
+// These functions return x^y.
+double _Complex cpow( double _Complex x, double _Complex y );
+float _Complex cpowf( float _Complex x, float _Complex y );
+long double _Complex cpowl( long double _Complex x, long double _Complex y );
// These functions return the square root of their parameter.
-double _Complex csqrt( double _Complex x );
-float _Complex csqrtf( float _Complex x );
-long double _Complex csqrtl( long double _Complex x );
+double _Complex csqrt( double _Complex x );
+float _Complex csqrtf( float _Complex x );
+long double _Complex csqrtl( long double _Complex x );
// These functions return the exponential of their parameter.
-double _Complex cexp( double _Complex x );
-float _Complex cexpf( float _Complex x );
-long double _Complex cexpl( long double _Complex x );
+double _Complex cexp( double _Complex x );
+float _Complex cexpf( float _Complex x );
+long double _Complex cexpl( long double _Complex x );
// These functions return the logarithm of their parameter.
-double _Complex clog( double _Complex x );
-float _Complex clogf( float _Complex x );
-long double _Complex clogl( long double _Complex x );
+double _Complex clog( double _Complex x );
+float _Complex clogf( float _Complex x );
+long double _Complex clogl( long double _Complex x );
// These functions return the phase angle of their value.
-double carg( double _Complex x );
-float cargf( float _Complex x );
-long double cargl( long double _Complex x );
+double carg( double _Complex x );
+float cargf( float _Complex x );
+long double cargl( long double _Complex x );
// These functions return the conjugate of their parameter.
-double _Complex conj( double _Complex x );
-float _Complex conjf( float _Complex x );
-long double _Complex conjl( long double _Complex x );
+double _Complex conj( double _Complex x );
+float _Complex conjf( float _Complex x );
+long double _Complex conjl( long double _Complex x );
// These functions return the projection of their parameter.
-double _Complex cproj( double _Complex x );
-float _Complex cprojf( float _Complex x );
-long double _Complex cprojl( long double _Complex x );
+double _Complex cproj( double _Complex x );
+float _Complex cprojf( float _Complex x );
+long double _Complex cprojl( long double _Complex x );
#endif // __COMPLEX_H
// --------------------------------------------------------------------------
// TYPEDEFS
-typedef f-type double_t; // TODO
-typedef f-type float_t; // TODO
+typedef double_t; // TODO
+typedef float_t; // TODO
// --------------------------------------------------------------------------
// MACROS
#ifndef __cplusplus
-#define signbit(x) // TODO
-#define fpclassify(x) // TODO
-#define isfinite(x) // TODO
-#define isinf(x) // TODO
-#define isnan(x) // TODO
-#define isnormal(x) // TODO
+#define signbit( x ) // TODO
+#define fpclassify( x ) // TODO
+#define isfinite( x ) // TODO
+#define isinf( x ) // TODO
+#define isnan( x ) // TODO
+#define isnormal( x ) // TODO
-#define isgreater(x, y) // TODO
-#define isgreaterequal(x, y) // TODO
-#define isless(x, y) // TODO
-#define islessequal(x, y) // TODO
-#define islessgreater(x, y) // TODO
-#define isunordered(x, y) // TODO
+#define isgreater( x, y ) // TODO
+#define isgreaterequal( x, y ) // TODO
+#define isless( x, y ) // TODO
+#define islessequal( x, y ) // TODO
+#define islessgreater( x, y ) // TODO
+#define isunordered( x, y ) // TODO
#else // __cplusplus
// --------------------------------------------------------------------------
// FUNCTIONS - C++
+#ifdef __cplusplus
+
// These functions return the magnitude of their parameter.
-double abs(double x);
-float abs(float x);
-long double abs(long double x);
-float fabs(float x);
-long double fabs(long double x);
+double abs( double x );
+float abs( float x );
+long double abs( long double x );
+float fabs( float x );
+long double fabs( long double x );
// These functions return the sine of their parameter.
-float sin(float x);
-long double sin(long double x);
+float sin( float x );
+long double sin( long double x );
// These functions return the hyperbolic sine of their parameter.
-float sinh(float x);
-long double sinh(long double x);
+float sinh( float x );
+long double sinh( long double x );
// These functions return the arcsine of their parameter.
-float asin(float x);
-long double asin(long double x);
+float asin( float x );
+long double asin( long double x );
// These functions return the hyperbolic arcsine of their parameter.
-float asinh(float x);
-long double asinh(long double x);
+float asinh( float x );
+long double asinh( long double x );
// These functions return the cosine of their parameter.
-float cos(float x);
-long double cos(long double x);
+float cos( float x );
+long double cos( long double x );
// These functions return the hyperbolic cosine of their parameter.
-float cosh(float x);
-long double cosh(long double x);
+float cosh( float x );
+long double cosh( long double x );
// These functions return the arccosine of their parameter.
-float acos(float x);
-long double acos(long double x);
+float acos( float x );
+long double acos( long double x );
// These functions return the hyperbolic arccosine of their parameter.
-float acosh(float x);
-long double acosh(long double x);
+float acosh( float x );
+long double acosh( long double x );
// These functions return the tangent of their parameter.
-float tan(float x);
-long double tan(long double x);
+float tan( float x );
+long double tan( long double x );
// These functions return the hyperbolic tangent of their parameter.
-float tanh(float x);
-long double tanh(long double x);
+float tanh( float x );
+long double tanh( long double x );
// These functions return the arctangent of their parameter.
-float atan(float x);
-long double atan(long double x);
+float atan( float x );
+long double atan( long double x );
// These functions return the hyperbolic arctangent of their parameter.
-float atanh(float x);
-long double atanh(long double x);
+float atanh( float x );
+long double atanh( long double x );
// TODO
-float atan2(float y, float x);
-long double atan2(long double y, long double x);
+float atan2( float x, float y );
+long double atan2( long double x, long double y );
-// These functions return sqrt(x^2 + y^2).
-float hypot(float x, float y);
-long double hypot(long double x, long double y);
+// These functions return sqrt( x^2 + y^2 ).
+float hypot( float x, float y );
+long double hypot( long double x, long double y );
// These functions return their parameter x, raised to the power y.
-float pow(float x, float y);
-long double pow(long double x, long double y);
-double pow(double x, int y);
-float pow(float x, int y);
-long double pow(long double x, int y);
+float pow( float x, float y );
+long double pow( long double x, long double y );
+double pow( double x, int y );
+float pow( float x, int y );
+long double pow( long double x, int y );
// These functions return the square root of their parameter.
-float sqrt(float x);
-long double sqrt(long double x);
+float sqrt( float x );
+long double sqrt( long double x );
// TODO
-float cbrt(float x);
-long double cbrt(long double x);
+float cbrt( float x );
+long double cbrt( long double x );
// TODO
-float exp(float x);
-long double exp(long double x);
+float exp( float x );
+long double exp( long double x );
// TODO
-float exp2(float x);
-long double exp2(long double x);
+float exp2( float x );
+long double exp2( long double x );
// TODO
-float expm1(float x);
-long double expm1(long double x);
+float expm1( float x );
+long double expm1( long double x );
// TODO
-float frexp(float x, int * exponent);
-long double frexp(long double x, int * exponent);
+float frexp( float x, int * exponent );
+long double frexp( long double x, int * exponent );
// TODO
-float ldexp(float x, int exponent);
-long double ldexp(long double x, int exponent);
+float ldexp( float x, int exponent );
+long double ldexp( long double x, int exponent );
// These functions return the natural logarithm of their parameter.
-float log(float x);
-long double log(long double x);
+float log( float x );
+long double log( long double x );
-// These functions return the logarithm (base 10) of their parameter.
-float log10(float x);
-long double log10(long double x);
+// These functions return the logarithm (base 10 ) of their parameter.
+float log10( float x );
+long double log10( long double x );
-// These functions return the logarithm (base 2) of their parameter.
-float log2(float x);
-long double log2(long double x);
+// These functions return the logarithm (base 2 ) of their parameter.
+float log2( float x );
+long double log2( long double x );
// TODO
-float logb(float x);
-long double logb(long double x);
+float logb( float x );
+long double logb( long double x );
// TODO
-int ilogb(float x);
-int ilogb(long double x);
+int ilogb( float x );
+int ilogb( long double x );
// TODO
-float log1p(float x);
-long double log1p(long double x);
+float log1p( float x );
+long double log1p( long double x );
// These functions return the smallest integer no larger than their parameter
-float ceil(float x);
-long double ceil(long double x);
+float ceil( float x );
+long double ceil( long double x );
// These functions return the biggest integer no larger than their parameter.
-float floor(float x);
-long double floor(long double x);
+float floor( float x );
+long double floor( long double x );
// TODO
-float fmod(float x, float y);
-long double fmod(long double x, long double y);
+float fmod( float x, float y );
+long double fmod( long double x, long double y );
// TODO
-float modf(float x, float * integer);
-long double modf(long double x, long double * integer);
+float modf( float x, float * integer );
+long double modf( long double x, long double * integer );
// These functions return their parameter x, with the sign of parameter y.
-float copysign(float x, float y);
-long double copysign(long double x, long double y);
+float copysign( float x, float y );
+long double copysign( long double x, long double y );
// TODO
-float erf(float x);
-long double erf(long double x);
+float erf( float x );
+long double erf( long double x );
// TODO
-float erfc(float x);
-long double erfc(long double x);
+float erfc( float x );
+long double erfc( long double x );
// TODO
-float fdim(float x, float y);
-long double fdim(long double x, long double y);
+float fdim( float x, float y );
+long double fdim( long double x, long double y );
// TODO
-float fma(float x, float y, float z);
-long double fma(long double x, long double y, long double z);
+float fma( float x, float y, float z );
+long double fma( long double x, long double y, long double z );
// These functions return the larger of their parameters.
-float fmax(float x, float y);
-long double fmax(long double x, long double y);
+float fmax( float x, float y );
+long double fmax( long double x, long double y );
// These functions return the smaller of their parameters.
-float fmin(float x, float y);
-long double fmin(long double x, long double y);
+float fmin( float x, float y );
+long double fmin( long double x, long double y );
// TODO
-long long llrint(float x);
-long long llrint(long double x);
-long lrint(float x);
-long lrint(long double x);
-float rint(float x);
-long double rint(long double x);
+long long llrint( float x );
+long long llrint( long double x );
+long lrint( float x );
+long lrint( long double x );
+float rint( float x );
+long double rint( long double x );
// TODO
-long long llround(float x);
-long long llround(long double x);
-long lround(float x);
-long lround(long double x);
-float round(float x);
-long double round(long double x);
+long long llround( float x );
+long long llround( long double x );
+long lround( float x );
+long lround( long double x );
+float round( float x );
+long double round( long double x );
// TODO
-float trunc(float x);
-long double trunc(long double x);
+float trunc( float x );
+long double trunc( long double x );
// TODO
-float nearbyint(float x);
-long double nearbyint(long double x);
+float nearbyint( float x );
+long double nearbyint( long double x );
// TODO
-float nextafter(float x, float y);
-long double nextafter(long double x, long double y);
+float nextafter( float x, float y );
+long double nextafter( long double x, long double y );
// TODO
-float nexttoward(float x, long double y);
-long double nexttoward(long double x, long double y);
+float nexttoward( float x, long double y );
+long double nexttoward( long double x, long double y );
// TODO
-float remainder(float x, float y);
-long double remainder(long double x, long double y);
+float remainder( float x, float y );
+long double remainder( long double x, long double y );
// TODO
-float remquo(float x, float y, int * quotient);
-long double remquo(long double x, long double y, int * quotient);
+float remquo( float x, float y, int * quotient );
+long double remquo( long double x, long double y, int * quotient );
// TODO
-float scalbn(float x, int ex);
-long double scalbn(long double x, int ex);
+float scalbn( float x, int ex );
+long double scalbn( long double x, int ex );
// TODO
-float scalbln(float x, long ex);
-long double scalbln(long double x, long ex);
+float scalbln( float x, long ex );
+long double scalbln( long double x, long ex );
// TODO
-float lgamma(float x);
-long double lgamma(long double x);
+float lgamma( float x );
+long double lgamma( long double x );
// TODO
-float tgamma(float x);
-long double tgamma(long double x);
+float tgamma( float x );
+long double tgamma( long double x );
+
+#endif // __cplusplus
// ----------------------------------------------------------------------------
// FUNCTIONS - Standard C
// These functions return the magnitude of its parameter.
-double fabs(double x);
-float fabsf(float x);
-long double fabsl(long double x);
+double fabs( double x );
+float fabsf( float x );
+long double fabsl( long double x );
// These functions return the sine of its parameter.
-double sin(double x);
-float sinf(float x);
-long double sinl(long double x);
+double sin( double x );
+float sinf( float x );
+long double sinl( long double x );
// These functions return the hyperbolic cosine of its parameter.
-double sinh(double x);
-float sinhf(float x);
-long double sinhl(long double x);
+double sinh( double x );
+float sinhf( float x );
+long double sinhl( long double x );
// These functions return the arcsine of its parameter.
-double asin(double x);
-float asinf(float x);
-long double asinl(long double x);
+double asin( double x );
+float asinf( float x );
+long double asinl( long double x );
// These functions return the hyperbolic arcsine of their parameter.
-double asinh(double x);
-float asinhf(float x);
-long double asinhl(long double x);
+double asinh( double x );
+float asinhf( float x );
+long double asinhl( long double x );
// These functions return the cosine of its parameter.
-double cos(double x);
-float cosf(float x);
-long double cosl(long double x);
+double cos( double x );
+float cosf( float x );
+long double cosl( long double x );
// These functions return the hyperbolic cosine of its parameter.
-double cosh(double x);
-float coshf(float x);
-long double coshl(long double x);
+double cosh( double x );
+float coshf( float x );
+long double coshl( long double x );
// These functions return the arccosine of its parameter.
-double acos(double x);
-float acosf(float x);
-long double acosl(long double x);
+double acos( double x );
+float acosf( float x );
+long double acosl( long double x );
// These functions return the hyperbolic arccosine of their parameter.
-double acosh(double x);
-float acoshf(float x);
-long double acoshl(long double x);
+double acosh( double x );
+float acoshf( float x );
+long double acoshl( long double x );
// These functions return the tangent of its parameter.
-double tan(double x);
-float tanf(float x);
-long double tanl(long double x);
+double tan( double x );
+float tanf( float x );
+long double tanl( long double x );
// These functions return the hyperbolic tangent of its parameter.
-double tanh(double x);
-float tanhf(float x);
-long double tanhl(long double x);
+double tanh( double x );
+float tanhf( float x );
+long double tanhl( long double x );
// These functions return the arctangent of its parameter.
-double atan(double x);
-float atanf(float x);
-long double atanl(long double x);
+double atan( double x );
+float atanf( float x );
+long double atanl( long double x );
// These functions return the hyperbolic arctangent of their parameter.
-double atanh(double x);
-float atanhf(float x);
-long double atanhl(long double x);
+double atanh( double x );
+float atanhf( float x );
+long double atanhl( long double x );
// TODO
-double atan2(double y, double x);
-float atan2f(float y, float x);
-long double atan2l(long double y, long double x);
+double atan2( double y, double x );
+float atan2f( float y, float x );
+long double atan2l( long double y, long double x );
-// These functions return sqrt(x^2 + y^2).
-double hypot(double x, double y);
-float hypotf(float x, float y);
-long double hypotl(long double x, long double y);
+// These functions return sqrt(x^2 + y^2 ).
+double hypot( double x, double y );
+float hypotf( float x, float y );
+long double hypotl( long double x, long double y );
// These functions return its parameter x, raised to the power y.
-double pow(double x, double y);
-float powf(float x, float y);
-long double powl(long double x, long double y);
+double pow( double x, double y );
+float powf( float x, float y );
+long double powl( long double x, long double y );
// These functions return the square root of its parameter.
-double sqrt(double x);
-float sqrtf(float x);
-long double sqrtl(long double x);
+double sqrt( double x );
+float sqrtf( float x );
+long double sqrtl( long double x );
// TODO
-double cbrt(double x);
-float cbrtf(float x);
-long double cbrtl(long double x);
+double cbrt( double x );
+float cbrtf( float x );
+long double cbrtl( long double x );
// TODO
-double exp(double x);
-float expf(float x);
-long double expl(long double x);
+double exp( double x );
+float expf( float x );
+long double expl( long double x );
// TODO
-double exp2(double x);
-float exp2f(float x);
-long double exp2l(long double x);
+double exp2( double x );
+float exp2f( float x );
+long double exp2l( long double x );
// TODO
-double expm1(double x);
-float expm1f(float x);
-long double expm1l(long double x);
+double expm1( double x );
+float expm1f( float x );
+long double expm1l( long double x );
// TODO
-double frexp(double x, int * exp);
-float frexpf(float x, int * exp);
-long double frexpl(long double x, int * exp);
+double frexp( double x, int * exp );
+float frexpf( float x, int * exp );
+long double frexpl( long double x, int * exp );
// TODO
-double ldexp(double x, int exp);
-float ldexpf(float x, int exp);
-long double ldexpl(long double x, int exp);
+double ldexp( double x, int exp );
+float ldexpf( float x, int exp );
+long double ldexpl( long double x, int exp );
// These functions return the natural logarithm of its parameter.
-double log(double x);
-float logf(float x);
-long double logl(long double x);
+double log( double x );
+float logf( float x );
+long double logl( long double x );
-// These functions return the logarithm (base 10) of its parameter.
-double log10(double x);
-float log10f(float x);
-long double log10l(long double x);
+// These functions return the logarithm (base 10 ) of its parameter.
+double log10( double x );
+float log10f( float x );
+long double log10l( long double x );
-// These functions return the logarithm (base 2) of their parameter.
-double log2(double x);
-float log2f(float x);
-long double log2l(long double x);
+// These functions return the logarithm (base 2 ) of their parameter.
+double log2( double x );
+float log2f( float x );
+long double log2l( long double x );
// TODO
-double logb(double x);
-float logbf(float x);
-long double logbl(long double x);
+double logb( double x );
+float logbf( float x );
+long double logbl( long double x );
// TODO
-int ilogb(double x);
-int ilogbf(float x);
-int ilogbl(long double x);
+int ilogb( double x );
+int ilogbf( float x );
+int ilogbl( long double x );
// TODO
-double log1p(double x);
-float log1pf(float x);
-long double log1pl(long double x);
+double log1p( double x );
+float log1pf( float x );
+long double log1pl( long double x );
// These functions return the smallest integer no smaller than value.
-double ceil(double x);
-float ceilf(float x);
-long double ceill(long double x);
+double ceil( double x );
+float ceilf( float x );
+long double ceill( long double x );
// These functions return the largest integer no larger than its parameter.
-double floor(double x);
-float floorf(float x);
-long double floorl(long double x);
+double floor( double x );
+float floorf( float x );
+long double floorl( long double x );
// TODO
-double fmod(double x, double y);
-float fmodf(float x, float y);
-long double fmodl(long double x, long double y);
+double fmod( double x, double y );
+float fmodf( float x, float y );
+long double fmodl( long double x, long double y );
// TODO
-double modf(double x, double * integer);
-float modff(float x, float * integer);
-long double modfl(long double x, long double * integer);
+double modf( double x, double * integer );
+float modff( float x, float * integer );
+long double modfl( long double x, long double * integer );
// These functions return their parameter x, with the sign of parameter y.
-double copysign(double x, double y);
-float copysignf(float x, float y);
-long double copysignl(long double x, long double y);
+double copysign( double x, double y );
+float copysignf( float x, float y );
+long double copysignl( long double x, long double y );
// TODO
-double erf(double x);
-float erff(float x);
-long double erfl(long double x);
+double erf( double x );
+float erff( float x );
+long double erfl( long double x );
// TODO
-double erfc(double x);
-float erfcf(float x);
-long double erfcl(long double x);
+double erfc( double x );
+float erfcf( float x );
+long double erfcl( long double x );
// TODO
-double fdim(double x, double y);
-float fdimf(float x, float y);
-long double fdiml(long double x, long double y);
+double fdim( double x, double y );
+float fdimf( float x, float y );
+long double fdiml( long double x, long double y );
// TODO
-double fma(double x, double y, double z);
-float fmaf(float x, float y, float z);
-long double fmal(long double x, long double y, long double z);
+double fma( double x, double y, double z );
+float fmaf( float x, float y, float z );
+long double fmal( long double x, long double y, long double z );
// These functions return the larger of their parameters.
-double fmax(double x, double y);
-float fmaxf(float x, float y);
-long double fmaxl(long double x, long double y);
+double fmax( double x, double y );
+float fmaxf( float x, float y );
+long double fmaxl( long double x, long double y );
// These functions return the smaller of their parameters.
-double fmin(double x, double y);
-float fminf(float x, float y);
-long double fminl(long double x, long double y);
+double fmin( double x, double y );
+float fminf( float x, float y );
+long double fminl( long double x, long double y );
// TODO
-long long llrint(double x);
-long long llrintf(float x);
-long long llrintl(long double x);
-long lrint(double x);
-long lrintf(float x);
-long lrintl(long double x);
-double rint(double x);
-float rintf(float x);
-long double rintl(long double x);
+long long llrint( double x );
+long long llrintf( float x );
+long long llrintl( long double x );
+long lrint( double x );
+long lrintf( float x );
+long lrintl( long double x );
+double rint( double x );
+float rintf( float x );
+long double rintl( long double x );
// TODO
-long long llround(double x);
-long long llroundf(float x);
-long long llroundl(long double x);
-long lround(double x);
-long lroundf(float x);
-long lroundl(long double x);
-double round(double x);
-float roundf(float x);
-long double roundl(long double x);
+long long llround( double x );
+long long llroundf( float x );
+long long llroundl( long double x );
+long lround( double x );
+long lroundf( float x );
+long lroundl( long double x );
+double round( double x );
+float roundf( float x );
+long double roundl( long double x );
// TODO
-double trunc(double x);
-float truncf(float x);
-long double truncl(long double x);
+double trunc( double x );
+float truncf( float x );
+long double truncl( long double x );
-double nearbyint(double x);
-float nearbyintf(float x);
-long double nearbyintl(long double x);
+double nearbyint( double x );
+float nearbyintf( float x );
+long double nearbyintl( long double x );
-double nextafter(double x, double y);
-float nextafterf(float x, float y);
-long double nextafterl(long double x, long double y);
+double nextafter( double x, double y );
+float nextafterf( float x, float y );
+long double nextafterl( long double x, long double y );
// TODO
-double nexttoward(double x, long double y);
-float nexttowardf(float x, long double y);
-long double nexttowardl(long double x, long double y);
+double nexttoward( double x, long double y );
+float nexttowardf( float x, long double y );
+long double nexttowardl( long double x, long double y );
// TODO
-double remainder(double x, double y);
-float remainderf(float x, float y);
-long double remainderl(long double x, long double y);
+double remainder( double x, double y );
+float remainderf( float x, float y );
+long double remainderl( long double x, long double y );
// TODO
-double remquo(double x, double y, int * pquo);
-float remquof(float x, float y, int * pquo);
-long double remquol(long double x, long double y, int * pquo);
+double remquo( double x, double y, int * pquo );
+float remquof( float x, float y, int * pquo );
+long double remquol( long double x, long double y, int * pquo );
// TODO
-double scalbn(double x, int ex);
-float scalbnf(float x, int ex);
-long double scalbnl(long double x, int ex);
+double scalbn( double x, int ex );
+float scalbnf( float x, int ex );
+long double scalbnl( long double x, int ex );
// TODO
-double scalbln(double x, long ex);
-float scalblnf(float x, long ex);
-long double scalblnl(long double x, long ex);
+double scalbln( double x, long ex );
+float scalblnf( float x, long ex );
+long double scalblnl( long double x, long ex );
// TODO
-double lgamma(double x);
-float lgammaf(float x);
-long double lgammal(long double x);
+double lgamma( double x );
+float lgammaf( float x );
+long double lgammal( long double x );
// TODO
-double tgamma(double x);
-float tgammaf(float x);
-long double tgammal(long double x);
+double tgamma( double x );
+float tgammaf( float x );
+long double tgammal( long double x );
// TODO
-double nan(const char *str);
-float nanf(const char *str);
-long double nanl(const char *str);
+double nan( const char *str );
+float nanf( const char *str );
+long double nanl( const char *str );
#endif // __MATH_H