Parcourir la source

Make the real number size a global variable (yuck).

legacy
Sam Hocevar il y a 7 ans
Parent
révision
359c6fc4c4
2 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. +2
    -0
      src/lol/math/real.h
  2. +3
    -2
      src/math/real.cpp

+ 2
- 0
src/lol/math/real.h Voir le fichier

@@ -214,6 +214,8 @@ private:
bool m_sign, m_nan, m_inf;

public:
static int DEFAULT_BIGIT_COUNT;

static inline int bigit_bits() { return 8 * sizeof(bigit_t); }
inline int bigit_count() const { return m_mantissa.count(); }
inline int total_bits() const { return bigit_count() * bigit_bits(); }


+ 3
- 2
src/math/real.cpp Voir le fichier

@@ -77,7 +77,8 @@ LOL_CONSTANT_GETTER(R_SQRT1_2, R_SQRT2() / 2);
* Now carry on with the rest of the Real class.
*/

#define DEFAULT_SIZE 16
template<>
int real::DEFAULT_BIGIT_COUNT = 16;

template<> real::Real()
: m_exponent(0),
@@ -118,7 +119,7 @@ template<> real::Real(double d)
/* Only works with 32-bit bigits for now */
static_assert(sizeof(bigit_t) == 4);
m_exponent = exponent - ((1 << 10) - 1);
m_mantissa.resize(DEFAULT_SIZE);
m_mantissa.resize(DEFAULT_BIGIT_COUNT);
m_mantissa[0] = (bigit_t)(u.x >> 20);
m_mantissa[1] = (bigit_t)(u.x << 12);
break;


Chargement…
Annuler
Enregistrer