BUG Correctly handle float16 & float128 types

Float128 is now correctly handled, while a meaningful error message is
printed for float16.

Closes #47