- changed status to resolved
+0.0 and -0.0 result in PlusZero term
Issue #9
resolved
Problem: if +0.0/-0.0 is a Double: +0.0.asFloat64 generates the term ConstantTerm(FPBVPlusZero(11,53)) -0.0asFloat64 does the same: ConstantTerm(FPBVPlusZero(11,53))
Should be FPBVMinusZero(11,53) in the latter case.
Same problem occurs with Floats.
Comments (2)
-
reporter -
reporter - edited description
Tests:
val pZeroDouble : Double = +0.0e0 val mZeroDouble : Double = -0.0e0 val pZeroFloat : Float = +0.0.toFloat val mZeroFloat : Float = -0.0.toFloat pZeroDouble.asFloat64 generates ConstantTerm(FPBVPlusZero(11,53)) mZeroDouble.asFloat64 generates ConstantTerm(FPBVMinusZero(11,53)) pZeroFloat.asFloat32 generates ConstantTerm(FPBVPlusZero(8,24)) mZeroFloat.asFloat32 generates ConstantTerm(FPBVMinusZero(8,24))
- Log in to comment
Create a PlusZero/MinusZero term according to the sign of 0.0.
Use equals to compare objects rather than values.
fixes
#9→ <<cset d8b00e95c9c4>>