summaryrefslogtreecommitdiff
path: root/libmath/bin/unif_dtoa
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
commit37da2899f40661e3e9631e497da8dc59b971cbd0 (patch)
treecbc6d4680e347d906f5fa7fca73214418741df72 /libmath/bin/unif_dtoa
parent54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff)
20060303a
Diffstat (limited to 'libmath/bin/unif_dtoa')
-rw-r--r--libmath/bin/unif_dtoa37
1 files changed, 37 insertions, 0 deletions
diff --git a/libmath/bin/unif_dtoa b/libmath/bin/unif_dtoa
new file mode 100644
index 00000000..bb365822
--- /dev/null
+++ b/libmath/bin/unif_dtoa
@@ -0,0 +1,37 @@
+#!/bin/rc
+test -d /netlib/fp || 9fs netlib
+test -d /n/hati/usr/ehg || 9fs hati
+
+echo '/* derived from /netlib/fp/dtoa.c assuming IEEE, Standard C */' > dtoa.c
+echo '/* kudos to dmg@research.att.com, gripes to ehg@research.att.com */' >> dtoa.c
+echo '#include "lib9.h"' >> dtoa.c
+
+sed 's/^#if defined.IEEE_8087. . defined.IEEE_MC68k.*!= 1/#ifndef IEEE_Arith/
+ s/^#if defined.IEEE_8087. . defined.IEEE_MC68k.*/#ifdef IEEE_Arith/' \
+ /netlib/fp/dtoa.c > /n/hati/usr/ehg/xxx.c
+# undefine __STDC__ because we can't depend on HUGE_VAL
+rx hati 'unifdef -UIBM -UVAX -UKR_headers -U__cplusplus -U__STDC__ -UDEBUG \
+ -UBad_float_h -UJust_16 -UInaccurate_Divide -UROUND_BIASED \
+ -URND_PRODQUOT -DNo_leftright -UCheck_FLT_ROUNDS -D__MATH_H__ \
+ -DUnsigned_Shifts -DMALLOC=Malloc -DCONST=const \
+ -DPack_32 -DIEEE_Arith xxx.c | cb -s' > xxx.c
+sam -d >> dtoa.c >[2] err <<!
+e xxx.c
+1,/include "float\.h"\n/d
+/The following definition of Storeinc/+-;/^#endif\n/d
+/^#define IEEE_Arith\n/+-d
+/When Pack_32 is not defined/+-;/^\n/d
+,s/\n\n\n+/\n\n/g
+,s/\n\(/(/g
+,s/\\\(/\\\n(/g
+,x/IEEE_8087/ c/__LITTLE_ENDIAN/
+,x/^#if / c/#ifdef /
+,x g/errno/d
+,x/MALLOC/ c/malloc/
+,x/Long/ c/long/
+,x/CONST/ c/const/
+w
+q
+!
+cat xxx.c >> dtoa.c
+rm xxx.c