- * @param exponent_size The number of bits of exponent of the float type the value
- * is created for
- * @param mantissa_size The number of bits of mantissa of the float type the value
- * is created for
- * @param result A buffer to hold the value built. If this is NULL, the internal
- * accumulator buffer is used. Note that the buffer must be big
- * enough to hold the value. Use fc_get_buffer_length() to find out
- * the size needed
- * @return The result pointer passed to the function. If this was NULL this returns
- * a pointer to the internal accumulator buffer
- */
-char* fc_get_min(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-char* fc_get_max(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-char* fc_get_snan(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-char* fc_get_qnan(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-char* fc_get_plusinf(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-char* fc_get_minusinf(unsigned int exponent_size, unsigned int mantissa_size, char* result);
-/*}@*/
-
-int fc_is_zero(const void *a);
-int fc_is_negative(const void *a);
-int fc_is_inf(const void *a);
-int fc_is_nan(const void *a);
-int fc_is_subnormal(const void *a);
-
-FC_DECLARE2(add);
-FC_DECLARE2(sub);
-FC_DECLARE2(mul);
-FC_DECLARE2(div);
-FC_DECLARE1(neg);
-FC_DECLARE1(int);
-FC_DECLARE1(rnd);
-
-char *fc_print(const void *a, char *buf, int buflen, unsigned base);
+ * @param desc The floating point descriptor
+ * @param result A buffer to hold the value built. If this is NULL, the internal
+ * accumulator buffer is used. Note that the buffer must be big
+ * enough to hold the value. Use fc_get_buffer_length() to find out
+ * the size needed
+ * @return The result pointer passed to the function. If this was NULL this returns
+ * a pointer to the internal accumulator buffer
+ */
+fp_value *fc_get_min(const float_descriptor_t *desc, fp_value *result);
+fp_value *fc_get_max(const float_descriptor_t *desc, fp_value *result);
+fp_value *fc_get_snan(const float_descriptor_t *desc, fp_value *result);
+fp_value *fc_get_qnan(const float_descriptor_t *desc, fp_value *result);
+fp_value *fc_get_plusinf(const float_descriptor_t *desc, fp_value *result);
+fp_value *fc_get_minusinf(const float_descriptor_t *desc, fp_value *result);
+/*@}*/
+
+int fc_is_zero(const fp_value *a);
+int fc_is_negative(const fp_value *a);
+int fc_is_inf(const fp_value *a);
+int fc_is_nan(const fp_value *a);
+int fc_is_subnormal(const fp_value *a);
+
+fp_value *fc_add(const fp_value *a, const fp_value *b, fp_value *result);
+fp_value *fc_sub(const fp_value *a, const fp_value *b, fp_value *result);
+fp_value *fc_mul(const fp_value *a, const fp_value *b, fp_value *result);
+fp_value *fc_div(const fp_value *a, const fp_value *b, fp_value *result);
+fp_value *fc_neg(const fp_value *a, fp_value *result);
+fp_value *fc_int(const fp_value *a, fp_value *result);
+fp_value *fc_rnd(const fp_value *a, fp_value *result);
+
+char *fc_print(const fp_value *a, char *buf, int buflen, unsigned base);