Add support for half precision (f16) format. Achieves the memory advantages of u16 without the overhead of integer operations.
Requires x86 support (avx, f16c)