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:<jdnew...@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 <mbmille...@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@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.


______________________________________________
R-help@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.

Reply via email to