numerix_doc 0.4
|
#include <rational.hpp>
Definition at line 36 of file rational.hpp.
rational | ( | ) | [inline] |
Definition at line 44 of file rational.hpp.
: rep (new rational_rep ()) {}
rational | ( | signed int | i | ) | [inline] |
Definition at line 45 of file rational.hpp.
: rep (new rational_rep ()) {
mpq_set_si (rep->x, i, 1); }
rational | ( | unsigned int | i | ) | [inline] |
Definition at line 47 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); }
rational | ( | signed short int | i | ) | [inline] |
Definition at line 49 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_si (rep->x, i, 1); }
rational | ( | unsigned short int | i | ) | [inline] |
Definition at line 51 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); }
rational | ( | signed long int | i | ) | [inline] |
Definition at line 53 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_si (rep->x, i, 1); }
rational | ( | unsigned long int | i | ) | [inline] |
Definition at line 55 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_ui (rep->x, i, 1); }
Definition at line 57 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_z (rep->x, *i); }
rational | ( | const double & | d | ) | [inline] |
Definition at line 59 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_d (rep->x, d); }
rational | ( | char *const & | c | ) | [inline] |
Definition at line 62 of file rational.hpp.
:
rep (new rational_rep ()) { mpq_set_str (rep->x, c, 10); }
Definition at line 95 of file rational.hpp.
{ rational r; mpq_abs (*r, *x1); return r; }
Definition at line 120 of file rational.hpp.
{ r.secure (); mpq_add (*r, *x1, *x2); }
double as_double | ( | const rational & | q | ) | [friend] |
Definition at line 202 of file rational.hpp.
{return mpq_get_d(*q);}
Definition at line 237 of file floating.hpp.
{ floating<V> r; mpfr_set_q (*r, *x, V::rnd()); return r; }
Definition at line 158 of file rational.hpp.
{ return quo (numerator (x1) + denominator (x1) - 1, denominator (x1)); }
Definition at line 72 of file rational.hpp.
{ rational r; mpq_set (*r, *x1); return r; }
Definition at line 68 of file rational.hpp.
{
integer r; mpq_get_den (*r, *x1); return r; }
Definition at line 129 of file rational.hpp.
{
ASSERT (mpq_sgn (*x2) != 0, "division by zero");
r.secure (); mpq_div (*r, *x1, *x2); }
Definition at line 87 of file rational.hpp.
{
return mpq_sgn (*x1) != 0; }
friend class floating [friend] |
Definition at line 200 of file rational.hpp.
Definition at line 154 of file rational.hpp.
{ return quo (numerator (x1), denominator (x1)); }
nat hash | ( | const rational & | x | ) | [friend] |
Definition at line 190 of file rational.hpp.
{ const __mpq_struct &rep= (*x)[0]; if (rep._mp_num._mp_size == 0) return 0; return ((nat) (rep._mp_num._mp_d[0])) ^ ((nat) (rep._mp_num._mp_size << 3)) ^ ((nat) (rep._mp_den._mp_d[0] << 7)) ^ ((nat) (rep._mp_den._mp_size << 11)); }
Definition at line 89 of file rational.hpp.
{ return rational (1) / x; }
bool is_square | ( | const rational & | a | ) | [friend] |
Definition at line 164 of file rational.hpp.
{
return mpz_perfect_square_p (mpq_numref (*a)) &&
mpz_perfect_square_p (mpq_denref (*a)); }
Definition at line 150 of file rational.hpp.
{
return x1 >= x2? x1: x2; }
Definition at line 148 of file rational.hpp.
{
return x1 <= x2? x1: x2; }
Definition at line 126 of file rational.hpp.
{ r.secure (); mpq_mul (*r, *x1, *x2); }
void neg | ( | rational & | r | ) | [friend] |
Definition at line 114 of file rational.hpp.
{ r.secure (); mpq_neg (*r, *r); }
Definition at line 117 of file rational.hpp.
{ r.secure (); mpq_neg (*r, *x1); }
Definition at line 66 of file rational.hpp.
{
integer r; mpq_get_num (*r, *x1); return r; }
Definition at line 136 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) != 0; }
Definition at line 80 of file rational.hpp.
{ rational r; mpq_mul (*r, *x1, *x2); return r; }
Definition at line 103 of file rational.hpp.
{
x1.secure (); mpq_mul (*x1, *x1, *x2); return x1; }
Definition at line 76 of file rational.hpp.
{ rational r; mpq_add (*r, *x1, *x2); return r; }
Definition at line 99 of file rational.hpp.
{
x1.secure (); mpq_add (*x1, *x1, *x2); return x1; }
Definition at line 74 of file rational.hpp.
{ rational r; mpq_neg (*r, *x1); return r; }
Definition at line 78 of file rational.hpp.
{ rational r; mpq_sub (*r, *x1, *x2); return r; }
Definition at line 101 of file rational.hpp.
{
x1.secure (); mpq_sub (*x1, *x1, *x2); return x1; }
Definition at line 84 of file rational.hpp.
{ ASSERT (mpq_sgn (*x2) != 0, "division by zero"); rational r; mpq_div (*r, *x1, *x2); return r; }
Definition at line 105 of file rational.hpp.
{ ASSERT (mpq_sgn (*x2) != 0, "division by zero"); x1.secure (); mpq_div (*x1, *x1, *x2); return x1; }
Definition at line 138 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) < 0; }
Definition at line 91 of file rational.hpp.
{ rational r; mpq_mul_2si (*r, *x1, shift); return r; }
Definition at line 108 of file rational.hpp.
{ x1.secure (); mpq_mul_2si (*x1, *x1, shift); return x1; }
Definition at line 142 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) <= 0; }
Definition at line 134 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) == 0; }
Definition at line 140 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) > 0; }
Definition at line 144 of file rational.hpp.
{
return mpq_cmp (*x1, *x2) >= 0; }
Definition at line 93 of file rational.hpp.
{ rational r; mpq_mul_2si (*r, *x1, -shift); return r; }
Definition at line 110 of file rational.hpp.
{ x1.secure (); mpq_mul_2si (*x1, *x1, -shift); return x1; }
Definition at line 173 of file rational.hpp.
{ rational r; if (i >= 0) { mpz_pow_ui (mpq_numref (*r), mpq_numref (*a), i); mpz_pow_ui (mpq_denref (*r), mpq_denref (*a), i); } else { ASSERT (mpq_sgn (*a) != 0, "division by zero"); mpz_pow_ui (mpq_denref (*r), mpq_numref (*a), -i); mpz_pow_ui (mpq_numref (*r), mpq_denref (*a), -i); } return r; }
Definition at line 185 of file rational.hpp.
Definition at line 160 of file rational.hpp.
{ return quo (numerator (x1) + (denominator (x1) >> 1), denominator (x1)); }
int sign | ( | const rational & | x1 | ) | [friend] |
Definition at line 146 of file rational.hpp.
{ int r= mpq_sgn (*x1); return (r<0? -1: (r==0? 0: 1)); }
Definition at line 167 of file rational.hpp.
Definition at line 82 of file rational.hpp.
{ rational r; mpq_mul (*r, *x1, *x1); return r; }
Definition at line 123 of file rational.hpp.
{ r.secure (); mpq_sub (*r, *x1, *x2); }
Definition at line 156 of file rational.hpp.
{ return sign (x1) * quo (abs (numerator (x1)), denominator (x1)); }