This header defines macro functions that correspond to the functions in
<math.h>
, but which can take other non-
floating point types as arguments:
Every function in
<math.h>
that takes at least one
double
as argument (except
modf) is defined in
<tgmath.h>
as a macro with the same semantics but taking
generic parameters instead:
Each of the arguments provided for these
generic parameters that is of an integer type is casted to a
double
; Arguments of
floating-point types are used without transformation (directly as
float
,
double
or
long double
).
This header automatically includes
<math.h>
and
<complex.h>
: The type-generic function can also take
complex values if the function exists in
<complex.h>
(prefixed with a
"c"
character).