YaK:: A lexically-ordered formatting of double on x86 | [Changes] [Calendar] [Search] [Index] [PhotoTags] |
#include <stdio.h> #include <math.h> union u { double d; char c[8]; }; main() { int m; int s; int e; for (s = -1; s<=1; s+=2) { for (e = -19; e < 19; ++e) { for (m = 8; m < 15; ++m) { union u x; x.d = m * s * exp(e); if (x.d >= 0) { printf("%20g %02x-%02x-%02x-%02x--%02x-%02x-%02x-%02x\n", x.d, 255 & x.c[7], 255 & x.c[6], 255 & x.c[5], 255 & x.c[4], 255 & x.c[3], 255 & x.c[2], 255 & x.c[1], 255 & x.c[0]); } else { printf("%20g -%02x-%02x-%02x-%02x--%02x-%02x-%02x-%02x\n", x.d, 255 & (255^x.c[7]), 255 & (255^x.c[6]), 255 & (255^x.c[5]), 255 & (255^x.c[4]), 255 & (255^x.c[3]), 255 & (255^x.c[2]), 255 & (255^x.c[1]), 255 & (255^x.c[0])); } } } } }
strick@uhuru:~/work$ ./a.out | LANG=C sort -k2 | less | awk '{if ($1 <= p) { print $1 } ; p = $1 }' -9.1924e+08 strick@uhuru:~/work$ strick@uhuru:~/work$ ./a.out | LANG=C sort -k2 | less | head -1 -9.1924e+08 -3e-34-9a-c2--38-09-e7-5a strick@uhuru:~/work$
strick@uhuru:~/work$ ./a.out | LANG=C sort -k2 | less | head -22
-9.1924e+08 -3e-34-9a-c2--38-09-e7-5a -8.5358e+08 -3e-36-8f-b4--58-9b-7b-65 -7.8792e+08 -3e-38-84-a6--79-2d-0f-71 -7.2226e+08 -3e-3a-79-98--99-be-a3-7d -6.566e+08 -3e-3c-6e-8a--ba-50-37-89 -5.9094e+08 -3e-3e-63-7c--da-e1-cb-95 -5.2528e+08 -3e-40-b0-dd--f6-e6-bf-42 -3.38169e+08 -3e-4b-d7-f2--05-73-2f-a5 -3.14014e+08 -3e-4d-48-85--4e-34-19-f5 -2.89859e+08 -3e-4e-b9-18--96-f5-04-44 -2.65704e+08 -3e-50-53-57--bf-6b-dd-29 -2.4155e+08 -3e-53-34-7e--50-ed-b1-c8 -2.17395e+08 -3e-56-15-a4--e2-6f-86-67 -1.9324e+08 -3e-58-f6-cb--73-f1-5b-06 -1.24406e+08 -3e-62-56-e3--52-d9-ff-c7 -1.15519e+08 -3e-64-75-40--cc-ee-ff-cb -1.06633e+08 -3e-66-93-9e--47-03-ff-cf -9.77472e+07 -3e-68-b1-fb--c1-18-ff-d3 -8.88611e+07 -3e-6a-d0-59--3b-2d-ff-d7 -7.9975e+07 -3e-6c-ee-b6--b5-42-ff-db -7.10889e+07 -3e-6f-0d-14--2f-57-ff-df -4.57662e+07 -3e-7a-2d-4c--e6-48-7a-c9
strick@uhuru:~/work$ ./a.out | LANG=C sort -k2 | less | tail -22
4.57662e+07 41-85-d2-b3--19-b7-85-36 7.10889e+07 41-90-f2-eb--d0-a8-00-20 7.9975e+07 41-93-11-49--4a-bd-00-24 8.88611e+07 41-95-2f-a6--c4-d2-00-28 9.77472e+07 41-97-4e-04--3e-e7-00-2c 1.06633e+08 41-99-6c-61--b8-fc-00-30 1.15519e+08 41-9b-8a-bf--33-11-00-34 1.24406e+08 41-9d-a9-1c--ad-26-00-38 1.9324e+08 41-a7-09-34--8c-0e-a4-f9 2.17395e+08 41-a9-ea-5b--1d-90-79-98 2.4155e+08 41-ac-cb-81--af-12-4e-37 2.65704e+08 41-af-ac-a8--40-94-22-d6 2.89859e+08 41-b1-46-e7--69-0a-fb-bb 3.14014e+08 41-b2-b7-7a--b1-cb-e6-0a 3.38169e+08 41-b4-28-0d--fa-8c-d0-5a 5.2528e+08 41-bf-4f-22--09-19-40-bd 5.9094e+08 41-c1-9c-83--25-1e-34-6a 6.566e+08 41-c3-91-75--45-af-c8-76 7.2226e+08 41-c5-86-67--66-41-5c-82 7.8792e+08 41-c7-7b-59--86-d2-f0-8e 8.5358e+08 41-c9-70-4b--a7-64-84-9a 9.1924e+08 41-cb-65-3d--c7-f6-18-a5
(last modified 2011-06-02) [Login] |