インテル® HLS コンパイラーには、math.h の C ヘッダーファイルに存在する標準の数学関数から効率的な IP を生成するための内蔵サポートが含まれています。コンパイラーは非標準の数学関数もサポートしており、これらの関数はextendedmath.h の C ヘッダーファイルで提供されています。
FPGA 用に最適化された
math.hの
インテル® 実装を使用するには、関数内に次の行を追加して
HLS/math.hをインクルードします。
#include "HLS/math.h"
FPGA 用に最適化された
math.hの
インテル® 実装と同様に非標準の数学関数を使用するには、関数内に次の行を追加して
HLS/extendedmath.hをインクルードします。
#include "HLS/extendedmath.h"
extendedmath.hヘッダーファイルは
HLS/math.hヘッダーファイルを含んでいます。
HLSコンパイラーでサポートされる Math.h 関数
HLSコンパイラーはmath.hに存在する関数のサブセットをサポートしています。
各math.h関数を下にリストしています。「●」はHLSコンパイラーがサポートする関数を表し、「X」はサポートされない関数を表します。
表 29. 三角関数
三角関数 |
HLSコンパイラーによるサポート |
倍精度浮動小数点関数 |
cos |
● |
sin |
● |
tan |
● |
acos |
● |
asin |
● |
atan |
● |
atan2 |
● |
単精度浮動小数点関数 |
cosf |
● |
sinf |
● |
tanf |
● |
acosf |
● |
asinf |
● |
atanf |
● |
atan2f |
● |
表 30. 双曲線関数
双曲線関数 |
HLSコンパイラーによるサポート |
cosh |
● |
sinh |
● |
tanh |
● |
acosh (C++11) |
X |
asinh (C++11) |
X |
atanh (C++11) |
X |
表 31. 指数関数および対数関数
指数関数または対数関数 |
HLSコンパイラーによるサポート |
exp |
● |
frexp |
● |
ldexp |
● |
log |
● |
log10 |
● |
modf |
● |
exp2 (C++11) |
● |
expm1 (C++11) |
X |
ilogb (C++11) |
● |
log1p (C++11) |
X |
log2 (C++11) |
● |
logb (C++11) |
● |
scalbn (C++11) |
X |
scalbln (C++11) |
X |
表 32. べき関数
べき関数 |
HLSコンパイラーによるサポート |
pow |
● |
sqrt |
● |
cbrt (C++11) |
X |
hypot (C++11) |
X |
表 33. エラー関数およびガンマ関数
エラー関数またはガンマ関数 |
HLSコンパイラーによるサポート |
erf (C++11) |
X |
erfc (C++11) |
X |
tgamma (C++11) |
X |
lgamma (C++11) |
X |
表 34. 丸め関数と余り関数
丸め関数と余り関数 |
HLSコンパイラーによるサポート |
ceil |
● |
floor |
● |
fmod |
● |
trunc (C++11) |
● |
round (C++11) |
● |
lround (C++11) |
X |
llround (C++11) |
X |
rint (C++11) |
● |
lrint (C++11) |
X |
llrint (C++11) |
X |
nearbyint (C++11) |
X |
remainder (C++11) |
X |
remquo (C++11) |
X |
表 35. 浮動小数点操作関数
浮動小数点操作関数 |
HLSコンパイラーによるサポート |
copysign (C++11) |
X |
nan (C++11) |
X |
nextafter (C++11) |
X |
nexttoward (C++11) |
X |
表 36. 最小、最大、および差分関数
最小、最大、または差分関数 |
HLSコンパイラーによるサポート |
fdim (C++11) |
● |
fmax (C++11) |
● |
fmin (C++11) |
● |
表 37. その他の関数
関数 |
HLSコンパイラーによるサポート |
fabs |
● |
abs |
X |
fma (C++11) |
X |
表 38. マクロ分類
マクロ分類 |
HLSコンパイラーによるサポート |
fpclassify (C++11) |
X |
isfinite (C++11) |
● |
isinf (C++11) |
● |
isnan (C++11) |
● |
isnormal (C++11) |
X |
signbit (C++11) |
X |
表 39. 比較マクロ
比較マクロ |
HLSコンパイラーによるサポート |
isgreater (C++11) |
X |
isgreaterequal (C++11) |
X |
isless (C++11) |
X |
islessequal (C++11) |
X |
islessgreater (C++11) |
X |
isunordered (C++11) |
X |
extendedmath.hヘッダーファイルで提供される数学関数
HLS/extendedmath.hヘッダーファイルを追加すると、次の関数もサポートされます。
- sincos
- acospi
- asinpi
- atanpi
- cospi
- sinpi
- tanpi
- pown
- powr
- rsqrt