I just found three bugs in the OpenBSD 4.0 "bc" program.
0) some "evil" numbers make bc hang:
[EMAIL PROTECTED]:~$ bc -l
ibase=4
obase=10
scale=100
l(1.031)
.023311001002311221102233202
(immediate reply)
l(1.03)
[ - HANG at least for 11 minutes - ]
PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
8025 clock 64 0 1528K 1916K run - 11:37 98.97% dc
1) The same input number produces five diametrally different results:
[EMAIL PROTECTED]:~$ bc -l
ibase=11
obase=10
scale=100
l(0.2)
-2.336816A4A3A1303948A3495818A111140A67A8A9A80556A4767262A3229825592\
A03587166864722462495814249A8938256309517495755642A7
l(0.20)
-1.7954400220602A460838195740444338436003009806803667168750A9A241142\
72587A144639908A7016A5942696269369157A34282060693446
l(0.200)
-1.78902828358631380505724195179A512235778A74463975A17543454945A4876\
417795730427237570460376500227690133A16196A1AA80A242
l(0.2000)
-1.783175444431A171175806A94595310A605471291620215436052394A85515172\
7203678147326AA621928022938A7195425A3694533825144951
l(0.20000)
-1.783096A58955850599713A23010283880184908158785094820A1187923799A64\
94181A000871494461384AA1578162954A793643812592151238
2) There are multiple points in which the logarithm function returns an
unplausibly large value which further depends heavily on the current precision
setting, while it still gives plausible results if you move
only a tiny little bit either side:
[EMAIL PROTECTED]:~$ bc -l
ibase=16
obase=10
scale=10
l(0.1000001)
-2.C5C85FDF473DE3
l(0.0FFFF)
-2.C5D2DC7106EFA6
l(0.1)
-FFFFFFFFFFFFFFFF
scale=100
l(0.10000000000000000000000000000000000000000000000000001)
-2.C5C85FDF473DE6AF278ECE600FCBDABD03CD0C99CA62D8B628345D6E2EABE8AF9\
EE1D881B7AEB26156554BED2BE86C43B4BAB8D704E085109D5CECA445A6E094FA5B2\
858892BA3146B2F6844C5F0E1FAE7AA6F0EC4D980EC95BE83B1D95FDD2DCB3A1EC67\
595232BD77E6
l(0.1)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
-2.C5C85FDF473DE6AF278ECE600FCBDABD03CD0C99CA62D91A9736982097B12EA8C\
1A305AED9D7ED0C9C0E87FF29D6EABBDB73C47C018C2F18D5D80C5B354E83BAA5623\
5573ECD2A69783D2118428CBD2150BD9CAA2EEE7FB6B9C190BDF4B80392A9F465BF3\
C5DE964480E4
l(0.01)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.02)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.04)
-4.9AEC6EED554560B752B6B15C16985147147F67CED2EFC8741E30F4100F816B94B\
17816BD8D4082E663865E0162F86B41631120C2085F16D7DC7BC4201728B6B3C167C\
514546488F3B2D5361D86C18FDF7B367582559E37D28B0DDA4E90CE3DDE533D9AD91\
B02842C74998
l(0.008)
-6.E862A663FFE81112FC120A0A21E479EA9EBF1BB63C67ACAE2D496E181742215F0\
A34221C53E0C45995498D021474A0E21499B1230C8EA243CAB9A63022BD120DA21BA\
79E7E96CD6D8C3FD12C4A2257CF38D1B043806D53BBD094C775D9355CCD7CDC6845A\
883C642AEE68
l(0.004)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.002)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.001)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.0008)
-9.35D8DDDAAA8AC16EA56D62B82D30A28E28FECF9DA5DF90E83C61E8201F02D7296\
2F02D7B1A8105CCC70CBC02C5F0D682C622418410BE2DAFB8F788402E516D6782CF8\
A28A8C911E765AA6C3B0D831FBEF66CEB04AB3C6FA5161BB49D219C7BBCA67B35B23\
6050858E9334
l(0.0004)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.00008)
-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
l(0.00008000000000000000000000000000000000000000000000000000000001)
-B.C8939774EEC71468681EED18432261A35027758D9C2419062ADE8D14465A9CEA6\
33FD8274CA6761DAEEA82AFFA9BCC1FC0199191D4BA35869CCAEDBA28053A7928036\
B7846F97516C7897B24493FC06A589457FEC49C63ED7C69AFB3DBD76C029FB702CB7\
3B9D57A53DB4
CL<