[R] tried half-precision but "size 2 is unknown on this machine"
Mike Miller
mbmiller+l at gmail.com
Sun Jan 4 08:03:19 CET 2015
Thanks for the pedantic insult, but no thanks. I'd rather just hear if
anyone reading this is able to make something like this work on any
architecture:
vec <- 1:10/10
con <- file( "test.bin16", "wb" )
writeBin( vec , con, size=2 )
close(con)
If they can do it, they can tell me about it. That shouldn't ruin the
list for anyone else.
I can understand why a machine architecture would prevent floating-point
operations with half-precision numbers, but I can't understand how it
prevents us from encoding doubles as half-precision to store them in a
file. They could then be read back in, translated on the fly into
doubles. Like I said, I've been using integers instead of floats to store
the numbers in files, but it could be slightly more convenient to use
half-precision floats for storage instead of converting integers to
floats.
Almost forgot. Please tell me how this changes anything:
> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8 LC_COLLATE=C
LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8
LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.1.1
Also, this is how the hexbin package is described:
"Description" Binning and plotting functions for hexagonal bins."
So I guess that suggestion wasn't helping me much, either.
Mike
On Sat, 3 Jan 2015, Jeff Newmiller wrote:
> Your message is missing either a reproducible example or an indication
> of your R environment (such as the output of sessionInfo()).
>
> Yes, the machine architecture can prevent certain types of operations.
> This is however a poor venue for discussing such issues.
>
> I suggest that you investigate the hexbin package for binary data
> handling, and if you still have issues then post again, following the
> posting guide recommendations.
>
> ---------------------------------------------------------------------------
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
> Live: OO#.. Dead: OO#.. Playing
> Research Engineer (Solar/Batteries O.O#. #.O#. with
> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
>
> On January 3, 2015 9:31:02 PM PST, Mike Miller <mbmiller+l at gmail.com> wrote:
>> It's an IEEE standard format:
>>
>> http://en.wikipedia.org/wiki/Half-precision_floating-point_format#IEEE_754_half-precision_binary_floating-point_format:_binary16
>>
>> 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?
>>
>> Is there a way to get R to read/write half-precision numbers
>> (binary16)?
>>
>> 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. ;-)
>>
>> Mike
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list