#include <diyfp.h>
internal::DiyFp::DiyFp |
( |
| ) |
|
|
inline |
internal::DiyFp::DiyFp |
( |
uint64_t |
fp, |
|
|
int |
exp |
|
) |
| |
|
inline |
Quat exp(const Quat &q)
Definition: Quat.h:729
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
internal::DiyFp::DiyFp |
( |
double |
d | ) |
|
|
inlineexplicit |
static const int kDpExponentBias
Definition: diyfp.h:146
static const uint64_t kDpSignificandMask
Definition: diyfp.h:151
unsigned __int64 uint64_t
Definition: stdint.h:90
uint64_t f
Definition: diyfp.h:154
static const uint64_t kDpExponentMask
Definition: diyfp.h:150
static const int kDpMinExponent
Definition: diyfp.h:148
int e
Definition: diyfp.h:155
static const uint64_t kDpHiddenBit
Definition: diyfp.h:152
static const int kDpSignificandSize
Definition: diyfp.h:145
DiyFp internal::DiyFp::Normalize |
( |
| ) |
const |
|
inline |
96 #if defined(_MSC_VER) && defined(_M_AMD64)
98 _BitScanReverse64(&index,
f);
99 return DiyFp(
f << (63 - index),
e - (63 - index));
100 #elif defined(__GNUC__) && __GNUC__ >= 4
101 int s = __builtin_clzll(
f);
105 while (!(res.f & (static_cast<uint64_t>(1) << 63))) {
DiyFp()
Definition: diyfp.h:38
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
DiyFp internal::DiyFp::NormalizeBoundary |
( |
| ) |
const |
|
inline |
static const int kDiySignificandSize
Definition: diyfp.h:144
DiyFp()
Definition: diyfp.h:38
static const uint64_t kDpHiddenBit
Definition: diyfp.h:152
static const int kDpSignificandSize
Definition: diyfp.h:145
void internal::DiyFp::NormalizedBoundaries |
( |
DiyFp * |
minus, |
|
|
DiyFp * |
plus |
|
) |
| const |
|
inline |
125 DiyFp pl =
DiyFp((
f << 1) + 1,
e - 1).NormalizeBoundary();
127 mi.f <<= mi.e - pl.e;
DiyFp()
Definition: diyfp.h:38
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
static const uint64_t kDpHiddenBit
Definition: diyfp.h:152
mult_round
65 #if defined(_MSC_VER) && defined(_M_AMD64)
70 return DiyFp(h,
e + rhs.e + 64);
71 #elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__)
72 __extension__
typedef unsigned __int128 uint128;
73 uint128 p =
static_cast<uint128
>(
f) * static_cast<uint128>(rhs.f);
78 return DiyFp(h,
e + rhs.e + 64);
89 uint64_t tmp = (bd >> 32) + (ad & M32) + (bc & M32);
91 return DiyFp(ac + (ad >> 32) + (bc >> 32) + (tmp >> 32),
e + rhs.e + 64);
DiyFp()
Definition: diyfp.h:38
unsigned __int64 uint64_t
Definition: stdint.h:90
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
DiyFp()
Definition: diyfp.h:38
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
double internal::DiyFp::ToDouble |
( |
| ) |
const |
|
inline |
static const int kDpExponentBias
Definition: diyfp.h:146
static const uint64_t kDpSignificandMask
Definition: diyfp.h:151
unsigned __int64 uint64_t
Definition: stdint.h:90
static const int kDpDenormalExponent
Definition: diyfp.h:149
uint64_t f
Definition: diyfp.h:154
int e
Definition: diyfp.h:155
static const uint64_t kDpHiddenBit
Definition: diyfp.h:152
static const int kDpSignificandSize
Definition: diyfp.h:145
const int internal::DiyFp::kDiySignificandSize = 64 |
|
static |
const int internal::DiyFp::kDpExponentBias = 0x3FF + kDpSignificandSize |
|
static |
const int internal::DiyFp::kDpMaxExponent = 0x7FF - kDpExponentBias |
|
static |
const int internal::DiyFp::kDpSignificandSize = 52 |
|
static |
The documentation for this struct was generated from the following file:
- dep/rapidjson/rapidjson/internal/diyfp.h