Package ghidra.pcode.floatformat
Class FloatFormat
java.lang.Object
ghidra.pcode.floatformat.FloatFormat
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BigDecimal
static final BigDecimal
static final BigDecimal
final BigFloat
A constant holding the largest positive finite valuefinal BigFloat
A constant holding the smallest positive normal value -
Method Summary
Modifier and TypeMethodDescriptiongetBigFloat
(double d) getBigFloat
(float f) getBigFloat
(long encoding) Decodeencoding
to a BigFloat using this format.getBigInfinity
(boolean sgn) getBigInfinityEncoding
(boolean sgn) getBigNaN
(boolean sgn) getBigNaNEncoding
(boolean sgn) getBigZero
(boolean sgn) getBigZeroEncoding
(boolean sgn) long
getEncoding
(double host) getEncoding
(BigFloat value) double
getHostFloat
(long encoding) getHostFloat
(BigInteger encoding) long
getInfinityEncoding
(boolean sgn) long
getNaNEncoding
(boolean sgn) int
getSize()
long
getZeroEncoding
(boolean sgn) long
opAbs
(long a) opAbs
(BigInteger a) long
opAdd
(long a, long b) opAdd
(BigInteger a, BigInteger b) long
opCeil
(long a) opCeil
(BigInteger a) long
opDiv
(long a, long b) opDiv
(BigInteger a, BigInteger b) long
opEqual
(long a, long b) opEqual
(BigInteger a, BigInteger b) long
opFloat2Float
(long a, FloatFormat outformat) opFloat2Float
(BigInteger a, FloatFormat outformat) long
opFloor
(long a) long
opInt2Float
(long a, int sizein) opInt2Float
(BigInteger a, int sizein, boolean signed) long
opLess
(long a, long b) opLess
(BigInteger a, BigInteger b) long
opLessEqual
(long a, long b) opLessEqual
(BigInteger a, BigInteger b) long
opMult
(long a, long b) opMult
(BigInteger a, BigInteger b) long
opNan
(long a) opNan
(BigInteger a) long
opNeg
(long a) opNeg
(BigInteger a) long
opNotEqual
(long a, long b) opNotEqual
(BigInteger a, BigInteger b) long
opRound
(long a) long
opSqrt
(long a) opSqrt
(BigInteger a) long
opSub
(long a, long b) opSub
(BigInteger a, BigInteger b) long
opTrunc
(long a, int sizeout) opTrunc
(BigInteger a, int sizeout) RoundbigFloat
using this format's displayContext.static BigFloat
toBigFloat
(double d) static BigFloat
toBigFloat
(float f) static String
toBinaryString
(double d) static String
toBinaryString
(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
RoundbigFloat
using 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
Decodeencoding
to 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
-