1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>QOF: gnc-numeric.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.6-20040222 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<h1>gnc-numeric.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
An exact-rational-number library for gnucash.
<p>
<dl compact><dt><b>Author:</b></dt><dd>Copyright (C) 2000 Bill Gribble</dd></dl>
<p>
<code>#include <glib.h></code><br>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><b>_gnc_numeric</b></td></tr>
<tr><td colspan=2><br><h2>Constructors</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga1">gnc_numeric_create</a> (gint64 num, gint64 denom)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga2">gnc_numeric_zero</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga3">double_to_gnc_numeric</a> (double in, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const gchar * </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga4">string_to_gnc_numeric</a> (const gchar *str, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *n)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga5">gnc_numeric_error</a> (int error_code)</td></tr>
<tr><td colspan=2><br><h2>Value accessors</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>gint64 </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga6">gnc_numeric_num</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>gint64 </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga7">gnc_numeric_denom</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>double </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga8">gnc_numeric_to_double</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> in)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>gchar * </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga9">gnc_numeric_to_string</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> n)</td></tr>
<tr><td colspan=2><br><h2>Tests</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga10">gnc_numeric_check</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga11">gnc_numeric_zero_p</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga12">gnc_numeric_compare</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga13" doxytag="gnc-numeric.h::gnc_numeric_negative_p" ></a>
int </td><td class="memItemRight" valign=bottom><b>gnc_numeric_negative_p</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga14" doxytag="gnc-numeric.h::gnc_numeric_positive_p" ></a>
int </td><td class="memItemRight" valign=bottom><b>gnc_numeric_positive_p</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga15">gnc_numeric_eq</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga16">gnc_numeric_equal</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga17">gnc_numeric_same</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how)</td></tr>
<tr><td colspan=2><br><h2>Arithmetic operations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga18" doxytag="gnc-numeric.h::gnc_numeric_add" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_add</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga19" doxytag="gnc-numeric.h::gnc_numeric_sub" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_sub</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga20" doxytag="gnc-numeric.h::gnc_numeric_mul" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_mul</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga21" doxytag="gnc-numeric.h::gnc_numeric_div" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_div</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga22">gnc_numeric_neg</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga23">gnc_numeric_abs</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga24">gnc_numeric_add_fixed</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga25">gnc_numeric_sub_fixed</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b)</td></tr>
<tr><td colspan=2><br><h2>Arithmetic functions with exact error returns</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga26" doxytag="gnc-numeric.h::gnc_numeric_add_with_error" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_add_with_error</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *error)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga27" doxytag="gnc-numeric.h::gnc_numeric_sub_with_error" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_sub_with_error</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *error)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga28" doxytag="gnc-numeric.h::gnc_numeric_mul_with_error" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_mul_with_error</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *error)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga29" doxytag="gnc-numeric.h::gnc_numeric_div_with_error" ></a>
<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><b>gnc_numeric_div_with_error</b> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> a, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> b, gint64 denom, gint how, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *error)</td></tr>
<tr><td colspan=2><br><h2>Change denominator</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga30">gnc_numeric_convert</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> in, gint64 denom, gint how)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga31">gnc_numeric_convert_with_error</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> in, gint64 denom, gint how, <a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> *error)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga32">gnc_numeric_reduce</a> (<a class="el" href="group__Numeric.html#ga0">gnc_numeric</a> in)</td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga33">GNC_NUMERIC_RND_MASK</a> 0x0000000f</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga34" doxytag="gnc-numeric.h::GNC_NUMERIC_DENOM_MASK" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_NUMERIC_DENOM_MASK</b> 0x000000f0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga35" doxytag="gnc-numeric.h::GNC_NUMERIC_SIGFIGS_MASK" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_NUMERIC_SIGFIGS_MASK</b> 0x0000ff00</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga36" doxytag="gnc-numeric.h::GNC_DENOM_AUTO" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_DENOM_AUTO</b> 0</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga37" doxytag="gnc-numeric.h::GNC_DENOM_RECIPROCAL" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_DENOM_RECIPROCAL</b>(a) (- ( a ))</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga38" doxytag="gnc-numeric.h::GNC_DENOM_SIGFIGS" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_DENOM_SIGFIGS</b>(a) ( ((( a ) & 0xff) << 8) | GNC_DENOM_SIGFIG)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga39" doxytag="gnc-numeric.h::GNC_NUMERIC_GET_SIGFIGS" ></a>
#define </td><td class="memItemRight" valign=bottom><b>GNC_NUMERIC_GET_SIGFIGS</b>(a) ( (( a ) & 0xff00 ) >> 8)</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef _gnc_numeric </td><td class="memItemRight" valign=bottom><a class="el" href="group__Numeric.html#ga0">gnc_numeric</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">An exact-number type. <a href="group__Numeric.html#ga0"></a><br><br></td></tr>
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom>{ <br>
<b>GNC_RND_FLOOR</b> = 0x01,
<b>GNC_RND_CEIL</b> = 0x02,
<b>GNC_RND_TRUNC</b> = 0x03,
<b>GNC_RND_PROMOTE</b> = 0x04,
<br>
<b>GNC_RND_ROUND_HALF_DOWN</b> = 0x05,
<b>GNC_RND_ROUND_HALF_UP</b> = 0x06,
<b>GNC_RND_ROUND</b> = 0x07,
<b>GNC_RND_NEVER</b> = 0x08
<br>
}</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom>{ <br>
<b>GNC_DENOM_EXACT</b> = 0x10,
<b>GNC_DENOM_REDUCE</b> = 0x20,
<b>GNC_DENOM_LCD</b> = 0x30,
<b>GNC_DENOM_FIXED</b> = 0x40,
<br>
<b>GNC_DENOM_SIGFIG</b> = 0x50
<br>
}</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom>{ <br>
<b>GNC_ERROR_OK</b> = 0,
<b>GNC_ERROR_ARG</b> = -1,
<b>GNC_ERROR_OVERFLOW</b> = -2,
<b>GNC_ERROR_DENOM_DIFF</b> = -3,
<br>
<b>GNC_ERROR_REMAINDER</b> = -4
<br>
}</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun May 23 15:41:46 2004 for QOF by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.6-20040222 </small></address>
</body>
</html>
|