Package ghidra.pcode.floatformat
Class FloatFormat
java.lang.Object
ghidra.pcode.floatformat.FloatFormat
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BigDecimalstatic final BigDecimalstatic final BigDecimalfinal BigFloatA constant holding the largest positive finite valuefinal BigFloatA constant holding the smallest positive normal value -
Method Summary
Modifier and TypeMethodDescriptiongetBigFloat(double d) getBigFloat(float f) getBigFloat(long encoding) Decodeencodingto a BigFloat using this format.getBigInfinity(boolean sgn) getBigInfinityEncoding(boolean sgn) getBigNaN(boolean sgn) getBigNaNEncoding(boolean sgn) getBigZero(boolean sgn) getBigZeroEncoding(boolean sgn) longgetEncoding(double host) getEncoding(BigFloat value) doublegetHostFloat(long encoding) getHostFloat(BigInteger encoding) longgetInfinityEncoding(boolean sgn) longgetNaNEncoding(boolean sgn) intgetSize()longgetZeroEncoding(boolean sgn) longopAbs(long a) opAbs(BigInteger a) longopAdd(long a, long b) opAdd(BigInteger a, BigInteger b) longopCeil(long a) opCeil(BigInteger a) longopDiv(long a, long b) opDiv(BigInteger a, BigInteger b) longopEqual(long a, long b) opEqual(BigInteger a, BigInteger b) longopFloat2Float(long a, FloatFormat outformat) opFloat2Float(BigInteger a, FloatFormat outformat) longopFloor(long a) longopInt2Float(long a, int sizein) opInt2Float(BigInteger a, int sizein, boolean signed) longopLess(long a, long b) opLess(BigInteger a, BigInteger b) longopLessEqual(long a, long b) opLessEqual(BigInteger a, BigInteger b) longopMult(long a, long b) opMult(BigInteger a, BigInteger b) longopNan(long a) opNan(BigInteger a) longopNeg(long a) opNeg(BigInteger a) longopNotEqual(long a, long b) opNotEqual(BigInteger a, BigInteger b) longopRound(long a) longopSqrt(long a) opSqrt(BigInteger a) longopSub(long a, long b) opSub(BigInteger a, BigInteger b) longopTrunc(long a, int sizeout) opTrunc(BigInteger a, int sizeout) RoundbigFloatusing this format's displayContext.static BigFloattoBigFloat(double d) static BigFloattoBigFloat(float f) static StringtoBinaryString(double d) static StringtoBinaryString(float f) toBinaryString(long encoding) Convert an encoded value to a binary floating point representation.
-
Field Details
-
BIG_NaN
-
BIG_POSITIVE_INFINITY
-
BIG_NEGATIVE_INFINITY
-
maxValue
A constant holding the largest positive finite value -
minValue
A constant holding the smallest positive normal value
-
-
Method Details
-
getSize
public int getSize() -
round
RoundbigFloatusing this format's displayContext.- Parameters:
bigFloat- any BigFloat- Returns:
- a BigDecimal rounded according to this format's displayContext
-
getZeroEncoding
public long getZeroEncoding(boolean sgn) -
getInfinityEncoding
public long getInfinityEncoding(boolean sgn) -
getBigZeroEncoding
-
getBigZero
-
getBigInfinityEncoding
-
getBigInfinity
-
getNaNEncoding
public long getNaNEncoding(boolean sgn) -
getBigNaNEncoding
-
getBigNaN
-
getBigFloat
-
getBigFloat
-
getBigFloat
Decodeencodingto a BigFloat using this format. NB: this method should not be used ifsize>8- Parameters:
encoding- the encoding- Returns:
- the decoded value as a BigFloat
-
getHostFloat
public double getHostFloat(long encoding) -
getHostFloat
-
getEncoding
public long getEncoding(double host) -
getEncoding
-
toBinaryString
Convert an encoded value to a binary floating point representation. NB: this method should not be used ifsize>8- Parameters:
encoding- the encoding of a floating point value in this format- Returns:
- a binary string representation of the encoded floating point
encoding
-
toBigFloat
- Parameters:
f- a float- Returns:
- BigFloat equal to
f
-
toBigFloat
- Parameters:
d- a double- Returns:
- BigFloat equal to
f
-
toBinaryString
- Parameters:
f- a float- Returns:
- binary representation of
f
-
toBinaryString
- Parameters:
d- a double- Returns:
- binary representation of
f
-
opEqual
public long opEqual(long a, long b) -
opEqual
-
opNotEqual
public long opNotEqual(long a, long b) -
opNotEqual
-
opLess
public long opLess(long a, long b) -
opLess
-
opLessEqual
public long opLessEqual(long a, long b) -
opLessEqual
-
opNan
public long opNan(long a) -
opNan
-
opAdd
public long opAdd(long a, long b) -
opAdd
-
opSub
public long opSub(long a, long b) -
opSub
-
opDiv
public long opDiv(long a, long b) -
opDiv
-
opMult
public long opMult(long a, long b) -
opMult
-
opNeg
public long opNeg(long a) -
opNeg
-
opAbs
public long opAbs(long a) -
opAbs
-
opSqrt
public long opSqrt(long a) -
opSqrt
-
opInt2Float
public long opInt2Float(long a, int sizein) -
opInt2Float
-
opFloat2Float
-
opFloat2Float
-
opTrunc
public long opTrunc(long a, int sizeout) -
opTrunc
-
opCeil
public long opCeil(long a) -
opCeil
-
opFloor
public long opFloor(long a) -
opFloor
-
opRound
public long opRound(long a) -
opRound
-