1515// -----------------------------------------------------------------------------
1616#include " ratpak.h"
1717
18- #define ABSRAT (x ) (((x)->pp->sign = 1 ), ((x)->pq->sign = 1 ))
1918#define NEGATE (x ) ((x)->pp->sign *= -1 )
2019
2120// -----------------------------------------------------------------------------
@@ -73,35 +72,35 @@ void _gamma(PRAT* pn, uint32_t radix, int32_t precision)
7372
7473 // Find the best 'A' for convergence to the required precision.
7574 a = i32torat (radix);
76- lograt (&a, precision);
75+ _lograt (&a, precision);
7776 mulrat (&a, ratprec, precision);
7877
7978 // Really is -ln(n)+1, but -ln(n) will be < 1
8079 // if we scale n between 0.5 and 1.5
81- addrat (&a, rat_two, precision);
80+ _addrat (&a, rat_two, precision);
8281 DUPRAT (tmp, a);
83- lograt (&tmp, precision);
82+ _lograt (&tmp, precision);
8483 mulrat (&tmp, *pn, precision);
85- addrat (&a, tmp, precision);
86- addrat (&a, rat_one, precision);
84+ _addrat (&a, tmp, precision);
85+ _addrat (&a, rat_one, precision);
8786
8887 // Calculate the necessary bump in precision and up the precision.
8988 // The following code is equivalent to
9089 // precision += ln(exp(a)*pow(a,n+1.5))-ln(radix));
9190 DUPRAT (tmp, *pn);
9291 one_pt_five = i32torat (3L );
9392 divrat (&one_pt_five, rat_two, precision);
94- addrat (&tmp, one_pt_five, precision);
93+ _addrat (&tmp, one_pt_five, precision);
9594 DUPRAT (term, a);
9695 powratcomp (&term, tmp, radix, precision);
9796 DUPRAT (tmp, a);
9897 exprat (&tmp, radix, precision);
9998 mulrat (&term, tmp, precision);
100- lograt (&term, precision);
99+ _lograt (&term, precision);
101100 const auto ratRadix = i32torat (radix);
102101 DUPRAT (tmp, ratRadix);
103- lograt (&tmp, precision);
104- subrat (&term, tmp, precision);
102+ _lograt (&tmp, precision);
103+ _subrat (&term, tmp, precision);
105104 precision += rattoi32 (term, radix, precision);
106105
107106 // Set up initial terms for series, refer to series in above comment block.
@@ -118,10 +117,10 @@ void _gamma(PRAT* pn, uint32_t radix, int32_t precision)
118117 DUPRAT (sum, rat_one);
119118 divrat (&sum, *pn, precision);
120119 DUPRAT (tmp, *pn);
121- addrat (&tmp, rat_one, precision);
120+ _addrat (&tmp, rat_one, precision);
122121 DUPRAT (term, a);
123122 divrat (&term, tmp, precision);
124- subrat (&sum, term, precision);
123+ _subrat (&sum, term, precision);
125124
126125 DUPRAT (err, ratRadix);
127126 NEGATE (ratprec);
@@ -134,7 +133,7 @@ void _gamma(PRAT* pn, uint32_t radix, int32_t precision)
134133 // Loop until precision is reached, or asked to halt.
135134 while (!zerrat (term) && rat_gt (term, err, precision))
136135 {
137- addrat (pn, rat_two, precision);
136+ _addrat (pn, rat_two, precision);
138137
139138 // WARNING: mixing numbers and rationals here.
140139 // for speed and efficiency.
@@ -146,22 +145,22 @@ void _gamma(PRAT* pn, uint32_t radix, int32_t precision)
146145 divrat (&factorial, a2, precision);
147146
148147 DUPRAT (tmp, *pn);
149- addrat (&tmp, rat_one, precision);
148+ _addrat (&tmp, rat_one, precision);
150149 destroyrat (term);
151150 createrat (term);
152151 DUPNUM (term->pp , count);
153152 DUPNUM (term->pq , num_one);
154- addrat (&term, rat_one, precision);
153+ _addrat (&term, rat_one, precision);
155154 mulrat (&term, tmp, precision);
156155 DUPRAT (tmp, a);
157156 divrat (&tmp, term, precision);
158157
159158 DUPRAT (term, rat_one);
160159 divrat (&term, *pn, precision);
161- subrat (&term, tmp, precision);
160+ _subrat (&term, tmp, precision);
162161
163162 divrat (&term, factorial, precision);
164- addrat (&sum, term, precision);
163+ _addrat (&sum, term, precision);
165164 ABSRAT (term);
166165 }
167166
@@ -214,7 +213,7 @@ void factrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
214213 while (rat_gt (*px, rat_zero, precision) && (LOGRATRADIX (*px) > -precision))
215214 {
216215 mulrat (&fact, *px, precision);
217- subrat (px, rat_one, precision);
216+ _subrat (px, rat_one, precision);
218217 }
219218
220219 // Added to make numbers 'close enough' to integers use integer factorial.
@@ -226,13 +225,13 @@ void factrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
226225
227226 while (rat_lt (*px, neg_rat_one, precision))
228227 {
229- addrat (px, rat_one, precision);
228+ _addrat (px, rat_one, precision);
230229 divrat (&fact, *px, precision);
231230 }
232231
233232 if (rat_neq (*px, rat_zero, precision))
234233 {
235- addrat (px, rat_one, precision);
234+ _addrat (px, rat_one, precision);
236235 _gamma (px, radix, precision);
237236 mulrat (px, fact, precision);
238237 }
0 commit comments