public class JSoftFloatUtils
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
JSoftFloatUtils.FloatDetectTininess
Software IEC/IEEE floating-point underflow tininess-detection mode.
|
static class |
JSoftFloatUtils.FloatExceptionFlags
Software IEC/IEEE floating-point exception flags.
|
static class |
JSoftFloatUtils.FloatRoundingMode
Software IEC/IEEE floating-point rounding mode.
|
Constructor and Description |
---|
JSoftFloatUtils() |
Modifier and Type | Method and Description |
---|---|
static java.util.List<java.lang.Long> |
add128(long a0,
long a1,
long b0,
long b1)
Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit value formed by
concatenating `b0' and `b1'.
|
static java.util.List<java.lang.Long> |
add192(long a0,
long a1,
long a2,
long b0,
long b1,
long b2)
Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the 192-bit value formed
by concatenating `b0', `b1', and `b2'.
|
static byte |
countLeadingZeros32(int a)
Returns the number of leading 0 bits before the most-significant 1 bit of `a'.
|
static byte |
countLeadingZeros64(long a)
Returns the number of leading 0 bits before the most-significant 1 bit of `a'.
|
static boolean |
eq128(long a0,
long a1,
long b0,
long b1)
Returns 1 if the 128-bit value formed by concatenating `a0' and `a1' is equal to the 128-bit
value formed by concatenating `b0' and `b1'.
|
static long |
estimateDiv128To64(long a0,
long a1,
long b)
Returns an approximation to the 64-bit integer quotient obtained by dividing `b' into the
128-bit value formed by concatenating `a0' and `a1'.
|
static boolean |
float128_is_nan(Float128 a)
Returns 1 if the quadruple-precision floating-point value `a' is a NaN; otherwise returns 0.
|
static boolean |
float128_is_signaling_nan(Float128 a)
Returns 1 if the quadruple-precision floating-point value `a' is a signaling NaN; otherwise
returns 0.
|
static boolean |
le128(long a0,
long a1,
long b0,
long b1)
Returns 1 if the 128-bit value formed by concatenating `a0' and `a1' is less than or equal to
the 128-bit value formed by concatenating `b0' and `b1'.
|
static boolean |
lt128(long a0,
long a1,
long b0,
long b1)
Returns 1 if the 128-bit value formed by concatenating `a0' and `a1' is less than the 128-bit
value formed by concatenating `b0' and `b1'.
|
static java.util.List<java.lang.Long> |
mul128By64To192(long a0,
long a1,
long b)
Multiplies the 128-bit value formed by concatenating `a0' and `a1' by `b' to obtain a 192-bit
product.
|
static java.util.List<java.lang.Long> |
mul128To256(long a0,
long a1,
long b0,
long b1)
Multiplies the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit value formed
by concatenating `b0' and `b1' to obtain a 256-bit product.
|
static java.util.List<java.lang.Long> |
mul64To128(long a,
long b)
Multiplies `a' by `b' to obtain a 128-bit product.
|
static boolean |
ne128(long a0,
long a1,
long b0,
long b1)
Returns 1 if the 128-bit value formed by concatenating `a0' and `a1' is not equal to the
128-bit value formed by concatenating `b0' and `b1'.
|
static java.util.List<java.lang.Long> |
shift128ExtraRightJamming(long a0,
long a1,
long a2,
int count)
Shifts the 192-bit value formed by concatenating `a0', `a1', and `a2' right by 64 _plus_ the
number of bits given in `count'.
|
static java.util.List<java.lang.Long> |
shift128Right(long a0,
long a1,
short count)
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the number of bits
given in `count'.
|
static java.util.List<java.lang.Long> |
shift128RightJamming(long a0,
long a1,
short count)
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the number of bits
given in `count'.
|
static int |
shift32RightJamming(int a,
short count)
Shifts `a' right by the number of bits given in `count'.
|
static java.util.List<java.lang.Long> |
shift64ExtraRightJamming(long a0,
long a1,
long count)
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by 64 _plus_ the number of
bits given in `count'.
|
static long |
shift64RightJamming(long a,
short count)
Shifts `a' right by the number of bits given in `count'.
|
static java.util.List<java.lang.Long> |
shortShift128Left(long a0,
long a1,
short count)
Shifts the 128-bit value formed by concatenating `a0' and `a1' left by the number of bits given
in `count'.
|
static java.util.List<java.lang.Long> |
shortShift192Left(long a0,
long a1,
long a2,
long count)
Shifts the 192-bit value formed by concatenating `a0', `a1', and `a2' left by the number of
bits given in `count'.
|
static java.util.List<java.lang.Long> |
sub128(long a0,
long a1,
long b0,
long b1)
Subtracts the 128-bit value formed by concatenating `b0' and `b1' from the 128-bit value formed
by concatenating `a0' and `a1'.
|
static java.util.List<java.lang.Long> |
sub192(long a0,
long a1,
long a2,
long b0,
long b1,
long b2)
Subtracts the 192-bit value formed by concatenating `b0', `b1', and `b2' from the 192-bit value
formed by concatenating `a0', `a1', and `a2'.
|
public static byte countLeadingZeros32(int a)
a
- bits32public static byte countLeadingZeros64(long a)
a
- bits64public static int shift32RightJamming(int a, short count)
a
- bits32count
- int16public static long shift64RightJamming(long a, short count)
a
- bits64count
- int16zPtr
- bits64public static java.util.List<java.lang.Long> shift64ExtraRightJamming(long a0, long a1, long count)
a0
- bits64a1
- bits64count
- int16public static java.util.List<java.lang.Long> shortShift128Left(long a0, long a1, short count)
a0
- bits64a1
- bits64count
- int16public static java.util.List<java.lang.Long> add128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static boolean lt128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static boolean eq128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static java.util.List<java.lang.Long> shift128ExtraRightJamming(long a0, long a1, long a2, int count)
a0
- bits64a1
- bits64a2
- bits64count
- int16public static java.util.List<java.lang.Long> shift128Right(long a0, long a1, short count)
a0
- bits64a1
- bits64count
- int16public static long estimateDiv128To64(long a0, long a1, long b)
a0
- bits64a1
- bits64b
- bits64public static java.util.List<java.lang.Long> mul64To128(long a, long b)
a
- bits64b
- bits64public static java.util.List<java.lang.Long> sub128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static java.util.List<java.lang.Long> shift128RightJamming(long a0, long a1, short count)
a0
- bits64a1
- bits64count
- int16public static boolean le128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static boolean ne128(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static java.util.List<java.lang.Long> sub192(long a0, long a1, long a2, long b0, long b1, long b2)
a0
- bits64a1
- bits64a2
- bits64b0
- bits64b1
- bits64b2
- bits64public static java.util.List<java.lang.Long> add192(long a0, long a1, long a2, long b0, long b1, long b2)
a0
- bits64a1
- bits64a2
- bits64b0
- bits64b1
- bits64b2
- bits64public static boolean float128_is_signaling_nan(Float128 a)
a
- float128public static boolean float128_is_nan(Float128 a)
a
- float128public static java.util.List<java.lang.Long> mul128To256(long a0, long a1, long b0, long b1)
a0
- bits64a1
- bits64b0
- bits64b1
- bits64public static java.util.List<java.lang.Long> mul128By64To192(long a0, long a1, long b)
a0
- bits64a1
- bits64b
- bits64public static java.util.List<java.lang.Long> shortShift192Left(long a0, long a1, long a2, long count)
a0
- bits64a1
- bits64a2
- bits64count
- int16