For some floating-point operations defined in the math.h and extendedmath.h header files, you can control whether the operations should support subnormal numbers with the --daz i++ command option. Disabling subnormal number support can save FPGA area by rounding subnormal numbers to zero.
In addition, you can control the rounding scheme used for single- and double-precision adders, multipliers, and dividers with the --rounding i++ command option.
For single-precision operation, subnormal support does not apply.
The following tables show the default subnormal support and rounding scheme for single- and double-precision floating point operators.
Table 80. Default Subnormal Support and Rounding Scheme for Single-Precision Floating Point Operators For descriptions of the rounding schemes, see the --rounding i++ command option description in Intel HLS Compiler Pro Edition Command Options.
Single-Precision Floating-Point Operator |
Default Subnormal Support |
Default Rounding Scheme |
+ |
N/A |
IEEE-754 RNE |
- |
N/A |
IEEE-754 RNE |
* |
N/A |
IEEE-754 RNE |
/ |
N/A |
Faithful |
Table 81. Default Subnormal Support and Rounding Scheme for Double-Precision Floating Point Operators For descriptions of the rounding schemes, see the --rounding i++ command option description in Intel HLS Compiler Pro Edition Command Options.
Double-Precision Floating-Point Operator |
Default Subnormal Support |
Default Rounding Scheme |
+ |
On |
IEEE-754 RNE |
- |
On |
IEEE-754 RNE |
* |
On |
IEEE-754 RNE |
/ |
On |
Faithful |
For the following double-precision floating-point functions, subnormal support is on by default:
- sqrt
- floor
- ceil
- cbrt
- rsqrt
- hypot
- modf
- exp
- expm1
- exp2
- exp10
|
- log
- log1p
- log2
- log10
- powr
- pown
- sin
- cos
- tan
- sinpi
- cospi
|
- tanpi
- asin
- acos
- atan
- atan2
- asinpi
- acospi
- atanpi
- sincos
|
The rounding schemes do not apply to these functions.