[R] tried half-precision but "size 2 is unknown on this machine"
Prof Brian Ripley
ripley at stats.ox.ac.uk
Sun Jan 4 18:19:34 CET 2015
On 04/01/2015 12:12, Duncan Murdoch wrote:
> On 04/01/2015 12:31 AM, Mike Miller wrote:
>> It's an IEEE standard format:
>> This is what I see:
>>> writeBin(vec , con, size=2 )
>> Error in writeBin(vec, con, size = 2) : size 2 is unknown on this machine
>> I'm not sure what the machine has to do with it. It's really up to the
>> software, isn't it?
> Yes, but R relies on the underlying C run-time library for a lot of
> things like this. On your platform, is there a C type corresponding to
> half precision? If so, let us know the details, and we'll possibly add
> it to writeBin.
There is a IEC60559 (aka IEEE 754) 'half-precision floating-point type',
but I know of no support by a C runtime on any platform I have used
(there is a lot more in IEC60559 which is almost never supported).
>> Is there a way to get R to read/write half-precision numbers (binary16)?
> If it's not supported by the C run-time library and has to be done
> entirely using other types, that's the sort of thing that belongs in a
> user-contributed package. I'm not aware of one that already has it, so
> you may have to write this yourself.
There is a C++ library called 'half' which could be wrapped. See
http://half.sourceforge.net/ : it has a lot of compiler-specific code.
> Duncan Murdoch
>> It isn't a big deal for me because unsigned 16-bit integers are working
>> well enough, but I'd like to have an answer for people who ask why I make
>> them divide by 1000 all the time. ;-)
Brian D. Ripley, ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK
More information about the R-help