Visible to Intel only — GUID: lro1432062910025
Ixiasoft
Visible to Intel only — GUID: lro1432062910025
Ixiasoft
5.4. Special Floating Point Cases
The table below lists the results of some IEEE 754 special cases. The x represents a normal value. The FPH2 are compliant for all of these cases.
Results are assumed to be correctly signed so signs are omitted when they are not important. When the sign is relevant, signs are shown with extra parenthesis around the value such as (+∞). The value x in the table represents any non-NaN value.
Comparisons ignore the sign of zero for equality. For example, (-0) == (+0) and (+0) ≤ (-0). Comparisons that don’t include equality, like > and <, don’t consider -0 to be less than +0. Comparisons return false if either or both inputs are NaN. The min and max operations return the non-NaN input if one of their inputs is NaN and the other is non-NaN. Other operations that produce floating point results return NaN if any or all of their inputs are NaN.
Operation | Special Cases | |||
---|---|---|---|---|
fdivs | 0/0=NaN | ∞/∞=NaN | 0/∞=0, ∞/0=∞ | NaN/x=NaN, x/NaN=NaN, NaN/NaN=NaN |
fsubs | (+∞)-(+∞)=NaN | (-∞)-(-∞)=NaN | (-0)-(-0)=+0 | NaN-x=NaN, x-NaN=NaN, NaN-NaN=NaN |
fadds | (+∞)+(-∞)=NaN | (-∞)+(+∞)=NaN | (+0)+(-0)=+0, (-0)+(+0)=+0 | NaN+x=NaN, x+NaN=NaN, NaN+NaN=NaN |
fmuls | 0*∞=NaN | ∞*0=NaN | NaN*x=NaN, x*NaN=NaN, NaN*NaN=NaN | |
fsqrts | sqrt(-0) =-0 |
sqrt(x) =NaN, x<-0 | sqrt(NAN) =NaN | |
int(>2fixsi & round31-1)= 0x7fffffff, int(+∞)=0x7fffffff | fixsiint(<-231)= x80000000, int(-∞)=0x80000000 | int(NaN)=undefined | ||
fmins | min((+0),(-0))=(-0) | min((-0),(+0))=(-0) | min(NaN,n)=x, min(x,NaN)=x, min(NaN,NaN)=NaN, min(+∞,x)=x, min(-∞,x)=-∞ | |
fmaxs | max((+0),(-0))=(+0) | max((-0),(+0))=(+0) | max(NaN,x)=x, max(x,NaN)=x, max(NaN,NaN)=NaN, max(+∞,x)=+∞, max(-∞,x)=x | |
fcmplts (<) | (+∞)<(+∞)=0 | (-∞)<(-∞)=0 | (-0)<(+0)=0, (+0)<(-0)=0 | NaN<x=0, x<NaN=0, NaN<NaN=0 |
fcmples (≤) | (+∞)≤(+∞)=1 | (-∞)≤(-∞)=1 | (+0)≤(-0)=1, (-0)≤(+0)=1 | NaN≤x=0, x≤NaN=0, NaN≤NaN=0 |
fcmpgts (>) | (+∞)>(+∞)=0 | (-∞)>(-∞)=0 | (-0)>(+0)=0, (+0)>(-0)=0 | NaN>x=0, x>NaN=0, NaN>NaN=0 |
fcmpges (≥) | (+∞)≥(+∞)=1 | (-∞)≥(-∞)=1 | (-0)≥(+0)=1, (+0)≥(-0)=1 | NaN≥x=0, x≥NaN=0, NaN≥NaN=0 |
fcmpeqs (=) | (+∞)=(+∞)=1 | (-∞)=(-∞)=1 | (-0)=(+0)=1 | (NaN==x)=0, (x==NaN)=0, (NaN==NaN)=0 |
fcmpnes (≠) | (+∞)≠ (+∞)=0 | (-∞)≠ (-∞)=0 | (-0)≠(+0)=0 | NaN≠x=0, x≠NaN=0, NaN≠NaN=0 |