The Intel® HLS Compiler Pro Edition supports a subset of functions that are present in your native compiler through the HLS/math.h header file.
For each math.h function listed below, "●" indicates that the HLS compiler supports the function; "X" indicates that the function is not supported.
The math functions supported on Linux operating systems might differ from the math functions supported on Windows operating systems. Review the comments in the HLS/math.h header file to see which math functions are supported on the different operating systems.
Table 62. Trigonometric Functions
Trigonometric Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
cos |
cosf |
● |
sin |
sinf |
● |
tan |
tanf |
● |
acos |
acosf |
● |
asin |
asinf |
● |
atan |
atanf |
● |
atan2 |
atan2f |
● |
Table 63. Hyperbolic Functions
Hyperbolic Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
cosh |
coshf |
● |
sinh |
sinhf |
● |
tanh |
tanhf |
● |
acosh |
acoshf |
● |
asinh |
asinhf |
● |
atanh |
atanhf |
● |
Table 64. Exponential and Logarithmic Functions
Exponential or Logarithmic Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
exp |
expf |
● |
frexp |
frexpf |
● |
ldexp |
ldexpf |
● |
log |
logf |
● |
log10 |
log10f |
● |
modf |
modff |
● |
exp2 |
exp2f |
● |
exp10 (Linux only) |
exp10f (Linux only)* |
● |
expm1 |
expm1f |
● |
ilogb |
ilogbf |
● |
log1p |
log1pf |
● |
log2 |
log2f |
● |
logb |
logbf |
● |
scalbn |
scalbnf |
X |
scalbln |
scalblnf |
X |
Table 65. Power Functions
Power Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
pow |
powf |
● |
sqrt |
sqrtf |
● |
cbrt |
cbrtf |
● |
hypot |
hypotf |
● |
Table 66. Error and Gamma Functions
Error or Gamma Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
erf |
erff |
● |
erfc |
erfcf |
● |
tgamma |
tgammaf |
● |
lgamma |
lgammaf |
● |
lgamma_r (Linux only)6 |
lgamma_rf (Linux only)6 |
● |
Table 67. Rounding and Remainder Functions
Rounding or Remainder Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
ceil |
ceilf |
● |
floor |
floorf |
● |
fmod |
fmodf |
● |
trunc |
truncf |
● |
round |
roundf |
● |
lround |
lroundf |
X |
llround |
llroundf |
X |
rint |
rintf |
● |
lrint |
lrintf |
X |
llrint |
llrintf |
X |
nearbyint |
nearbyintf |
X |
remainder |
remainderf |
● |
remquo |
remquof |
● |
Table 68. Floating-Point Manipulation Functions
Floating-Point Manipulation Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
copysign |
copysignf |
● |
nan |
nanf |
X |
nextafter |
nextafterf |
● |
nexttoward |
nexttowardf |
X |
Table 69. Minimum, Maximum, and Difference Functions
Minimum, Maximum, or Difference Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
fdim |
fdim |
● |
fmax |
fmax |
● |
fmin |
fmin |
● |
Table 70. Other Functions
Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
fabs |
fabsf |
● |
fma |
fmaf |
● |
Table 71. Classification Macros
Classification Macro |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
fpclassify (Linux only) |
fpclassifyf (Linux only) |
● |
isfinite |
isfinitef |
● |
isinf |
isinff |
● |
isnan |
isnanf |
● |
isnormal (Linux only) |
isnormalf (Linux only) |
● |
signbit (Linux only) |
signbitf (Linux only) |
● |
Table 72. Comparison Macros
Comparison Macro |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
isgreater |
isgreaterf |
X |
isgreaterequal |
isgreaterequalf |
X |
isless |
islessf |
X |
islessequal |
islessequalf |
X |
islessgreater |
islessgreaterf |
X |
isunordered (Linux only) |
isunorderedf (Linux only) |
● |