#include <rational.hpp>
Definition at line 36 of file rational.hpp.
rational | ( | ) | [inline] |
Definition at line 44 of file rational.hpp.
Definition at line 45 of file rational.hpp.
rational | ( | signed int | i | ) | [inline] |
Definition at line 47 of file rational.hpp.
rational | ( | unsigned int | i | ) | [inline] |
Definition at line 49 of file rational.hpp.
00049 : 00050 rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); } inline rational (signed short int i):
rational | ( | signed short int | i | ) | [inline] |
Definition at line 51 of file rational.hpp.
00051 : 00052 rep (new rational_rep ()) { mpq_set_si (rep->x, i, 1); } inline rational (unsigned short int i):
rational | ( | unsigned short int | i | ) | [inline] |
Definition at line 53 of file rational.hpp.
00053 : 00054 rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); } inline rational (signed long int i):
rational | ( | signed long int | i | ) | [inline] |
Definition at line 55 of file rational.hpp.
00055 : 00056 rep (new rational_rep ()) { mpq_set_si (rep->x, i, 1); } inline rational (unsigned long int i):
rational | ( | unsigned long int | i | ) | [inline] |
Definition at line 57 of file rational.hpp.
00057 : 00058 rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); } inline rational (const integer& i):
Definition at line 59 of file rational.hpp.
00059 : 00060 rep (new rational_rep ()) { mpq_set_z (rep->x, *i); } inline rational (const double& d):
rational | ( | const double & | d | ) | [inline] |
Definition at line 61 of file rational.hpp.
rational | ( | char *const & | c | ) | [inline] |
Definition at line 64 of file rational.hpp.
Definition at line 102 of file rational.hpp.
00102 { 00103 rational r; mpq_abs (*r, *x1); return r; }
Definition at line 127 of file rational.hpp.
double as_double | ( | const rational & | q | ) | [friend] |
Definition at line 217 of file rational.hpp.
Definition at line 165 of file rational.hpp.
00165 { 00166 return quo (numerator (x1) + denominator (x1) - 1, denominator (x1)); }
Definition at line 76 of file rational.hpp.
00076 { 00077 rational r; mpq_set (*r, *x1); return r; }
Definition at line 70 of file rational.hpp.
Definition at line 136 of file rational.hpp.
00136 { 00137 ASSERT (mpq_sgn (*x2) != 0, "division by zero"); 00138 r.secure (); mpq_div (*r, *x1, *x2); }
Definition at line 91 of file rational.hpp.
friend class floating [friend] |
Definition at line 215 of file rational.hpp.
Definition at line 161 of file rational.hpp.
00161 { 00162 return quo (numerator (x1), denominator (x1)); }
Definition at line 205 of file rational.hpp.
Definition at line 96 of file rational.hpp.
00096 { 00097 return rational (1) / x; }
Definition at line 72 of file rational.hpp.
Definition at line 94 of file rational.hpp.
Definition at line 171 of file rational.hpp.
Definition at line 157 of file rational.hpp.
Definition at line 155 of file rational.hpp.
Definition at line 133 of file rational.hpp.
Definition at line 124 of file rational.hpp.
void neg | ( | rational & | r | ) | [friend] |
Definition at line 121 of file rational.hpp.
Definition at line 68 of file rational.hpp.
Definition at line 143 of file rational.hpp.
Definition at line 84 of file rational.hpp.
00084 { 00085 rational r; mpq_mul (*r, *x1, *x2); return r; }
Definition at line 110 of file rational.hpp.
Definition at line 80 of file rational.hpp.
00080 { 00081 rational r; mpq_add (*r, *x1, *x2); return r; }
Definition at line 106 of file rational.hpp.
Definition at line 82 of file rational.hpp.
00082 { 00083 rational r; mpq_sub (*r, *x1, *x2); return r; }
Definition at line 78 of file rational.hpp.
00078 { 00079 rational r; mpq_neg (*r, *x1); return r; }
Definition at line 108 of file rational.hpp.
Definition at line 88 of file rational.hpp.
Definition at line 112 of file rational.hpp.
00112 { 00113 ASSERT (mpq_sgn (*x2) != 0, "division by zero"); 00114 x1.secure (); mpq_div (*x1, *x1, *x2); return x1; }
Definition at line 145 of file rational.hpp.
Definition at line 98 of file rational.hpp.
00098 { 00099 rational r; mpq_mul_2si (*r, *x1, shift); return r; }
Definition at line 115 of file rational.hpp.
Definition at line 149 of file rational.hpp.
Definition at line 141 of file rational.hpp.
Definition at line 147 of file rational.hpp.
Definition at line 151 of file rational.hpp.
Definition at line 100 of file rational.hpp.
00100 { 00101 rational r; mpq_mul_2si (*r, *x1, -shift); return r; }
Definition at line 117 of file rational.hpp.
Definition at line 180 of file rational.hpp.
00180 { 00181 /* 00182 rational r; 00183 if (i >= 0) { 00184 mpz_pow_ui (mpq_numref (*r), mpq_numref (*a), i); 00185 mpz_pow_ui (mpq_denref (*r), mpq_denref (*a), i); 00186 } 00187 else { 00188 ASSERT (mpq_sgn (*a) != 0, "division by zero"); 00189 mpz_pow_ui (mpq_denref (*r), mpq_numref (*a), -i); 00190 mpz_pow_ui (mpq_numref (*r), mpq_denref (*a), -i); 00191 } 00192 return r; 00193 */ 00194 if (i >= 0) 00195 return rational (pow (numerator (a), i)) / pow (denominator (a), i); 00196 else 00197 return rational (pow (denominator (a), -i)) / pow (numerator (a), -i); 00198 }
Definition at line 167 of file rational.hpp.
00167 { 00168 return quo (numerator (x1) + (denominator (x1) >> 1), denominator (x1)); }
int sign | ( | const rational & | x1 | ) | [friend] |
Definition at line 153 of file rational.hpp.
Definition at line 174 of file rational.hpp.
Definition at line 86 of file rational.hpp.
00086 { 00087 rational r; mpq_mul (*r, *x1, *x1); return r; }
Definition at line 130 of file rational.hpp.
Definition at line 163 of file rational.hpp.
00163 { 00164 return sign (x1) * quo (abs (numerator (x1)), denominator (x1)); }