]> XML Schema Decimals 3 RASQAL Library XML Schema Decimals XML Schema decimal number arithmetic. Synopsis void rasqal_free_xsd_decimal (rasqal_xsd_decimal *dec); rasqal_xsd_decimal* rasqal_new_xsd_decimal (void); typedef rasqal_xsd_decimal; int rasqal_xsd_decimal_add (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); char* rasqal_xsd_decimal_as_counted_string (rasqal_xsd_decimal *dec, size_t *len_p); char* rasqal_xsd_decimal_as_string (rasqal_xsd_decimal *dec); int rasqal_xsd_decimal_compare (rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); int rasqal_xsd_decimal_divide (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); int rasqal_xsd_decimal_equals (rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); double rasqal_xsd_decimal_get_double (rasqal_xsd_decimal *dec); int rasqal_xsd_decimal_is_zero (rasqal_xsd_decimal *d); int rasqal_xsd_decimal_multiply (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); int rasqal_xsd_decimal_print (rasqal_xsd_decimal *dec, FILE *stream); int rasqal_xsd_decimal_set_double (rasqal_xsd_decimal *dec, double d); int rasqal_xsd_decimal_set_long (rasqal_xsd_decimal *dec, long l ); int rasqal_xsd_decimal_set_string (rasqal_xsd_decimal *dec, const char *string); int rasqal_xsd_decimal_subtract (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); int rasqal_xsd_decimal_negate (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a); Description A class for providing XSD Decimals with arbitrary length floating point decimals. Details rasqal_free_xsd_decimal () rasqal_free_xsd_decimalvoid rasqal_free_xsd_decimal (rasqal_xsd_decimal *dec); Destroy XSD Decimal object. dec : Decimal object rasqal_new_xsd_decimal () rasqal_new_xsd_decimalrasqal_xsd_decimal* rasqal_new_xsd_decimal (void); Create a new XSD Decimal object. Returns : new xsd:decimal object or NULL on failure. rasqal_xsd_decimal rasqal_xsd_decimaltypedef struct rasqal_xsd_decimal_s rasqal_xsd_decimal; Rasqal XSD Decimal class. rasqal_xsd_decimal_add () rasqal_xsd_decimal_addint rasqal_xsd_decimal_add (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Add two XSD Decimals and store in result XSD Decimal result : result variable a : argment decimal 1 b : argument decimal 2 Returns : non-0 on failure rasqal_xsd_decimal_as_counted_string () rasqal_xsd_decimal_as_counted_stringchar* rasqal_xsd_decimal_as_counted_string (rasqal_xsd_decimal *dec, size_t *len_p); Get an XSD Decimal as a string lexical form with optional length. The returned string is shared and owned by the dec object and must be copied. If len_p is not NULL, the length of the returned string is stored. dec : XSD Decimal len_p : pointer to length variable (or NULL) Returns : lexical form string or NULL on failure. rasqal_xsd_decimal_as_string () rasqal_xsd_decimal_as_stringchar* rasqal_xsd_decimal_as_string (rasqal_xsd_decimal *dec); Get an XSD Decimal as a string lexical form. The returned string is shared and owned by the dec object and must be copied. dec : XSD Decimal Returns : lexical form string or NULL on failure. rasqal_xsd_decimal_compare () rasqal_xsd_decimal_compareint rasqal_xsd_decimal_compare (rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Compare two XSD Decimals a : first XSD decimal b : second XSD decimal Returns : <0 if a is less than b, 0 if equal, >1 otherwise rasqal_xsd_decimal_divide () rasqal_xsd_decimal_divideint rasqal_xsd_decimal_divide (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Divide two XSD Decimals and store in result XSD Decimal If the divisor b is 0, failure is returned result : result variable a : argment decimal 1 b : argument decimal 2 Returns : non-0 on failure rasqal_xsd_decimal_equals () rasqal_xsd_decimal_equalsint rasqal_xsd_decimal_equals (rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Compare two XSD Decimals for equality. a : first XSD Decimal b : second XSD Decimal Returns : non-0 if equal. rasqal_xsd_decimal_get_double () rasqal_xsd_decimal_get_doubledouble rasqal_xsd_decimal_get_double (rasqal_xsd_decimal *dec); Get an XSD Decimal as a double (may lose precision) dec : XSD Decimal Returns : double value. rasqal_xsd_decimal_is_zero () rasqal_xsd_decimal_is_zeroint rasqal_xsd_decimal_is_zero (rasqal_xsd_decimal *d); Test if an XSD decimal is zero. d : decimal Returns : non-0 if decimal is zero rasqal_xsd_decimal_multiply () rasqal_xsd_decimal_multiplyint rasqal_xsd_decimal_multiply (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Multiply two XSD Decimals and store in result XSD Decimal result : result variable a : argment decimal 1 b : argument decimal 2 Returns : non-0 on failure rasqal_xsd_decimal_print () rasqal_xsd_decimal_printint rasqal_xsd_decimal_print (rasqal_xsd_decimal *dec, FILE *stream); Write an XSD Decimal to a FILE* stream dec : XSD Decimal stream : FILE* stream Returns : non-0 on failure rasqal_xsd_decimal_set_double () rasqal_xsd_decimal_set_doubleint rasqal_xsd_decimal_set_double (rasqal_xsd_decimal *dec, double d); Set an XSD Decimal value from a double. dec : XSD Decimal d : double Returns : non-0 on failure rasqal_xsd_decimal_set_long () rasqal_xsd_decimal_set_longint rasqal_xsd_decimal_set_long (rasqal_xsd_decimal *dec, long l ); Set an XSD Decimal value from a long. dec : XSD Decimal Param2 : Returns : non-0 on failure rasqal_xsd_decimal_set_string () rasqal_xsd_decimal_set_stringint rasqal_xsd_decimal_set_string (rasqal_xsd_decimal *dec, const char *string); Set an XSD Decimal value from a string lexical form dec : XSD Decimal string : lexical form Returns : non-0 on failure rasqal_xsd_decimal_subtract () rasqal_xsd_decimal_subtractint rasqal_xsd_decimal_subtract (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a, rasqal_xsd_decimal *b); Subtract two XSD Decimals and store in result XSD Decimal result : result variable a : argment decimal 1 b : argument decimal 2 Returns : non-0 on failure rasqal_xsd_decimal_negate () rasqal_xsd_decimal_negateint rasqal_xsd_decimal_negate (rasqal_xsd_decimal *result, rasqal_xsd_decimal *a); Negate an XSD Decimal result : result variable a : argment decimal Returns : non-0 on failure