problem with numericalio: it writes 4 byte "unknowns" instead of 8 byte IEEE DP
Subject: problem with numericalio: it writes 4 byte "unknowns" instead of 8 byte IEEE DP
From: drgst web de (at dot)
Date: Sat, 29 Sep 2012 11:00:49 +0200
Dear all,
in my understanding, the manpage
http://maxima.sourceforge.net/docs/manual/de/maxima_63.html
states that the binary output produced by "write_binary_data" consists
of 8 byte floats that are commonly referred to as "IEEE 754 double
precision". When the following script:
load("numericalio");
assume_external_byte_order:msb;
a:1.0;b:2.0;ip:float(%pi);
lst:[a/b,a,b,ip/b,ip,a];
write_binary_data(lst,"filename goes in here");
is executed on a system described by :
build_info("5.28.0-2","2012-08-27 23:16:48","i686-pc-mingw32","GNU
Common Lisp (GCL)","GCL 2.6.8")
the output file looks like this when displayed in a hex editor:
30 80 00 00 31 00 00 00 31 80 00 00 31 44 2D 18 31 C4 2D 18 31 00 00
00
Obviously, this is a binary file comprising 4 byte data instead of 8
byte floats; this is confirmed by the OS file manager stating is
comprises 24 bytes. The values do not correspond to IEEE 754 single
precision floats either, as these would read:
3F 00 00 00 3F 80 00 00 40 00 00 00 3F C9 0F DB 40 49 0F DB 3F 80 00
00
So I guess numericalio's output gives some 4 byte integers, perhaps
the numerators of the internal representation by fractions??? I'm
confused... can somebody please comment on this...
Regards
Dragan