include/numerix/integer.hpp File Reference

#include <basix/basix-config.hpp>
#include <numerix/mmx_gmp.hpp>
#include <basix/int.hpp>

Go to the source code of this file.

Classes

Namespaces

Defines

Functions


Define Documentation

#define DOWNGRADE_FUN_INPLACE_LONG_LONG ( fun   ) 
Value:
inline friend void fun (integer& r, unsigned long long int x1,  \
                             const integer& x2) {                       \
    fun (r, integer (x1), x2); }                                        \
  inline friend void fun (integer& r, long long int x1,                 \
                          const integer& x2) {                          \
    fun (r, integer (x1), x2); }                                        \
  inline friend void fun (integer& r, const integer& x1,                \
                          unsigned long long int x2) {                  \
    fun (r, x1, integer (x2)); }                                        \
  inline friend void fun (integer& r, const integer& x2,                \
                          long long int x1) {                           \
    fun (r, x1, integer (x2)); }

Definition at line 323 of file integer.hpp.

#define DOWNGRADE_FUN_LONG_LONG ( fun   ) 
Value:
inline friend integer fun (unsigned long long int x1,                   \
                             const integer& x2) {                       \
    return fun (integer (x1), x2); }                                    \
  inline friend integer fun (long long int x1,                          \
                             const integer& x2) {                       \
    return fun (integer (x1), x2); }                                    \
  inline friend integer fun (const integer& x1,                         \
                             unsigned long long int x2) {               \
    return fun (x1, integer (x2)); }                                    \
  inline friend integer fun (const integer& x1,                         \
                             long long int x2) {                        \
    return fun (x1, integer (x2)); }

Definition at line 361 of file integer.hpp.

#define DOWNGRADE_FUN_X_LONG_LONG ( fun,
 ) 
Value:
inline friend integer fun (unsigned long long int x1,                   \
                             const integer& x2, X x) {                  \
    return fun (integer (x1), x2, x); }                                 \
  inline friend integer fun (long long int x1,                          \
                             const integer& x2, X x) {                  \
    return fun (integer (x1), x2, x); }                                 \
  inline friend integer fun (const integer& x1,                         \
                             unsigned long long int x2, X x) {          \
    return fun (x1, integer (x2), x); }                                 \
  inline friend integer fun (const integer& x1,                         \
                             long long int x2, X x) {                   \
    return fun (x1, integer (x2), x); }

Definition at line 375 of file integer.hpp.

#define DOWNGRADE_INPLACE ( op,
U,
 ) 
Value:
inline friend integer& operator op (integer& x1, U x2) {                \
    return x1 op (unsigned long int) x2; }                              \
  inline friend integer& operator op (integer& x1, I x2) {              \
    return x1 op (long int) x2; }

Definition at line 291 of file integer.hpp.

#define DOWNGRADE_INPLACE_LONG_LONG ( op   ) 
Value:
inline friend integer& operator op (integer& x1,                        \
                                      unsigned long long x2) {          \
    return x1 op integer (x2); }                                        \
  inline friend integer& operator op (integer& x1,                      \
                                      long long x2) {                   \
    return x1 op integer (x2); }

Definition at line 297 of file integer.hpp.

#define DOWNGRADE_LONG_LONG ( op   ) 
Value:
inline friend integer operator op (unsigned long long int x1,           \
                                     const integer& x2) {               \
    return integer (x1) op x2; }                                        \
  inline friend integer operator op (long long int x1,                  \
                                     const integer& x2) {               \
    return integer (x1) op x2; }                                        \
  inline friend integer operator op (const integer& x1,                 \
                                     unsigned long long int x2) {       \
    return x1 op integer (x2); }                                        \
  inline friend integer operator op (const integer& x1,                 \
                                     long long int x2) {                \
    return x1 op integer (x2); }

Definition at line 277 of file integer.hpp.

#define DOWNGRADE_TEST_LONG_LONG ( op   ) 
Value:
inline friend bool operator op (const integer& x1,                      \
                                  unsigned long long int x2) {          \
    return x1 op integer (x2); }                                        \
  inline friend bool operator op (const integer& x1,                    \
                                  long long int x2) {                   \
    return x1 op integer (x2); }                                        \
  inline friend bool operator op (unsigned long long int x1,            \
                                  const integer& x2) {                  \
    return integer (x1) op x2; }                                        \
  inline friend bool operator op (long long int x1,                     \
                                  const integer& x2) {                  \
    return integer (x1) op x2; }

Definition at line 401 of file integer.hpp.

#define HELPER ( type   ) 
Value:
inline nat dyadic_valuation (const type& i) { \
  if (i == 0) return (nat) -1; \
  for(nat v= 0; v < (8 * sizeof (i)); ++v) \
    if ((i >> v) & 1) return v; \
  return (nat) -1; \
}

Definition at line 1200 of file integer.hpp.

