+/**
+ * possible float states
+ */
+typedef enum {
+ NORMAL, /**< normal representation, implicit 1 */
+ ZERO, /**< +/-0 */
+ SUBNORMAL, /**< denormals, implicit 0 */
+ INF, /**< +/-oo */
+ NAN, /**< Not A Number */
+} value_class_t;
+
+/**
+ * A descriptor for an IEEE float value.
+ */
+typedef struct ieee_descriptor_t {
+ unsigned char exponent_size; /**< size of exponent in bits */
+ unsigned char mantissa_size; /**< size of mantissa in bits */
+ unsigned char explicit_one; /**< set if the leading one is explicit */
+ unsigned char clss; /**< state of this float */
+} ieee_descriptor_t;
+
+struct fp_value;
+typedef struct fp_value fp_value;