Package org.apache.parquet.schema
Class Float16
- java.lang.Object
-
- org.apache.parquet.schema.Float16
-
public class Float16 extends Object
The class is a utility class to manipulate half-precision 16-bit IEEE 754 floating point data types (also called fp16 or binary16). A half-precision float can be created from or converted to single-precision floats, and is stored in a short data type. The IEEE 754 standard specifies an float16 as having the following format:- Sign bit: 1 bit
- Exponent width: 5 bits
- Significand: 10 bits
The format is laid out as follows:
1 11111 1111111111 ^ --^-- -----^---- sign | |_______ significand | -- exponentHalf-precision floating points can be useful to save memory and/or bandwidth at the expense of range and precision when compared to single-precision floating points (float32). Ref: https://android.googlesource.com/platform/libcore/+/master/luni/src/main/java/libcore/util/FP16.java
-
-
Constructor Summary
Constructors Constructor Description Float16()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intcompare(short x, short y)Compares the two specified half-precision float values.static booleanisNaN(short h)Returns true if the specified half-precision float value represents a Not-a-Number, false otherwise.
-
-
-
Method Detail
-
isNaN
public static boolean isNaN(short h)
Returns true if the specified half-precision float value represents a Not-a-Number, false otherwise.- Parameters:
h- A half-precision float value- Returns:
- True if the value is a NaN, false otherwise
-
compare
public static int compare(short x, short y)Compares the two specified half-precision float values. The following conditions apply during the comparison:
- NaN is considered by this method to be equal to itself and greater
than all other half-precision float values (including
#POSITIVE_INFINITY) - POSITIVE_ZERO is considered by this method to be greater than NEGATIVE_ZERO.
- Parameters:
x- The first half-precision float value to compare.y- The second half-precision float value to compare- Returns:
- The value
0ifxis numerically equal toy, a value less than0ifxis numerically less thany, and a value greater than0ifxis numerically greater thany
- NaN is considered by this method to be equal to itself and greater
than all other half-precision float values (including
-
-