The Intel® HLS Compiler Standard 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 36. 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 37. Hyperbolic Functions
Hyperbolic Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
cosh |
coshf |
● |
sinh |
sinhf |
● |
tanh |
tanhf |
● |
acosh |
acoshf |
X |
asinh |
asinhf |
X |
atanh |
atanhf |
X |
Table 38. 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)* |
X |
expm1 |
expm1f |
● |
ilogb |
ilogbf |
X |
log1p |
log1pf |
● |
log2 |
log2f |
● |
logb |
logbf |
X |
scalbn |
scalbnf |
X |
scalbln |
scalblnf |
● |
Table 39. Power Functions
Power Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
pow |
powf |
● |
sqrt |
sqrtf |
● |
cbrt |
cbrtf |
X |
hypot |
hypotf |
X |
Table 40. Error and Gamma Functions
Error or Gamma Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
erf |
erff |
X |
erfc |
erfcf |
X |
tgamma |
tgammaf |
X |
lgamma |
lgammaf |
X |
lgamma_r (Linux only)2 |
lgamma_rf (Linux only)2 |
X |
Table 41. 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 |
X |
remquo |
remquof |
X |
Table 42. Floating-Point Manipulation Functions
Floating-Point Manipulation Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
copysign |
copysignf |
X |
nan |
nanf |
X |
nextafter |
nextafterf |
X |
nexttoward |
nexttowardf |
X |
Table 43. 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 44. Other Functions
Function |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
fabs |
fabsf |
● |
fma |
fmaf |
X |
Table 45. Classification Macros
Classification Macro |
Supported? |
Double-precision floating point function |
Single-precision floating point function |
fpclassify (Linux only) |
fpclassifyf (Linux only) |
X |
isfinite |
isfinitef |
● |
isinf |
isinff |
● |
isnan |
isnanf |
● |
isnormal (Linux only) |
isnormalf (Linux only) |
X |
signbit (Linux only) |
signbitf (Linux only) |
X |
Table 46. 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) |
X |