getHalfPrecisionInt function

int getHalfPrecisionInt(
  1. double val
)

Gets a half precision integer value from a float.

Implementation

int getHalfPrecisionInt(double val) {
  final fBuff = typed.Float32Buffer(1);
  fBuff[0] = val;
  final bBuff = fBuff.buffer;
  final uList = bBuff.asUint8List();
  final intVal = uList[0] | uList[1] << 8 | uList[2] << 16 | uList[3] << 24;
  final index = intVal >> 23;
  final masked = intVal & 0x7FFFFF;
  final hBits = baseTable[index] + (masked >> shiftTable[index]);
  return hBits;
}