#ifndef __MATH_H
#define __MATH_H __MATH_H
+// TODO: Documentation
+
// ----------------------------------------------------------------------------
// DEFINES
-#define HUGE_VAL // TODO
-#define HUGE_VALF // TODO
-#define HUGE_VALL // TODO
+#define HUGE_VAL // TODO - personality?
+#define HUGE_VALF // TODO - personality?
+#define HUGE_VALL // TODO - personality?
-#define INFINITY // TODO
-#define NAN // TODO
+#define INFINITY // TODO - personality?
+#define NAN // TODO - personality?
-#define FP_FAST_FMA // TODO
-#define FP_FAST_FMAF // TODO
-#define FP_FAST_FMAL // TODO
+#define FP_FAST_FMA // TODO - personality?
+#define FP_FAST_FMAF // TODO - personality?
+#define FP_FAST_FMAL // TODO - personality?
-#define FP_INFINITE // TODO
-#define FP_NAN // TODO
-#define FP_NORMAL // TODO
-#define FP_SUBNORMAL // TODO
-#define FP_ZERO // TODO
+#define FP_INFINITE // TODO - personality?
+#define FP_NAN // TODO - personality?
+#define FP_NORMAL // TODO - personality?
+#define FP_SUBNORMAL // TODO - personality?
+#define FP_ZERO // TODO - personality?
-#define FP_ILOGB0 // TODO
-#define FP_ILOGBNAN // TODO
+#define FP_ILOGB0 // TODO - personality?
+#define FP_ILOGBNAN // TODO - personality?
-#define MATH_ERRNO 1
-#define MATH_ERREXCEPT 2
-#define math_errhandling // TODO
+#define MATH_ERRNO 1 // personality?
+#define MATH_ERREXCEPT 2 // personality?
+#define math_errhandling // TODO - personality?
// --------------------------------------------------------------------------
// TYPEDEFS
-typedef double_t; // TODO
-typedef float_t; // TODO
+typedef double_t; // TODO - personality?
+typedef float_t; // TODO - personality?
// --------------------------------------------------------------------------
// MACROS
long double asin( long double x );
// These functions compute the arc hyperbolic sine of x.
-// @returns arsinh x.
float asinh( float x );
long double asinh( long double x );
long double fabsl( long double x );
// These functions compute the sine of x (measured in radians).
-// @returns sin x.
double sin( double x );
float sinf( float x );
long double sinl( long double x );
long double asinhl( long double x );
// These functions compute the cosine of x (measured in radians).
-// @returns cos x.
double cos( double x );
float cosf( float x );
long double cosl( long double x );
float acoshf( float x );
long double acoshl( long double x );
-// These functions return the tangent of x (measured in radians).
-// @returns tan x.
+// These functions return the tangent of x.
double tan( double x );
float tanf( float x );
long double tanl( long double x );
float tanhf( float x );
long double tanhl( long double x );
-// These functions compute the principal value of the arc tangent of x.
-// @returns arctan x in the interval [-p/2, +p/2] radians.
+// These functions compute the arctangent of x.
double atan( double x );
float atanf( float x );
long double atanl( long double x );