packDouble method
Implementation
void packDouble(num value) {
int sign = 0;
if (value < 0) {
sign = 1;
value = -value;
}
int exp = (log(value) / ln2).floor();
num frac0 = value / (1 << exp) - 1;
int frac1 = (frac0 * (1 << 52)).floor();
int b32 = 1 << 32;
int h32 = (sign << 31) | ((exp + 1023) << 20) | ((frac1 ~/ b32) & 0x0fffff);
int l32 = frac1 % b32;
_bufferBuilder.append(0xcb);
packInt32(h32);
packInt32(l32);
}