#define integer_construct (  )     as<generic> (integer (i))

Definition at line 1234 of file integer.hpp.

#define LEFT_DOWNGRADE_FUN ( fun,
U,
 ) 
Value:
inline friend integer fun (U x1, const integer& x2) {                   \
    return fun ((unsigned long int) x1, x2); }                          \
  inline friend integer fun (I x1, const integer& x2) {                 \
    return fun ((long int) x1, x2); }

Definition at line 349 of file integer.hpp.

#define LEFT_DOWNGRADE_FUN_INPLACE ( fun,
U,
 ) 
Value:
inline friend void fun (integer& r, U x1, const integer& x2) {  \
    fun (r, (unsigned long int) x1, x2); }                              \
  inline friend void fun (integer& r, I x1, const integer& x2) {        \
    fun (r, (long int) x1, x2); }

Definition at line 311 of file integer.hpp.

#define LEFT_DOWNGRADE_FUN_INPLACE_COMMUTATIVE ( fun,
U,
 ) 
Value:
inline friend void fun (integer& r, U x1, const integer& x2) {  \
    fun (r, x2, (unsigned long int) x1); }                              \
  inline friend void fun (integer& r, I x1, const integer& x2) {        \
    fun (r, x2, (long int) x1); }

Definition at line 317 of file integer.hpp.

#define LEFT_DOWNGRADE_FUN_X ( fun,
U,
I,
 ) 
Value:
inline friend integer fun (U x1, const integer& x2, X x) {              \
    return fun ((unsigned long int) x1, x2, x); }                       \
  inline friend integer fun (I x1, const integer& x2, X x) {            \
    return fun ((long int) x1, x2, x); }

Definition at line 355 of file integer.hpp.

#define LEFT_DOWNGRADE_INFIX ( op,
U,
 ) 
Value:
inline friend integer operator op (U x1, const integer& x2) {           \
    return (unsigned long int) x1 op x2; }                              \
  inline friend integer operator op (I x1, const integer& x2) { \
    return (long int) x1 op x2; }

Definition at line 265 of file integer.hpp.

#define LEFT_DOWNGRADE_INFIX_COMMUTATIVE ( op,
U,
 ) 
Value:
inline friend integer operator op (U x2, const integer& x1) {           \
    return x1 op (unsigned long int) x2; }                              \
  inline friend integer operator op (I x2, const integer& x1) {         \
    return x1 op (long int) x2; }

Definition at line 271 of file integer.hpp.

#define LEFT_DOWNGRADE_TEST ( op,
U,
 ) 
Value:
inline friend bool operator op (U x1, const integer& x2) {              \
    return (unsigned long int) x1 op x2; }                              \
  inline friend bool operator op (I x1, const integer& x2) {            \
    return (long int) x1 op x2; }

Definition at line 395 of file integer.hpp.

#define make_literal_integer   make_literal<integer>

Definition at line 1233 of file integer.hpp.

#define RIGHT_DOWNGRADE_FUN ( fun,
U,
 ) 
Value:
inline friend integer fun (const integer& x1, U x2) {                   \
    return fun (x1, (unsigned long int) x2); }                          \
  inline friend integer fun (const integer& x1, I x2) {                 \
    return fun (x1, (long int) x2); }

Definition at line 337 of file integer.hpp.

#define RIGHT_DOWNGRADE_FUN_INPLACE ( fun,
U,
 ) 
Value:
inline friend void fun (integer& r, const integer& x1, U x2) {  \
    fun (r, x1, (unsigned long int) x2); }                              \
  inline friend void fun (integer& r, const integer& x1, I x2) {        \
    fun (r, x1, (long int) x2); }

Definition at line 305 of file integer.hpp.

#define RIGHT_DOWNGRADE_FUN_X ( fun,
U,
I,
 ) 
Value:
inline friend integer fun (const integer& x1, U x2, X x) {              \
    return fun (x1, (unsigned long int) x2, x); }                       \
  inline friend integer fun (const integer& x1, I x2, X x) {            \
    return fun (x1, (long int) x2, x); }

Definition at line 343 of file integer.hpp.

#define RIGHT_DOWNGRADE_INFIX ( op,
U,
 ) 
Value:
inline friend integer operator op (const integer& x1, U x2) {           \
    return x1 op (unsigned long int) x2; }                              \
  inline friend integer operator op (const integer& x1, I x2) {         \
    return x1 op (long int) x2; }                                       \

Definition at line 259 of file integer.hpp.

#define RIGHT_DOWNGRADE_TEST ( op,
U,
 ) 
Value:
inline friend bool operator op (const integer& x1, U x2) {              \
    return x1 op (unsigned long int) x2; }                              \
  inline friend bool operator op (const integer& x1, I x2) {            \
    return x1 op (long int) x2; }                                       \

Definition at line 389 of file integer.hpp.


Generated on 6 Dec 2012 for numerix by  doxygen 1.6.1