Added support to read and write half-precision floats