mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
...
This commit is contained in:
parent
eefcf6b4df
commit
1707599d89
@ -108,6 +108,7 @@ union BitsCvtImpl<4>{
|
||||
static constexpr int C0 = 127; // 2^7 - 1
|
||||
static constexpr int C1 = -62; // 2 - 2^6
|
||||
static constexpr int C2 = 63; // 2^6 - 1
|
||||
static constexpr NumberTraits<4>::int_t C3 = 0b1011'1111'1111'1111'1111'1111'1111'1111;
|
||||
|
||||
BitsCvtImpl(NumberTraits<4>::float_t val): _float(val) {}
|
||||
BitsCvtImpl(NumberTraits<4>::int_t val): _int(val) {}
|
||||
@ -127,6 +128,7 @@ union BitsCvtImpl<8>{
|
||||
static constexpr int C0 = 1023; // 2^10 - 1
|
||||
static constexpr int C1 = -510; // 2 - 2^9
|
||||
static constexpr int C2 = 511; // 2^9 - 1
|
||||
static constexpr NumberTraits<8>::int_t C3 = 0b1011'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111'1111;
|
||||
|
||||
BitsCvtImpl(NumberTraits<8>::float_t val): _float(val) {}
|
||||
BitsCvtImpl(NumberTraits<8>::int_t val): _int(val) {}
|
||||
@ -187,7 +189,7 @@ inline PyObject* tag_float(f64 val){
|
||||
|
||||
inline f64 untag_float(PyObject* val){
|
||||
BitsCvt decomposed(reinterpret_cast<Number::int_t>(val));
|
||||
decomposed._int >>= 1;
|
||||
decomposed._int = (decomposed._int >> 1) & BitsCvt::C3;
|
||||
unsigned int exp_7b = decomposed._float_bits.exp;
|
||||
if(exp_7b == 0) return 0.0f;
|
||||
if(exp_7b == BitsCvt::C0){
|
||||
|
Loading…
x
Reference in New Issue
Block a user