+/** Set new rounding mode
+ * This function sets the rounding mode to one of the following, returning
+ * the previously set rounding mode.
+ * FC_TONEAREST (default):
+ * Any unrepresentable value is rounded to the nearest representable
+ * value. If it lies in the middle the value with the least significant
+ * bit of zero is chosen (the even one).
+ * Values too big to represent will round to +/-infinity.
+ * FC_TONEGATIVE
+ * Any unrepresentable value is rounded towards negative infinity.
+ * Positive values too big to represent will round to the biggest
+ * representable value, negative values too small to represent will
+ * round to -infinity.
+ * FC_TOPOSITIVE
+ * Any unrepresentable value is rounded towards positive infinity
+ * Negative values too small to represent will round to the biggest
+ * representable value, positive values too big to represent will
+ * round to +infinity.
+ * FC_TOZERO
+ * Any unrepresentable value is rounded towards zero, effectively
+ * chopping off any bits beyond the mantissa size.
+ * Values too big to represent will round to the biggest/smallest
+ * representable value.
+ *
+ * These modes correspond to the modes required by the IEEE-754 standard.
+ *
+ * @param mode The new rounding mode. Any value other than the four
+ * defined values will have no effect.
+ * @return The previous rounding mode.
+ *
+ * @see fc_get_rounding_mode()
+ * @see IEEE754, IEEE854 Floating Point Standard
+ */
+fc_rounding_mode_t fc_set_rounding_mode(fc_rounding_mode_t mode);
+
+/** Get the rounding mode
+ * This function retrieves the currently used rounding mode
+ *
+ * @return The current rounding mode
+ * @see fc_set_rounding_mode()
+ */
+fc_rounding_mode_t fc_get_rounding_mode(void);
+
+/** Get bit representation of a value
+ * This function allows to read a value in encoded form, bytewise.
+ * The value will be packed corresponding to the way used by the IEEE
+ * encoding formats, i.e.
+ * One bit sign
+ * exp_size bits exponent + bias
+ * mant_size bits mantissa, without leading 1
+ *
+ * As in IEEE, an exponent of 0 indicates a denormalized number, which
+ * implies a most significant bit of zero instead of one; an exponent
+ * of all ones (2**exp_size - 1) encodes infinity if the mantissa is
+ * all zeros, else Not A Number.
+ *
+ * @param val A pointer to the value. If NULL is passed a copy of the
+ * most recent value passed to this function is used, saving the
+ * packing step. This behavior may be changed in the future.
+ * @param num_bit The maximum number of bits to return. Any bit beyond
+ * num_bit will be returned as zero.
+ * @param byte_ofs The byte index to read, 0 is the least significant
+ * byte.
+ * @return 8 bits of encoded data
+ */
+unsigned char fc_sub_bits(const void *val, unsigned num_bit, unsigned byte_ofs);
+
+void init_fltcalc(int precision);
+void finish_fltcalc (void);
+