Skip to content

Commit bd570dc

Browse files
committed
TurboPFor: Bitutil
1 parent 9fdc8bf commit bd570dc

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

lib/bitutil.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -876,19 +876,17 @@ void bitzdec(unsigned char *in, unsigned n, unsigned esize) {
876876

877877
//----------- Lossy floating point conversion: pad the trailing mantissa bits with zero bits according to the relative error e (ex. 0.00001) ----------
878878

879-
#ifdef USE_FLOAT16
879+
#ifndef _NFLOAT16
880880
// https://clang.llvm.org/docs/LanguageExtensions.html#half-precision-floating-point
881-
#define ctof16(_cp_) (*(_Float16 *)(_cp_))
882-
883881
_Float16 _fprazor16(_Float16 d, float e, int lg2e) {
884882
uint16_t du = ctou16(&d), sign, u;
885-
int b = (du>>10 & 0x1f) - 15; // mantissa=10 bits, exponent=5bits, bias=15
883+
int b = (du>>10 & 0x1f) - 15; // exponent=[5 bits,bias=15], mantissa=10 bits SeeeeeMMMMMMMMMM
886884
_Float16 ed;
887885
if ((b = 12 - b - lg2e) <= 0)
888886
return d;
889-
b = b > 10?10:b;
890-
sign = du & (1<<15);
891-
du &= 0x7fff;
887+
b = b > 10?10:b;
888+
sign = du & (1<<15);
889+
du &= 0x7fff;
892890
for(d = ctof16(&du), ed = e * d;;) {
893891
u = du & (~((1u<<(--b))-1)); if(d - ctof16(&u) <= ed) break;
894892
u = du & (~((1u<<(--b))-1)); if(d - ctof16(&u) <= ed) break;

0 commit comments

Comments
 (0)