File: CHANGES

package info (click to toggle)
libmath-bigint-perl 1.999816-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 9,584 kB
  • sloc: perl: 45,688; pascal: 5,268; makefile: 2
file content (2449 lines) | stat: -rw-r--r-- 88,420 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
1.999816 2018-10-26

 * bnok() for Math::BigInt and Math::BigFloat now support the full Kronenburg
   extension. The behaviour is identical to the behaviour of the Maple and
   Mathematica function for negative integers n, k. Add tests. This closes CPAN
   RT #95628.

 * Fix POD errors. This closes CPAN RT #125141.

1.999815 2018-10-19

 * Move bitwise operators signed and, signed or, and signed xor from
   lib/Math/BigInt/CalcEmu.pm into lib/Math/BigInt/Lib.pm. The file
   lib/Math/BigInt/CalcEmu.pm is no longer needed and thus removed.

1.999814 2018-10-01

 * Add to_base() and from_base() to Math::BigInt and corresponding library
   methods _to_base() and _from_base() to Math::BigInt::Lib. This was inspired
   by CPAN RT #122681.

 * Fix Makefile.PL to reflect that Test::More is only needed for testing, not
   for building.

 * In the documentation for each of the to_(bin|hex|oct|bytes) methods, add a
   reference to the corresponding from_(bin|hex|oct|bytes) method.

1.999813 2018-04-18

 * Fix CPAN RT #125108. Remove test files try.pl, t/author-bpi-big-mbf.t, and
   t/release-unused-vars.t, which were included in the 1.999812 distribution by
   accident.

1.999812 2018-04-17

 * Fix CPAN RT #120351 regarding bpow(). Add test.

 * Fix CPAN RT #120717 regarding tests now that '.' is not in @INC by default.

 * Fix CPAN RT #122756 regarding testing for 64 bit integer support.

 * Fix case when both accuracy and precision are set, resulting in a NaN. This
   closes CPAN RT #124790.

 * Fix typo in one of the change log entries for version 1.999811.

 * Clearify documentation of rounding modes.

 * Update the documentation of configuration parameters.

 * Fix rounding and accuracy in bpi(). Extra digits in intermediate computation
   were not used, causing the last digits to be inaccurate. In addition, the
   rounding was incorrect in some cases.

 * Use config() as a method, rather than a function. Also use config("xyz")
   rather than config()->{xyz}.

 * Correct more of the problems with rounding in the constructors. If rounding
   arguments are given as arguments to the constructor, the constructor should
   assign those values to the instance. If no rounding arguments are given, and
   the constructor is called as a class method, the class rounding variables
   should be assigned to the instance. Added test file
   t/author-constructors-a-p-r.t to replace t/author-constructors-a-p.t, but
   lots of tests are failing and (for now) commented out.

 * Remove statements used for debugging.

 * Fix typos.

 * Cleaner log/exp-related code in Math::BigFloat.

 * Remove unused variables.

 * Add test file t/release-portability.t.

 * Add test file t/release-whitespaces.t.

 * Convert test file t/02pod.t to t/release-pod.t and t/03podcov.t to
   t/release-pod-coverage.t.

 * Reformat CHANGES to match the specification in CPAN::Changes::Spec and
   CPAN::Meta::Spec.

 * Expand tabs to spaces and clean up whitepace.

 * Include tests that were previously commented out.

 * Use $LIB as the variable name for backend math library.

 * Import "carp" and "croak" from the Carp module.

 * Math::BigInt isa Exporter, so Math::BigInt should require Exporter.
   Math::BigFloat has Math::BigInt in @ISA, so it doesn't need to require
   Exporter.

 * Don't load Test::More when it isn't really needed. This speeds up processing
   of author test files when they are skipped.

1.999811 2017-03-15 pjacklam

 * Fix an old bug in the Math::BigFloat methods as_hex(), as_oct(), and
   as_bin() methods resulting in loss of accuracy. This bug was introduced in
   bug in Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of
   tests, this bug was also present in the newer to_hex(), to_oct(), and
   to_bin() methods. This shows the bug, as it did not print "0xffff...":

       print Math::BigFloat -> from_hex("f" x 30) -> as_hex();

 * Fix incorrect formatting in the output from the Math::BigFloat methods
   to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
   added when it shouldn't have been.

 * Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(),
   as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().

 * "Synchronize" tests and code formatting in bigintpm.inc and bigfltpm.inc.

1.999810 2017-03-01 pjacklam

 * CPAN RT #120240 revealed that the problems with undefined values is still
   present. After a close examination, I believe the only way to get this
   really working is to to make blog() call objectify() differently depending
   on whether the base for the logarithm is undefined or not. That way we can
   avoid objectify() converting the undefined value to a zero. Ideally, we
   should warn about undefined values when used in any other context, but we'll
   handle that in a later release. See also the related changelog entry for
   v1.999801.

 * Fix the way the argument count is computed in objectify(). When an argument
   count of 0 is given, it means that we should objectify all input arguments.
   However, it turned out that the actual argument count was computed
   incorrectly.

 * Fix CPAN RT #120242 rearding c3 method resolution.

1.999809 2017-02-10 pjacklam

 * When a new method is added to Math::BigInt or Math::BigFloat, and this new
   method requires a new backend library method, die with a suitable error
   message if the installed backend library does not support this new method.
   The error message says that the method requires a newer version of the
   backend library.

 * Fix typos in Math::BigFloat and Math::BigInt.

 * Add bfib() and blucas() to Math::BigInt. They return Fibonacci and Lucas
   numbers, respectively. The actual computation of the numbers is done by the
   backend library. Documented both methods in POD. Add test files bfib-mbi.t
   and blucas-mbi.t.

 * Add _fib() and _lucas() to Math::BigInt::Lib. They return Fibonacci and
   Lucas numbers, respectively. Document both methods in POD. Add test files
   author-lib-arithmetic-unary-_fib.t and author-lib-arithmetic-unary-_lucas.t.

1.999808 2017-01-11 pjacklam

 * In Math::BigInt and Math::BigFloat, add methods bdfac() for double
   factorial. Add tests for this method.

 * In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and
   to_bin() for hexadecimal, octal, and binary string output without prefix.
   Even for Math::BigFloat there is still only support for integer output. Add
   tests for these methods.

 * Add test for as_oct() corresponding to the old tests for as_hex() and
   as_bin().

 * In Math::BigInt::Lib, add method _dfac() for double factorial. Add
   corresponding tests.

 * In Math::BigInt::Lib, fix bug in overloaded "int".

 * In Math::BigInt::Lib, implement much faster versions of _from_hex(),
   _from_oct(), and _from_bin().

 * In Makefile.PL, improve the wording in the message displayed if some of
   the installed backend libraries are not a subclass of Math::BigInt::Lib (and
   hence will not provide

 * Fix minor bugs in some of the author library test files (t/author-lib*.t).

 * Allow leading and trailing whitespace in the input to from_hex(),
   from_oct(), and from_bin().  Add tests to verify. This is a regressions
   (CPAN RT #119805).

1.999807 2016-12-23 pjacklam

 * Add a message to Makefile.PL recommending upgrade if old libraries are
   installed. This message is more or less equivalent to the one appearing in
   Math-BigInt up until v1.997.

 * Improve the documentation (POD) in Math::BigInt::Lib.

 * Speed up _sqrt() and _root() in Math::BigInt::Lib.

 * Remove checking for exception cases (cases that would return +Inf, -Inf, or
   NaN) in Math::BigInt::Lib. It has been documented for a long time that such
   checking should be done by the caller.

 * Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to
   the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that
   the _to_*() methods don't use a prefix in the output. This removes the need
   for the frequent removal of the various prefixes. Now each _as_*() method
   calls the equivalent _to_*() method, adds a prefix, and returns the output.
   The _to_*() methods are faster than the equivalent _as_*() methods were.

 * Add author test files for the methods _to_bin(), _to_oct(), and _to_hex().

 * Add library method _to_bytes(). The method _as_bytes() would have been
   called _to_bytes() if I had thought of it earlier. The method _as_bytes() is
   now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug
   that was present in the _as_bytes() method. (CPAN RT #119346).

 * Add author test files for the method _to_bytes().

 * Add more tests for library methods _inc() and _dec(). When trying to bring
   the Math::BigInt::BitVect library back to life I realized that the test
   suite didn't catch certain errors in _inc() and _dec().

 * Die if trying to use as_bytes() or from_bytes() with a backend library that
   doesn't support the corresponding library methods.

 * Correct minor errors in the output messages in the test files.

 * Improve/correct various comments in the source code.

 * More diagnostic output is displayed by the author test files if the
   AUTHOR_DEBUGGING environment variable is set.

1.999806 2016-12-13 pjacklam

 * Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199
   and #119225).

 * In the TODO file, remove stuff that has been implemented.

1.999805 2016-12-11 pjacklam

 * Fix Makefile.PL so that this module installs over the core version.

 * Add more tests for _nok() (binomial coefficient "n over k"). These new tests
   revealed some problems with some of the backend libraries when _nok() was
   given very large arguments.

 * Remove t/Math/BigFloat/#Subclass.pm#, which is an Emacs temporary file
   included by accident.

1.999804 2016-12-07 pjacklam

 * Implement as_bytes(), as requested (CPAN RT 119096). Also implement the
   inverse conversion from_bytes(). This applies to Math::BigInt only. (Alas,
   these methods will be inherited from Math::BigInt into Math::BigFloat,
   Math::BigRat etc. where the methods won't work. Fixing this class
   relationship is an issue of its own.)

 * Implement _as_bytes() and _from_bytes() in Math::BigInt::Lib. Preferably,
   the various backend libraries will implement faster versions of their
   own. Add author test files for testing these methods thorougly.

 * Fix from_hex(), from_oct(), and from_bin().
   - When called as instance methods, the new value should be assigned to the
     invocand unless the invocand is read-only (a constant).
   - When called as instance methods, the assigned value was incorrect, if the
     invocand was inf or NaN.
   - Add tests to t/from_hex-mbf.t, t/from_oct-mbf.t, and t/from_bin-mbf.t
     to confirm the fix.
   - Add new test files t/from_hex-mbi.t, t/from_oct-mbi.t, and
     t/from_bin-mbi.t for better testing of these methods with Math::BigInt.

 * Correct typo in Math/BigInt/Lib.pm (otherise -> otherwise) (CPAN RT 118829).

 * Add POD coverage testing of Math::BigInt::Lib to t/03podcov.t.

1.999803 2016-12-03 pjacklam

 * Remove BENCHMARK file. The information was obsolete.

 * Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL

 * Reorder CHANGES file (this file) so the newest entries appear at the top.

 * Fix error in test information text in various author test files.

 * Remove author information in LICENSE file.

 * Inform that the TODO file is not up to date.

1.999802 2016-11-28 pjacklam

 * When bzero(), bone(), binf(), and bnan() are used as constructors, don't
   check whether the class allows the object to be modified. A constructor
   isn't modifying any existing object. This applies to both Math::BigInt and
   Math::BigFloat.

 * Improve bgcd() and blcm(). This applies to both Math::BigInt and
   Math::BigFloat.

1.999801 2016-11-23 pjacklam

 * Fix, hopefully once and for all, the longstanding problem of handling undef
   as an operand to mathematical methods. The only method that accepts undef as
   an operand is blog(), where the second operand might be undef, as in
   $x->blog() or $x->blog($b), where $b is undef. The undef signifies that
   Euler's number should be used as the base. With this fix, we should be able
   to get Math::BigInt::Lite working again.

 * Add least common multiple method _lcm() to Math::BigInt::Lib, and add
   corresponding test file t/author-lib-arithmetic-binary-_lcm.t and test data
   file t/author-lib-arithmetic-binary-_lcm.dat.

 * Remove internal function __lcm() which has become redundant now that _lcm()
   is in the library.

 * Make it possible to use bgcd() and blcm() as class methods, since other
   methods can be used as class methods. This applies to both Math::BigInt and
   Math::BigFloat.

 * Fix blcm() with negative input. The LCM should always be non-negative. This
   applies to both Math::BigInt and Math::BigFloat.

 * Add tests for bgcd() and blcm() in t/bigintpm.t and t/bigfltpm.t.

 * Fix tests for blcm() assuming that LCM(0,0) should be a NaN. LCM(0,0) is 0
   by convention.

 * Prefer Class->config('option') over Class->config()->{option}. However, this
   does not seem to be working for all options. It seems that this won't work
   properly until we move the global variables into the OO interface.

 * Explicitly specify the library in all test files that are shared between
   Math-BigInt and the library distributions (FaatCalc, GMP, Pari, ...) with,
   e.g., "use Math::BigInt only => 'Calc';". This way, it will fail immediately
   if the specified library can't be loaded rather than using the fallback
   library.

1.999800 2016-11-15 pjacklam

 * Upgrade bundled Module::Install from version 1.16 to version 1.17.

 * Add Math::BigInt::Lib (lib/Math/BigInt/Lib.pm), a parent class for
   Math::BigInt backend libraries.

 * Use objects in Math::BigInt::Calc, not just array refs. Also use OO-style,
   i.e., use $class->_add($x, $y) rather than _add($class, $x, $y).

 * Not all library methods modify the invocand, so call library methods as,
   e.g, $x = $LIB->method($x, $y) rather than just $LIB->method($x, $y).

 * Math::BigInt::Calc is now a subclass of Math::BigInt::Lib.

 * Add Math::BigInt::Lib::Minimal (t/Math/BigInt/Lib/Minimal.pm) for testing
   inheritance from Math::BigInt::Lib.

 * Minor simplification in Math::BigInt::Calc->_str().

 * Speed up Math::BigInt::Calc->_root().

 * Remove test files that were included in the previous release by accident.

 * Add more tests and use more verbose output in some tests.

 * Fix typo in lib/Math/BigFloat.pm

 * Fix documentation error in lib/Math/Calc.pm

 * Use Config::Tiny and an .ini file to handle the library specific
   configuration for the author-lib*.t test files.

1.999727 2016-11-04 pjacklam

 * Skip test exceeding the range of VAX floating point number in t/bigintpm.inc
   (CPAN RT 118468).

 * Fix typo in lib/Math/BigInt.pm (CPAN RT 118550).

1.999726 2016-07-15 pjacklam

 * Re-insert Math::BigFloat->DESTROY, which was accidentally removed in
   v1.999725.

1.999725 2016-07-13 pjacklam

Changes:

 * Add method is_finite().

 * In Math::BigInt and Math::BigFloat, remove warnings about deprecated usage,
   at least until we have removed this usage from the "bignum" distribution.
   These warnings were too annoying for some people.

Improvements:

 * Faster bnok() when the library (backend) does not support it.

 * In the Math::BigFloat method bpi(), use a precomputed list of digits when
   the accuracy is <= 1000. This speeds up the trigonometric functions
   considerably, when I will introduce range reduction in a later release. This
   makes the _atan_inv() method redundant, so remove it. Also, the _alen()
   library method is now only used in _log_int(), which is good, because it
   isn't clear from the docs and tests what it was supposed to do.

Fixes:

 * Fix bug in the Math::BigInt::Calc library method _digit(). It would
   sometimes return undef or an empty string when it should have returned zero.

 * Fix bug in the Math::BigInt::Calc library method _rsft(). It would sometimes
   return two output arguments.

 * Fix bug in the Math::BigInt::Calc library method _lsft(). When the number
   zero was shifted N places in base 10, the result was not zero, but an
   invalid object.

 * Fix bug in the Math::BigInt::Calc library methods _and(), _or(), and _xor().
   They always assigned zero to the first input argument (the invocand).

 * Improve the Math::BigInt::Calc library method _log_int() for the cases when
   the output is zero or one. Also simplify the code.

 * Simplify the code for the Math::BigInt::Calc library method _zeros().

 * Reformat Math::BigInt::Calc so it is easier to read, for me anyway.

 * Add file t/author-bnok-mbi.t

 * Add one test file for every method in the libraries, including
   t/Math/BigInt/Lib/TestUtil.pm with test utilities.

 * Clean up whitespace in all files in the distribution.

 * Better testing in t/author-bpi-mbf.t

 * The Math::BigInt::Calc library now always uses integers inside the objects,
   so there is no longer any need for all the "0 + ..." to convert strings to
   numbers, and the "int()" inside "length(int(...))" to determine the length
   of an array element. The only case that needs "0 + ..." now is the
   constructor _new(), whose input is a string.

   Note, however, that the Math::BigInt::FastCalc library method _new() still
   creates objects with leading zeros, so until that is fixed, we can't remove
   all the "0 + ..." etc. until Math::BigInt::FastCalc has been modified.

1.999724 2016-06-19 pjacklam

 * In Math/BigInt.pm and Math/BigFloat.pm, correct and improve to the
   documentation, e.g., reorder the methods so that methods that belogin
   together are grouped together.

 * In Math/BigInt.pm and Math/BigFloat.pm, refactor the code so that methods
   that belong together are grouped together. Also use consistent code
   formatting.

 * In Math/BigInt/Calc.pm, reformat the code.

1.999723 2016-06-09 pjacklam

 * Add Math::BigInt and Math::BigFloat methods bnstr(), bestr(), and bdstr(),
   as well as corresponding methods nparts(), eparts(), and dparts(). Also add
   test files bdstr-mbf.t, bdstr-mbi.t, bestr-mbf.t, bestr-mbi.t, bnstr-mbf.t,
   bnstr-mbi.t, bsstr-mbf.t, bsstr-mbi.t, dparts-mbf.t, dparts-mbi.t,
   eparts-mbf.t, eparts-mbi.t, nparts-mbf.t, nparts-mbi.t, sparts-mbf.t, and
   sparts-mbi.t.

 * Fix documentation errors.

1.999722 2016-04-26 pjacklam

 * Fix bug in bone() and binf() when used as a function. The error caused
   warnings about using an unitialized variable. This fix applies to both
   Math::BigInt and Math::BigFloat.

1.999721 2016-04-26 pjacklam

 * Prevent Math::BigFloat methods band(), bior(), bxor(), and bnot() from
   modifying unmodifiable objects.

1.999720 2016-04-26 pjacklam

 * Overloaded 'int' should not modify it's argument.

 * Better documentation of blsft() and brsft().

1.999719 2016-04-25 pjacklam

 * Revert the change to Math::BigFloat's blsft() and brsft() methods, which
   truncated the input (and output) to integers. However, now convert the base
   to an object only when the base isn't an object already. Also return NaN if
   any of the three operands is a NaN.

 * Change t/bigfltpm.inc to reflect the changes to blsft() and brsft(). Also,
   when a method should be tested, actually test that method, not the
   overloaded operator, which doesn't necessarily behave in the exact same
   manner as the method. This applies to the methods binc(), bdec(), bpow(),
   badd(), bsub(), bmul(), bdiv() in scalar context, brsft(), blsft(), and
   bmod().

 * The first output argument from objectify() is the class name, so use the
   variable name $class, not $self.

1.999718 2016-04-22 pjacklam

 * Improve documentation on large, unquoted input values to Math::BigInt.

 * Remove stuff from bitfltpm.inc that was placed into author-numify-mbf.t, but
   accidentally still present in bitfltpm.inc. Adjusted test counts as needed.

 * Fix file headers in author-bmod-bdiv-mbi.t and author-btmod-btdiv-mbi.t.

 * Add bnan(), binf(), and bsub() methods to Math::BigFloat. This is a step
   along the way to having Math::BigFloat no longer being a subclass of
   Math::BigInt.

 * Using bnan, binf(), bzero() and bone() as functions is deprecated. This is a
   step along the way to a pure object oriented design.

 * When bnan() and binf() are used as instance methods, they no longer delete
   the accuracy and precision instance variables.

 * Add test files from_bin-mbf.t, from_oct-mbf.t, and new-mbf.t.

 * Remove some code for Perl prior to 5.6. Such old versions are no longer
   support anyway.

 * Fix buggy handling of NaN in bcmp().

 * Add methods beq(), bne(), blt(), ble(), bgt(), and bge() to Math::BigInt and
   Math::BigFloat. These methods are called for the overloaded operators.

 * Add overloading of '==', '!=', '<', '<=', '>', to to Math::BigInt and
   Math::BigFloat and fix the broken overloading of '>='. These overloaded
   operators now behave like the equivalent core Perl operators.

 * Add test file author-relop-mbi-mbf.t for testing bcmp(), beq(), bne(),
   blt(), ble(), bgt(), and bge(), as well as the overloaded operators '==',
   '!=', '<', '<=', '>', and '>='.

 * 'int' now truncates a Math::BigFloat object to an integer without converting
   it to a Math::BigInt. When an object becomes a Math::BigInt, further
   computations with that object as invocand causes the arguments to be
   converted to Math::BigInt objects too, leading to unexpected results. This
   is confusing people. Unless downgrading is in effect, no Math::BigFloat
   object should become a Math::BigInt unless a Math::BigInt is explicitly
   requested.

 * For Math::BigFloat, modify bitwise operations brsft() and brsft(), and add
   band(), bior(), bxor(), and bnot(). These now handle floating point numbers
   the same way as core Perl does, i.e., truncate non-integers to integers
   before applying the bitwise operator. This change will also make Perl's
   behaviour more consistent whether 'use bignum' is in effect or not.

 * Add overloading of '~' (bitwise not). It just calls bnot(), which has been
   implemented for ages.

 * Fix error in POD for bone().

 * Take parts of the code in t/calling.t and move it into the new files
   t/calling-class-methods.t and t/calling-instance-methods.t.

 * Improve test descriptions in t/mbimbf.inc.

1.999717 2016-04-16 pjacklam

 * Using new() with an undefined argument no longer gives a warning. Explicit
   use of this is discouraged, but it is sometimes used by the modules
   themselves issuing warnings that is confusing to the end user. Just
   uncomment the code, since we plan to reintroduce this warning later.

 * Avoid using L<> around e-mail addressess in POD.

1.999716 2016-04-03 pjacklam

 * $x->new(...) can no longer be used to assign a value to $x. This was a
   mistake introduced in v1.999712. As the name "new" implies, it should always
   return a new object.

 * Using new() with no argument no longer gives a warning. This use has been
   discouraged, in favour of bzero(), for many years, but people are still
   using it, so I am reintroducing the support for this.

 * Added btdiv() and btmod() for truncated division (T-division) and ditto
   remainder. Add tests.

 * Add test files author-bmod-bdiv-mbi.t author-btmod-btdiv-mbi.t with more
   thorough testing of bdiv(), bmod(), btdiv(), and btmod().

 * When new() is used as an instance method, the new object is initialized as a
   copy of the invocand.

 * Move test for numfiy() of +Inf, -Inf, NaN, and big integers from
   bigfltpm.inc and bigintpm.inc into author-numify-mbi.t and
   author-numify-mbf.t.

 * Improved wording and fixed typos in earlier changelog entries.

1.999715 2016-01-05 pjacklam

 * Fix Math::BigFloat->bexp() based on patch by DANAJ (Dana Jacobsen).

 * Add Math::BigFloat->bexp() tests to "t/biglog.t" and new file
   "t/author-bexp-mbf.t".

 * Fix flawed test in test_bpow. It used ok($x, $y) rather than is($x, $y).

 * Add better descriptions (test names) to a few tests.

 * Wrap long line in the CHANGES file.

1.999714 2016-01-03 pjacklam

 * Add code to speed up Math::BigFloat->batan(). Thanks to DANAJ (Dana
   Jacobsen) for the patch.

 * Re-write Math::BigFloat->batan2() completely, except for the parts related
   to the rounding. The old version was sometimes correct, sometimes off by pi,
   and sometimes very inaccurate. Also add more tests.

 * Make it clearer in Math::BigFloat->bpi() when it is called as a method vs.
   as a function.

 * The Math::BigFloat->bpi() method can now be used as an instance method to
   assign pi to $x, as in $x->bpi().

 * Add tests for as_oct().

 * Minor simplifications in Math::BigInt->as_oct() and
   Math::BigInt::Calc::_as_oct().

1.999713 2015-12-31 pjacklam

 * Fix Math::BigInt->new(), which had a faulty handling in the shortcut for
   non-zero scalar integers with no non-zero exponent, like "12", "12.000",
   "12e3", and "12.000e4". Added tests for this in t/bigintpm.inc.

1.999712 2015-12-29 pjacklam

 * Fix bug in internal function _e_add() and _e_sub() which causes it to return
   "-0" in some cases.

 * Let new() be used for assignment. Now $x->new(3) assigns 3 to $x.

 * Improve code in new() for non-zero scalar integers with no exponent.

 * Allow both "inf" and "infinity". Allow a leading sign, and ignore letter
   case. This is to be consistent with core Perl.

 * Be more consistent about allowed whitespace in input. E.g., "23 " gave 23,
   but "inf " gave a NaN.

 * Core Perl allows both "0x" and "0X" as hexadecimal prefix, and both "0b" and
   "0B" as binary prefix, so we do too. Previously, only 0x and 0b were
   allowed.

 * Math::BigFloat now has its own from_bin() method which supports binary
   floating point numbers, e.g., "0b1.1001p-4". This complements from_hex().

 * Math::BigFloat now has its own from_oct() method which supports octal
   floating point numbers, e.g., "1.3267p-4". This complements from_hex().

 * The Math::BigInt and Math::BigFloat methods from_hex(), from_oct(), and
   from_bin() can now be used as instance methods to assign values to the
   invocand, e.g, $x->from_oct("10") assigns 8 to $x.

 * Update documentation. Perl now uses "Inf", not "inf" to represent infinity.

 * When the new() method is called with an undefined argument, the round
   parameters are now passed on to bzero(). This applies to both Math::BigInt
   and Math::BigFloat.

 * Replace "UNIVERSAL::isa($this, $that)" with "$this->isa($that)", and ditto
   for "can()", where possible. Not every instance of "UNIVERSAL::Isa()" has
   been replaced, though, since the change causes some tests to fail. This must
   be looked into.

 * Simplify the copy() methods. Always copy accuracy and precision parameters,
   even when they are undefined.

 * Reformat more of the code in accordancw with the "perlstyle" manual page.
   This makes the code a lot easier to read -- for me, anyway.

 * Use a more generic regex in t/calling.t, since the exact wording of the
   error message depends not on the Perl version, but on the module that does
   the version checking.

 * Avoid infinite loop in the Math::BigFloat->batan() method. Thanks to DANAJ
   (Dana Jacobsen) for the patch. This was not intended to be added before the
   next release, but was included in this release by accident.

1.999710 2015-11-12 pjacklam

 * New method Math::BigFloat -> from_hex() which supports hexadecimal floating
   point numbers, e.g., "0x1.999ap-4".

 * New test file t/from_hex-mbf.t for testing Math::BigFloat -> from_hex().

 * Add 'from_hex' and 'from_bin' to list of methods in the Math::BigInt POD.

1.999709 2015-11-06 pjacklam

 * Represent and return zero as 0E0, not 0E1. The old POD said "A zero is
   represented and returned as 0E1, not 0E0 (after Knuth)." I find no
   references to Knuth ever having said this. The closest reference I can find
   is that Knuth says 0**0 should be defined to be 1, not 0, but that is
   something else than 0e0, which is 0*10**0. I have yet to see any other
   mathematical software that represents and returns zero as 0e1 rather than
   0e0.

 * Required version of Test::More is 0.9301.

1.999708 2015-11-03 pjacklam

 * Use bxxx() method names consistently, rather than mixing bxxx() and fxxx()
   in code and test files. The fxxx() methods for Math::BigFloat objects are
   still available through autoloading. However, we leave the fround() method
   in Math::BigInt, as it seems to provide some kind of compatibility with
   Math::BigFloat.

 * Correct author information in the README file.

 * Remove INSTALL file, which by accident wasn't removed in v1.999707.

 * Use present tense, not past tense, in CHANGES file.

 * Add '#!perl' to Makefile.PL for correct syntax highlighting in editors
   supporting this.

 * Use Math::Complex::Inf() in testfiles also (for generating Perl scalar
   infinity) since it is more portable.

1.999707 2015-10-29 pjacklam

 * Add dependency on Math::Complex 1.39 for Math::Complex::Inf(), which is
   used for numifying infinity.

 * Update author information.

 * Update information in the file README.

 * Remove the files INSTALL and LICENSE as this information is already covered
   in the file README.

 * Enable 'use warnings' in all modules. We require a Perl newer than 5.6.0
   anyway.

 * Replace 'use vars ...' with 'our ...'. We require a Perl newer than 5.6.0
   anyway.

 * Avoid indirect object syntax in documentation.

 * Moved 'Test::More' from 'build_requires' to 'test_requires' in Makefile.PL.

1.999706 2015-10-28 pjacklam

 * Correct release date of v1.999705 in CHANGES.

 * Add code and tests for numify() on non-finite objects.

1.999705 2015-10-26 pjacklam

 * Avoid using "my" in a false conditional. See "Deprecated use of my() in
   false conditional" in perldiag(1).

 * Faster algorithm for bpi() when accuracy is >= 1000.

1.999704 2015-09-25 pjacklam

 * objectify() in lib/Math/BigInt.pm now uses 'isa' not 'eq' to check object
   relationship. This is necessary for correct handling of subclasses.

 * objectify() in lib/Math/BigInt.pm no longer expects as_int(), as_number()
   and as_float() to return objects, but allows them to return numbers
   formatted as strings. This is used by some other modules on CPAN.

 * Better documentation of as_int() and as_number() in lib/Math/BigInt.pm.

 * Add documentation for as_float() in lib/Math/BigFloat.pm

 * Add test files t/objectify_mbf.t and t/objectify_mbi.t.

1.999703 2015-09-21 pjacklam

 * Fix blog() in Math::BigInt and Math::BigFloat to work correctly regardless
   of the base.

 * Correct existing tests in bigintpm.inc and bigfltpm.inc.

 * Update test plans (number of tests) in t/bare_mbi.t, t/bigintpm.t, and
   t/sub_mbi.t.

 * Add test files t/blog-mbf.t and t/blog-mbi.t for better testing of the
   blog() methods.

1.999702 2015-09-17 pjacklam

 * The overloaded log() is a unary operator, so don't pass additional
   arguments.

 * Fix blog() so the cases $x->blog() and $x->blog(undef) work correctly. An
   undefined base means that blog() should use base e (Euler's number).

 * Both CORE::log() and other mathematical software returns inf for log(inf),
   so we do the same.

 * Add tests for log() as well as templates for future tests of the other
   overloadable functions.

 * Improve descriptions of a few tests.

1.999701 2015-09-11 pjacklam

 * The POD documentation, as well as the comments in the code, said that
   $x->bdiv($y) in list context should return quotient $q and remainder $r so
   that $x = $q * $y + $r, and that the remainder (modulo) $r should correspond
   to Perl's % operator as well as the bmod() method. This has not been the
   actual behaviour. This is now fixed. In scalar context, only the quotient is
   returned.

 * Clearer POD documentation for the bdiv() and bmod() methods.

 * All non-integer input values to Math::BigInt gave a NaN, except non-zero
   numbers in the range (-1,1) that were written without an exponent, e.g.,
   "-0.75" and "0.5". Now also these return a NaN.

 * Input values with a large (absolute value) negative exponent, e.g.,
   1e-9999999, now return NaN. The former behaviour was to die with the message
   "Quantifier in {,} bigger than 32766 in regex; marked by ..."

 * Intermediate computations in blog() increased the number of digits
   significantly in some cases. Now reduce the number of digits by rounding.
   However, keep some extra digits for remaining intermediate computations
   before the final rounding.

 * When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
   returned -0. Negative zero is never used by Math::Big(Int|Float), and care
   has been taken to avoid it, so this bug is surely an oversight.

 * Explicitly specify the backend (lib => 'Calc') in t/mbimbf.t for easier
   release management of the backend distributions.

 * Add "use warnings" to test scripts, since Perl 5.6.2 is required anyway, and
   "use warnings" was introduced in Perl 5.6.1.

 * Modified test scripts so the difference between the test files in the
   Math-BigInt distribution and the backend distributions are as few and as
   small as possible. This makes for easier release management.

1.9997 2015-08-12 pjacklam

 CHANGES
  * Add recent changes.
 t/bigintpm.inc
  * Correct spelling errors.
 t/upgrade.inc
  * Correct spelling errors.

1.9996 2015-08-12 pjacklam

 CHANGES
  * Add recent changes.
  * Use present tense in change descriptions.
 lib/Math/BigInt.pm
  * Change incorrect use of ok() to is() in example.

1.9995 2015-08-11 pjacklam

 CHANGES
  * Move changes that were incorrectly reported as being for the release 1.9994
    when they were in fact for release 1.9993.
  * Add changes both for release 1.9994 and 1.9995.
 lib/Math/BigInt.pm
  * Break lines to avoid lines with more than 80 characters.
  * Improve objectify() for better handling of subclasses.

1.9994 2015-08-10 pjacklam

 CHANGES
  * Add recent changes.
 lib/Math/BigFloat.pm
  * Fix blog() which sometimes returns incorrect result.
  * bdiv() in list context now returns the integer quotient and the remainder.
 t/bigfltpm.inc
  * Modify tests for blog() in list context.
 t/biglog.t
  * Change incorrect use of ok() to is().
 t/upgrade.inc
  * Modify tests for blog() in list context.
 inc/Module/Install*
  * Upgrade bundled Module::Install from version 1.08 to version 1.16.

1.9993 2014-04-03 pjacklam

 BUGS
  * Add reference to CPAN RT for the Math-BigInt distro.
 CHANGES
  * Add recent changes.
 examples/hailstone.pl
  * Remove this file as it doesn't seem to be working.
 lib/Math/BigFloat.pm
  * Correct spelling errors.
  * Reformat code to avoid long lines.
  * Improve POD formatting.
  * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
  * Add the bint() method.
 lib/Math/BigInt.pm
  * Correct spelling errors.
  * Reformat code to avoid long lines.
  * Improve POD formatting.
  * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
  * Add the bint() method.
  * Remove references to the obsolete Math::Big
 lib/Math/BigInt/Calc.pm
  * Correct spelling errors.
  * Added meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
 lib/Math/BigInt/CalcEmu.pm
  * Correct spelling errors.
  * Improve POD formatting.
  * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
  * Remove references to Math::BigInt::BitVect, which is no longer on CPAN.
 Makefile.PL
  * Remove code that checks for compatible versions of distributions that
    depend on Math-BigInt. Such checking should be done in the distributions
    that depend on Math-BigInt, not in Math-BigInt itself.
 NEW
  * This file now only refers to the change log.
 t/bigfltpm.inc
  * Add tests for fint().
 t/bigintpm.inc
  * Add tests for int().
 t/upgrade.inc
  * Add tests for int().
 t/*.t
  * Increment test counts as needed for the new tests in the t/*.inc files.
 inc/Module/Install*
  * Upgrade bundled Module::Install from version 1.01 to version 1.08.

1.9997_11 2012-12-10 pjacklam

This release introduces no changes in the library code, i.e., the .pm files in
the 'lib' directory, but there are a lot of changes in the test files. Since
there are so many changes, I let this be a development release.

 * Add 'use strict;' and 'use warnings;' to all test files.

 * Reformat code in the test files according to the "perlstyle" manual page.
   This makes the code a lot easier to read -- for me, anyway.

 * Decrement required version of Perl from v5.6.2 to v5.6.1. All tests pass
   when running the test suite with Perl 5.6.1 on Cygwin.

 * Replace "use vars ..." with "our ..." in test files.

 * Replace "BEGIN { unshift @INC, 't'; }" with "use lib 't';" in test files.

 * Use "our $x; $x = ...;" rather than "our $x = ...;" since the latter causes
   Perl 5.6.1 to complain about variables only used once.

 * Add comment to all tests. Now the tests no longer says just "ok 123", but
   rather "ok 123 - $x->blog(2)" etc. This makes it easier to identify failed
   tests, especially in the smoke testing reports.

 * Fix various flawed tests, e.g., ok($x, 2) was used testing whether $x was 2.

 * Use the skip() feature of Test::More for skipping tests.

 * Use more descriptive variable names in test files.

 * Remove unused variables in test files.

 * Move variable declarations to limit their scope in test files.

 * Remove trailing whitespace in test files.

 * Wrap (most) lines to fit 80 columns in test files.

1.997 2011-09-04 pjacklam

 * Document actual behaviour of from_xxx() methods. [perl #85334] (Peter John
   Acklam)
 * Make bmuladd() able to handle third arg properly. [perl #85482] (Peter John
   Acklam)
 * Add sign function bsgn() as a complement to babs(). (Peter John Acklam)
 * Fix objectify()'s handling of "foreign objects". (RT #16221 and #52124)
   (Peter John Acklam)
 * Rewrap some verbatim pod in Math::BigInt. (Father Chrysostomos)
 * Correct links to sections. (Alexandr Ciornii)
 * Remove incorrect formatting inside verbatim paragraphs. (Alexandr Ciornii)
 * Upgrade bundled modules in "inc" to latest version. (Peter John Acklam)
 * Include "^MYMETA\.(yml|json)\z" in MANIFEST.SKIP. Whereas META.* are
   generated by the distribution author at packaging time, MYMETA.* are
   generated by the end user at configure time after any dynamic dependencies
   are known. (Peter John Acklam)

1.993 2011-02-26 pjacklam

 * Change default backend library from Math::BigInt::FastCalc to
   Math::BigInt::Calc, which is included in the Math-BigInt distro. This
   avoids recursive distribution dependency (RT #65976) (Peter John Acklam).

1.992 2011-02-18 pjacklam

 * Math::BigInt::Calc->_nok(): Use symmetry property nok(n,k) = nok(n,n-k) to
   speed up execution when k is large. Also general code cleanup. (Peter John
   Acklam).
 * Math::BigInt::Calc->_gcd(): Speed up by reducing amount of data copying
   (Peter John Acklam).
 * Add '01load.t' for basic module loading and diagnostics useful for
   debugging. Rename '00-signature.t' to '00sig.t', 'pod.t' to '02pod.t', and
   'pod_cov.t' to '03podcov.t' (Peter John Acklam).
 * Math::BigInt:: Make from_hex(), from_oct(), and behave more like hex() and
   oct() in the Perl core, and make from_bin() consistent with from_hex() and
   from_oct() (this is related to RT #58954) (Peter John Acklam).
 * Math::BigInt::Calc->_rem(): Modify first input arg always, not just
   sometimes (Peter John Acklam).
 * Math::BigInt::Calc->_modinv(): be more consistent with the _modinv() method
   in other libraries (Math::BigInt::GMP, etc.) (Peter John Acklam)
 * Math::BigInt::Calc->_nok(): use symmetry property nok(n,k) = nok(n,n-k).
   This cuts computation time tremendously when n and k are large (Peter John
   Acklam).
 * Math::BigInt::Calc->_gcd(): quickly handle zero cases, avoid code
   duplication, and always modify the first input argument in-place (Peter John
   Acklam).
 * Clean up code and add more code comments (Peter John Acklam).
 * Fix typos (Peter John Acklam).

1.991 2011-02-05 pjacklam

 * Add workaround for library inconsistencies (Math::BigInt::Calc vs.
   Math::BigInt::GMP). This makes older versions of Math::BigInt::GMP
   work with latest version of Math::BigInt (Peter John Acklam).
 * Correct and extend API documentation (Peter John Acklam).

1.99_05 2011-01-29 pjacklam

 * Fix typos (reminder -> remainder etc.) (Peter John Acklam)
 * Fix Math::BigInt::Calc::_num returning NaN, not Inf, when it overflowed
   (Peter John Acklam) (Closes: RT #25274).
 * Fix Math::BigFloat->bcmp() so it can handle arbitrarily large exponents
   (Peter John Acklam) (Closes: RT #62764).
 * Fix bmodpow() in Math::BigInt 1.99 mis-calculating powers of one
   (Peter John Acklam) (Closes: RT #63237).
 * Fix bmodpow() and bmodinv() in Math::BigInt to handle negative input
   (Peter John Acklam) (Closes: RT #61543)
 * Clean up whitespace (Nicholas Clark).
 * Added file t/00-signature.t for testing SIGNATURE (Peter John Acklam).

Complete version history of the rewrite project
===============================================

If you just want to see which things are new and different from the original
Math::* in the Perl core, see HISTORY.

##############################################################################
Math::BigInt::Calc:

0.52 2007-09-16 Tels

 * fix 64bit ints on Perl v5.8.0 (thanx zefram)

0.51 2007-05-30 Tels

 * use CORE::hex() instead of hex() to help bigint/bignum/bigrat
 * use 9 digit parts on 64bit integer or long double systems

0.50 2007-05-05 Tels

 * speed up _mul() by "use integer;"
 * we do not need to remove zeros after mul()
 * implement an alternative algorithm for _fac()

0.49 2007-04-16 Tels

 * API version 2.0 support: add _1ex(), _alen()
 * make _fac() about twice as fast

0.48 2007-01-27 Tels

 * support for octal numbers

0.47 2005-05-17 Tels

 * remove shortcut in div(), it wasn't working properly

0.46 2005-03-29 Tels

 * avoid crash in FastCalc by making $BASE and $BASE_LEN use vars qw//;

0.45 2005-03-20 Tels

 * fix the div() shortcut for short numbers to actually work

0.44 2005-01-01 Tels

 * small cleanups
 * shortcut for numbers of same length in _div, where X > Y

0.42 2004-10-10 Tels

 * fix critical bug in _from_hex() with parts that were to big for one part
   (introduced in v1.72, thanx Mark Lakata for finding it!)

0.41 2004-07-30 Tels

 * from_hex() convert 28 bits (vs 16) at a time, faster (helps from_bin(), too)
 * potential bug in padding with '0' in _digit()
 * fixed undef warnings in fceil(0.222222222222...) (thanx kenny!)
 * removed the unused integer-detection code and combined the two BEGIN blocks

0.40 2004-03-12 Tels

 * added: api_version(), _ten(), _two(), _is_ten(), _is_two(), _gcd()
 * streamlined: is_foo() methods
 * _new() takes scalar, not scalar ref
 * _str() returns scalar, not scalar ref
 * _and(): bugfix for [perl #26559]: negative arguments that are shorter
    than the positive one caused an error due to cutting instead padding
 * _ior(): forgot to calculate the proper sing of result, making, for
    instance, 30 | -4 go wrong

0.39 2004-01-25 Tels (not released)

 * _zeros(0) is 0, not 1

0.38 2003-12-30 Tels

 * guess _log_int() result based on $base if $base < $BASE
 * _pow() handle cases 0 ** Y, 1 ** Y, X ** 0 and X ** 1
 * _new(): shortcut for short numbers, makes MBI->new() about 20% faster
 * _root() was wrong for numbers like 9 (0b1001) because they start with
   the pattern /^0b1(0+)/ (missing '$' in regexp) and after fixing this
   it was dead slow for large numbers.

0.37 2003-12-11 Tels

 * implemented _log_int() with a simple and fast "iterative" method
 * fixed bug in _root(): int() rounds sometimes wrong, so use sprintf()
 * _as_bin() and _as_hex() are faster (for small values) due to inlining
   is_zero()
 * _acmp() is about 26% faster for very small numbers or numbers that
   differ in length, and slightly faster for bigger numbers. This helps
   both bacmp() and bcmp()
 * _fac() did:
   + not modify $x in place for small arguments
   + something strange for large arguments
   + not handle 0..2 optimal (code now simplified)
 * _as_bin() used %b, which was not known to v5.5.3 - workaround that
 * implemented _log_int(), which is simple and very fast
 * implemented the missing pieces for _root() (which is quite fast)

0.36 2003-08-31 Tels

 * fixed a bug in div_use_div() that computed remainder wrong if X == X and
   X was very large
 * fixed a off-by-one error discovered with mbi_rand.t in _div_use_XXX()
   (one internal in $x overflowed, thus the wrong computation)

0.35 2003-07-06 Tels

 * fixed a bug in _floor() which caused ffloor(0.1234567) to fail.
   (Thanx to cpan@ali.as for finding it and sending a fix/testcases)
 * make _as_hex() and _as_bin() handle 0, and make them faster for very
   short numbers (less than BASE_LEN digits)

0.34 2002-09-27 Tels

 * fixed bug in mul_use_div() shortcut that used * $RBASE instead of / $MBASE
 * $caught & 1 != 0 vs ($caught & 1) != 0 (changed to $caught != 2)
 * $i %= $MBASE does not work on ARM (v5.003), so make it $i -= $car * $MBASE
 * removed unused LEN_CONVERT code (smaller memory footprint)

0.33 2002-09-09 Tels

 * _fac() keep $n as scalar if possible
 * test for when to USE_MUL or not was inverted
 * _mul() is about 6 times faster if $y is small and $x is big

0.32 2002-08-21 Tels

 * fixed bug in _rsft() that did not set result to 0 in some cases
 * _modinv() now works, thanx to the all-positive algorithm
 * much more tests in bigintc.t (taken over from FastCalc)

0.31 2002-08-13 Tels

 * _acmp() no longer calls _len() => tad faster
 * some cleanup of old code, added some more comments

0.30 2002-06-10 Tels

 * undef mul/div in case Calc.pm get's loaded twice
 * fix in _as_hex() and _as_bin() for older Perls
 * speedups in _pow() and _modpow()

0.29 2002-06-09 Tels

 * filled in _modpow()

0.28 2002-05-30 Tels

 * added _modinv(), _modpow() (not yet implemented)

0.26 2002-03-17 Tels

 * a fix in _rsft() that left empty array instead of (0)
 * a fix in _sub(): early out made -1 + 100000000001 == 0 (if length($y) > 8)

0.25 2002-03-03 Tels

 * started _square() (not done yet)

0.24 2002-02-27 Tels

 * streamlined _mod() shortcuts
 * _div() has shortcut if $y is very small

0.23 2002-02-24 Tels

 * from_bin() repack input and use from_hex(): twice as fast

0.22 2002-02-10 Tels

 * _sqrt1() => _sqrt() (oups)
 * much better guess for _sqrt() resulting in faster sqrt
 * added _fac()

0.20 2002-01-07 Tels

 * better detection of higher-int-only base (but disabled due to failures)
 * streamlined converting
 * turned dual-basis off by default (now 7-7 on 32 bit and 9-9 on most 64 it)
 * _str() uses int() on first part to avoid '0000' instead of '0'

0.19 2001-12-23 Tels

 * first working version of using two different bases: one for mul/div, the
   other for all other ops, including converting via _to_large()/_to_small()

0.18 2001-12-20 Tels

 * added _as_hex() and _as_bin() with 16 bit chunks
 * from_bin() now uses oct() and 16 bits per iteration
 * removed needless return statements

0.17 2001-12-06 Tels

 * added _sqrt() for more speed
 * _sqrt() shortcut for small (< $BASE) numbers for better performance
 * shortcut in _mul for small numbers (< $BASE_LEN2)
 * added _and, _or, and _xor and let them use more than 16 bits
 * find out how many bits _and, _or and _xor can safely use (cap at 23)
 * div() might leave empty array, so __strip_zeros fixes these
 * streamlined _acmp()
 * cap of 5 for BASE for UTS and UNICOS/Cray
 * better test to find out what BASE should be (use +0.0 to force floats)

0.16 2001-11-19 Tels

 * fixed comments a bit
 * finished _mod() when $y < $BASE and $BASE % $y != 0 and $BASE % $y != 1
 * streamlined _mod() loops a bit
 * added _pow() for faster bpow()
 * small fix to make 5.005_03 happy ($x = shift @prod vs $x = shift @prod || 0)

0.15 2001-11-11 Tels

 * added _dec() and _inc() for much faster $x++ and $x--

0.14 2001-11-04 Tels

 * added _mod() for faster $x % $y

0.13 2001-10-23 Tels

 * better detection of BASELEN by matching against expected pattern

0.12 2001-10-03 Tels

 * _div: 99999 => $BASE-1 ($MAX_VAL), that made some div's fail if $BASE != 5

0.11 2001-09-07 Tels

 * automatically USE_MUL or USE_DIV

0.10 2001-08-24 Tels

 * no longer export anything, ignore import calls

0.09 2001-07-20 Tels

 * don't use warnings for older Perls

0.08 2001-07-15 Tels

 * fixed bug in mul() shortcut

0.07 2001-07-15 Tels

 * applied Philip Newtons spelling and doc patch(s)
 * accidentally had the old, slow mul() code in. Oups.
 * fixed also a bug in that new code
 * also the speedup in mul() occurs with $x having lots of zeros, not $y.
 * first argument is always classname, so removed checks and shift
 * shift in base ten by _lsft() and _rsft()

0.06 2001-07-09 Tels

 * first release

##############################################################################
Math::BigInt::CalcEmu:

0.04 2004-03-12 Tels

 * removed unnec. emulation routines (all except _signed_foo)

0.03 2004-01-13 Tels

 * $VERSION was overriding the $VERSION from MBI (Thanx Gisle Aas!)

0.02 2003-12-30 Tels

 * the code in Calc::_root() uses now sprintf(), but the one in Emu was not

0.01 2003-12-26 Tels

 * first version, taken over all the code from BigInt

##############################################################################
Math::BigInt::Scalar:

0.11 2002-01-07 Tels

 * fixed version
 * added DESCRIPTION section to stop pod2man complaining
 * added _dec, _inc

0.10 2001-08-24 Tels

 * no longer export anything, ignore import calls

0.06 2001-07-20 Tels

 * don't use warnings for older Perls

0.05 2001-07-15 Tels

 * first argument is always classname, so removed checks and shift

0.04 2001-07-09 Tels

 * first release

##############################################################################
Math::BigFloat:

1.60 2008-04-20 Tels

 * fix #34459: bsqrt() breaks on floats with enough digits (Thanx Niko Tyni!)
 * fix #35238: batan2() handles inf/+inf wrong
 * fix #35162: MBI segfault (as_number(Math::BigRat()) was wrong)

1.58 2007-06-30 Tels

 * remove Exporer from @ISA
 * support config('lib') as shortcut for config()->{lib}
 * add bpi(), bcos(), bsin(), batan(), batan2() methods
 * add bmuladd()
 * streamline the is_xxx() and copy() methods

1.57 2007-05-05 Tels

 * add bnok() method (n over k)
 * add all the missing modify() hooks

1.55 2007-04-16 Tels

 * make bexp() much faster (esp. under GMP) by caching the first coefficients
   and rewriting the inner loop
 * support "try" and "only" in import()

1.54 2007-04-09 Tels

 * fix bug #21747: Re: weirdity in bignum... (powers and high precision):
   infinite loops for blog() (and consequently bpow()) if you requested
   an accuracy greater than 67 digits (uses _log() now, and not blog())
   Thanx to darconc!
 * cache the result of _log(2) and _log(10) so that subsequent calculations
   can re-use the already done work
 * instead of computing _log(10), compute _log(1.25) and _log(2) and then do:
    _log(1.25 * 2 * 2 * 2) = _log(1.25) + _log(2) + _log(2) + _log(2)
   This makes computing _log(10) much faster, so that computing blog(N) is
   about a factor of 5 faster when N >= 10 or N <= 0.1
 * add bexp()

1.53 2007-03-04 Tels

 * fix #25144: [PATCH] Math::BigFloat->new considers any reference a BigInt
   (Thanx mschwern!)
 * fix bug #13866: NaN (in bignum queue)
 * fix bug #21586: Incorrect result when comparing with NaN
 * fix bug #15896: "==" overloading is broken for "NaN"

1.52 2007-01-27 Tels

 * fix brsft() and bpow() in list context only return on number (bug #21413)
 * make as_int() return a BigInt, too (not just as_number()) (bug #21412)
 * add as_oct()
 * bpow(): handle negative X and negative Y (instead of returning NaN)

1.51 2005-04-10 Tels

 * fix new() to work with Math::BigInt::Pari

1.50 2005-03-29 Tels

 * fix rounding doc, add notes about prevision vs. accuracy
 * set FastCalc as default (we still use whatever MBI uses)

1.49 2005-03-20 Tels

 * remove dependecy on Scalar::Util in bdiv()
 * bdiv() cache result of "!$y->is_one()" for wantarray case to make
   ($res,$rem) = $x->bdiv($y); about 10% faster

1.48 2005-01-01 Tels

 * use new interface to _scale_a() and _scale_p() in BigInt
 * add bneg() and inline is_zero() in it, making it 1.6 times faster
 * replace ref($_[0]) w/ undef when it isn't actually needed. This
   makes some ops (bsstr(), bneg etc) about 2% faster for small numbers
 * use MBI::_register_callback() to get notified of lib changes
 * bgcd()/blcm() never worked, so fix them for integers and add tests

1.47 2004-10-10 Tels

 * inf/NaN fixes for bpow()
 * eliminate the need for _zeros() in new() (speed-up for GMP et. al.)
 * eliminate _is_zero() in new() (small speed up)
 * added shortcut for simple numbers in new() (speed up)

1.46 2004-08-13 Tels

 * blog(10,10) ($x == $y) returned '1.0000...' instead of '1'

1.45 2004-07-30 Tels

 * simple inherit bsub() from BigInt, also fixes bsub() failing under
   $x -= $x - Thanx Peter J. Acklam!
 * bdiv() failed when passed a variable twice (thanx Peter J. Acklam!)
 * bfround() and bround() are about 10% faster when going via Math::BigInt's
   bround() due to constructing a fake BigInt instead of going via ->new()
 * fixed undef warnings in bpow(0,$y) ($y non-integer) (thanx kenny!)

1.44 2004-03-12 Tels

 * bpow() computed -X ** Y wrong for Y that are odd
 * use $HALF instead of 0.5 to speed up broot()
 * use Calc instead of BigInt for parts, that makes it roughly 2x faster
   it also saves memory (419 vs. 767 bytes per (small number) object)
 * bmod() did needlessly test for NaN arguments twice

1.43 2004-01-13 Tels

 * small fixes in AUTOLOAD
 * delete $x->{_a} vs. $x->{_a} = undef to save memory

1.42 2003-12-30 Tels

 * ffac(inf) is inf, not NaN
 * flog() calculate integer result first, and if it fits, return it
   this makes it much faster in case the result is a perfect integer
 * require (instead of use) Exporter
 * froot() calculates an integer result first, and it if fits, returns it

1.41 2003-12-11 Tels

 * flog(): 0.5, 0.25, 0.125, 2, 4 and 8 were not scaled properly back to
   1, instead they remained 0.5 and 2, respectively. This was a '<' vs.
   '>=' respective '<' vs. '<=' issue. No other values are affected
   (neither getting slower nor faster), but the ones in question (incl.
   their multiples like 20, 80, 0.0125 etc) are now tremendously faster -
   about a factor of 30 to 60! :-)
 * removed some crufty logic from _log_10() and made the special cases of
   2, 10 and 0.1 slightly faster. This also helps log($x,2) and log($x,10).
 * bfac() slightly faster for small arguments
 * downgrading to bigint failed for .2e2 (produced 200 vs. 20)

1.40 2003-09-23 Tels

 * bstr(): removed unnec. BigInt math and inlined is_zero() => great speedup
   (10% to factor 6.5 depending on input)
 * replace $self->_one() by $self->bone()

1.39 2003-07-06 Tels

 * $x->blog($base) can handle a $base which is a Math::Bigint
 * replace die() with Carp::croak

1.39 2002-11-03 Tels

 * $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0) were still not doing
    the right thing and no tests caught it *sigh*
 * blog():
   + MUCH faster when $x > 10 or $x < 0.1 (constant time vs.
     time * 10 when doubling/halving $x)
   + also much faster if $x has many digits (like 1/3 or 123**123)
   + for $x < 1 and $x > 0 did not work at all (bacmp vs bcmp)
   + returns now NaN if $base <= 0 or $base == 1
   + does handle other bases than "undef" (aka e) properly now
 * require Math::BigFloat did not work (opposed to BigInt, where it does)
 * _pow() suffered the same bug of bacmp vs bcmp (so 0.2 ** 0.2 failed)
 * removed unused _pow2() routine
 * _find_round_parameters() returns ($x,$a,$p,$r) and not ($a,$p,$r), so
   use it correctly, and also test for $x = NaN afterwards
  (happens when $a and $p were set and thus $x became NaN)
 * bsqrt() failed since v1.63 for values like 0.2, 0.002, 0.00134 etc
 * added broot() method (albeit slow for now)
 * $x->is_one('-') was broken (never returned true for $x == -1)
 * config() can take arguments and set them, croak on wrong ones
 * config(trap_nan => 1) to manipulate former $NaNOK variable
 * config(trap_inf => 1), too
 * trap_nan/trap_inf really croak on any attempt to create an NaN/inf
 * spellings of Bigint => BigInt
 * simplify config() by using SUPER::config()

1.38 2002-09-08 Tels

 * fix that bsqrt() would hang for certain inputs. Instead of using Newton's,
   we now rely on the fact that sqrt(x*y) = sqrt(x) * sqrt(y) by setting y to
   100. This removes the while loop entirely and makes it much faster while
   fixing the bug at the same time.
 * $x->bsqrt(0) did needless warn about undef values, and round to 4 digits
   instead of beeing equivalent to $x->bsqrt(undef)
 * ditto for $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0)
 * use File::Spec was needless, since it was required later on again

1.37 2002-08-20 Tels

 * bcmp()/bacmp() upgrade now if requested

1.36 2002-08-13 Tels

 * as_hex() and as_bin() work now at least for inf, NaN and integers
 * fixed bsstr() (and thus also numify()) for negative numbers - Ouch!
 * $x->new("0.02"); $x->accuracy($a); $x->bdiv($y,$d) failed to round
   when $d > $a
 * numify() returned '+inf' instead of 'inf'
 * (more) tests for bsstr(), numify(), as_hex(), as_bin

1.35 2002-07-07 Tels

 * bfround() used accidentally BigInt math; is now about 5.6 times faster for
   small numbers
 * bdiv()/badd() etc skip objectify() if possible and are thus faster
 * doc for accuracy()/precision()
 * $x->bmod() was not modifying $x in place when returning NaN/inf/-inf
 * avoid unec. calls to objectify() for binary op's

1.34 2002-06-10 Tels

 * upgrade used badd() instead of bmul() inside bmul() (again! arg!)

1.33 2002-06-09 Tels

 * import() fixed for older Perls

1.32 2002-05-19 Tels

 * upgrade used badd() instead of bmul() inside bmul()
 * bpow() now uses slower, but more correct way for fractions (this needs work)

1.31 2002-03-03 Tels

 * bpow() can handle second arguments beeing non-integer (f.i. 2 ** 0.2)
 * $x->bpow(0.5) optimized to $x->bsqrt();

1.30 2002-02-25 Tels

 * bug in bsub() with not rounding when $x->bsub(0) was also in MBF
 * bcmp() and bacmp() 5 times faster due to numify() (might have now impose a
   limit on exponent - but I couldn't find a test that breaks it)
 * streamlined ffloor() and fceil()
 * fixed bug in $x->bsub(0) and $x->badd(0) (both forgot to round result)
 * new() downgrade integers if $downgrade is in effect
 * optimized fpow() (one is_zero() less)
 * optimized as_number (nearly twice as fast)
 * $x->badd(0) forgot to round $x
 * downgrade and upgrade are valid methods for inheritance

1.29 2002-02-24 Tels

 * overload for 'log' now inherited by BigInt
 * _binf(), _bnan(), _bone() and _bzero() instead of longer bone() etc
 * inf/NaN fixes from v1.51 were missing for BigFloat
 * bdiv() upgrades if applicable

1.28 2002-02-16 Tels

 * fixed use Math::BigFloat ':constant';
 * fixed flog() function to calc right result, honour rounding-globals

1.27 2002-02-10 Tels (forgot to increase version)

 * ffac()
 * various: disable Math::BigInt::upgrade to avoid deep recursion

1.27 2002-01-06 Tels

 * overload for log() and flog()/blog()
 * bzero()/bone() handling of A & P was broken
 * bround()/bfround() handling of zeros forgot to set A & P
 * fdiv: fixed a bug in round to A with given round_mode (always used global)
 * fsqrt(): would hang/fail if either $x's or global A or P were set
 * fsqrt() didn't modify $x sometimes, but returned a new reference
 * fsqrt(): calc 4 more digits for rounding, not 1 (endless looping otherwise)
 * fmod() now actually works

1.26 2001-12-06 Tels

 * fneg() failed (now hand up to MBI)
 * frsft() and flsft() were no aliases to brsft() and blsft()
 * fone() was no alias for bone()
 * blsft() and brsft() were missing altogether
 * streamlined: fpow() and fmul()
 * removed the EXPORT_OK
 * fqsrt() uses now BigInt::bsqrt() as guess: greatly improved performance
 * make fsqrt() subclass proof by using $self instead of Math::BigFloat
 * bzero(), bone(): take additional A and P and store 'em
 * bnan(), binf(): clear A and P

1.25 2001-11-18 Tels

 * streamlining fixes in new() were missing
 * further streamlining in new() for 12345e1234 cases (fraction part empty)
 * added $rnd_mode support for compatibility
 * replaced the 'laber schwad blah blah' pod section by a pointer to MBI

1.24 2001-11-11 Tels

 * bacmp() fix for +-inf
 * streamlined new()
 * faster finc()/fdec()

1.23 2001-10-05 Tels

 * fixed facmp() (was broken the same way as fcmp())
 * more rounding fixes from John P.

1.22 2001-10-03 Tels

 * Quite a lot of rounding fixes
 * $x->bnorm() is 4 times faster if $x == 0
 * $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op)
 * added as_number()

1.21 2001-09-03 Tels

 * serious bug in bcmp() caused 1.5 to be greater than 2. Yikes!
 * bcmp() did not only return -1,0,1 and undef but other values, too
 * new('inf') produced NaN (was expecting '+inf')
 * exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN
 * include finf in AUTOLOAD list

1.20 2001-08-03 Tels

 * streamlined bcmp
 * drop leading '+' for inf

1.19 2001-08-02 Tels

 * 123/+-inf => 0, test for that and -1,0 / NaN => NaN
 * +123 / 0 => +inf, -123 / 0 => -inf (was missing in MBF)
 * fixed +-inf handling in bacmp/bcmp/bsub/badd/bdiv and tests for that
 * padd bstr() output of numbers with set A or P
 * remove bfloat() (Math::BigInt->bfloat() did not work, anyway, see bint())

1.17 2001-07-15 Tels

 * applied Philip Newtons spelling and doc patch(s)
 * added bone()
 * tests for bnan() and bone()

1.16 2001-07-09 Tels

 * is_positive(), is_negative()
 * various pod fixes (overlong =item, spelling erorrs etc)
 * removed internal _set() and the tests for it
 * infinity support for fcmp(), fpow()
 * nailed the bug in fdiv() that caused fsqrt() to fail. fsqr() works now, too.
 * more tests

1.15 2001-06-15 Tels

 * added bfloor(), bceil()

1.14 2001-06-13 Tels

 * accuracy/precision rounding after fdiv() was missing
 * binary integer input (0b01110 etc)
 * A/P rounding after fdiv() was missing
 * '-0x0' would wrongly leave '-0'
 * as_number() was wrong for negative numbers and had no tests
 * added is_even(), is_odd(), _set(), the inherited ones were broken
 * fixed is_zero() for NaN
 * $x->bpow($y) for negative $y was unfinished
 * added is_inf(), binf() and some support for +-inf in new(), bsstr() etc
 * added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr()

1.13 2001-06-09 Tels:
 * adjusted fdiv() so that it now works proper with old testcases
 * (except a few nits, see testsuite and ACCURACY)
 * fdiv() in listmode (uses non-working fmod())
 * fixed/test A/P after each op
 * $x->accuracy(), $x->precision() actually round $x to the value A/P
 * fixed fpow(), added tests for it
 * hexadecimal integer input (0xdeadbeef)
 * is_one() for -1 was wrongly true, tests for is_one()

1.12 2001-05-11 Tels
 * taken over testsuite from John P.
 * added tests for compare with fraction
 * fixed fcmp/fround/ffround
 * added accuracy/precision/fallback/round_mode
 * bsstr('NaN') returned 'NaNeNaN'

1.11 2001-05-09

 * bug bcmp() (1e-08 was < 0, aka fractions were broken)

1.10 2001-05-07

 * Tom's round fixes (minus one nit)
 * new: .xxx, -.xxx, +.xxx etc are valid inputs, while '.', 'x x x' and 'Exxx'
   are now invalid
 * finally got rid of C&P of overload section and clone()

1.09 2001-04-23

 * length() in list context return length of mantissa & exponent
 * bug in bstr() for '0.x' style strings
 * added bsqrt()
 * workaround for Perl v5.6.0 overload-bool bug (via MBI)
 * fixed rounding

1.08 2001-04-18

 * exponent(), mantissa() and parts() now return BigInt's
 * bnorm: 0Ey => 0E1 (was wrongly 0E0)
 * fixed is_zero()
 * added bround() and bfround() (only truncate mode)
 * fixed bug in bstr() for 1.203E-2 style numbers (Thanx Tom!)

1.07 2001-04-07

 * bug in bstr() for 0.xxx style numbers, as well as for "-xxx"
 * babs(), bneg(), bint() work now
 * empty stubs for bsqrt(), bround() and bmod()
 * exponent(), mantissa(), parts() work now as expected

1.06 2001-04-05

 * bstr() returns NaN for NaN's
 * renamed _norm to bnorm, added it to AUTOLOAD for compatibility
 * fixed bug Math::BigFloat->new(Math::BigInt->new(3));
 * bug mul/div when second arg was BigInt
 * bdiv() works now with precision
 * precision()
 * doc about mixing different objects in overloaded math

1.05 2001-03-31

 * fixed bstr() and bsstr()
 * added AUTOLOAD for fxxx() to work as well as bxxx()
 * enhanced and fixed testsuite for mul/cmp/add/new

1.04 2001-03-27

 * bmul/bdiv/cmp work now, better _norm()

1.03 2001-03-06

 * layed more foundations (mul() etc)

1.02 2001-02-24

 * add()/sub() should work now

1.01 2001-02-22

 * new() and bstr() work now (sort of)

1.00 2001-02-18

 * started work

##############################################################################
Math::BigInt:

1.99 2010-11-15 rafl

 * Stop as_int/as_number from losing precision (Peter John Acklam)
   (Closes: RT#43694)
 * Fix Math::BigInt::Calc::_modpow for (0 ** $x) % $y, with $x > 0
   (Peter John Acklam) (Closes: RT#62918).
 * Stop $x -> bmodpow(1, 1) from failing when $x is large (Peter John Acklam)
   (Closes: RT#62949).

1.98 2010-11-08 rafl

 * Fix from_bin() documentation error (Peter John Acklam) (Closes: RT#61845).
 * Make as_int($inf) return inf, not NaN (Peter John Acklam) (Closes RT#62101).
 * Fix various typos in documentation and tests (Peter John Acklam)
   (Closes RT#62643).
 * Make digit($n) return 0 for "out of range"-digits (Peter John Acklam)
   (Closes RT#61812).

1.97 2010-11-07 rafl

 * Reorder the list return of Math::BigInt::Calc::_base_len() (Nicholas Clark)
   This change requires an update of Math::BigInt::FastCalc to version 0.24.
 * Fix segfault when upgrading irrational numbers (Father Chrysostomos)

1.96 2010-09-28 rafl

 * Various documentation fixes provided by gregor herrmann

1.95 2010-09-14 rafl

 * Re-upload v1.94 as a stable release

1.94 2010-09-13 rafl DEVELOPMENT RELEASE

 * Attempt to fix Math::BigInt::Lite failures

1.93 2010-09-13 rafl

 * Depend on perl >= 5.6.2
 * Remove obsolete core test directory boilerplate
 * Convert from Test to Test::More

1.92 2010-09-10 rafl

 * re-upload v1.91 with a fixed SIGNATURE

1.91 2010-09-10 rafl

 * fix various documentation bugs

1.90 2010-09-03 rafl

 * fix bnok() for k==0 and k==n-1

1.89 2008-04-20 Tels

 * fix #35238: batan2() handles inf/+inf wrong

1.88 2007-09-22 Tels

 * fix wide ints on Perl v5.8.0 (Thanx zefram!)
 * minimum required is Perl v5.6 (tested by zefram)
 * _find_round_parameters(), _scale_a() and _scale_p(): trunc A/P to integers
 * fix from_oct(), from_bin() and from_hex()

1.87 2007-06-30 Tels

 * fix undef base in blog()
 * support config('lib') as shortcut for config()->{lib}
 * _find_round_parameters(): convert $a & $p to normal scalars, or bad
   things will happen during rounding of BigFloats
 * add bpi(), bcos(), bsin(), batan(), batan2() methods
 * add bmuladd()
 * streamline the is_xxx() and copy() methods

1.86 2007-05-05 Tels

 * bump version

1.85 2007-05-05 Tels

 * bump version

1.84 2007-05-04 Tels

 * add bnok() method (n over k)

1.83 2007-04-16 Tels

 * bump version

1.82 2007-04-09 Tels

 * use $CALC->_zeros() directly (instead _trailing_zeros()) to speed up
   exponent() and mantissa()
 * fix documentation that blsft() and brsft() default to base 2 (not 10)
 * add bexp() and fix overloading for exp()

1.81 2007-03-16 Tels

 * no code change, just a package update

1.80 2007-03-04 Tels

 * require Perl v5.6.2 as minimum
 * fix bug #24969 (Can't use an undefined value as an ARRAY reference)
 * fix bug #12857: Subclasses and overload
 * fix bug #13866: NaN (in bignum queue)
 * fix bug #21586: Incorrect result when comparing with NaN
 * fix bug #15896: "==" overloading is broken for "NaN"

1.79 2007-02-02 Tels

 * fix typos

1.78 2007-01-27 Tels

 * implement "try" and "only" as replacements for "lib"
 * make 'use Math::BigInt lib => "foo"' warn if foo cannot be loaded and a
   fallback occurs
 * fix bug #21446 - Docs/code inconsistency for bnorm() method
 * fix bug #21964 - A patch to include a rounding mode of 'common'
 * fix bug #21445 - Documentation error for exponent() method
 * fix bug perl #41050 - NaN returned when raising integer value to negative
   power
 * add from_hex(), from_oct(), and from_bin()
 * add as_oct()

1.77 2005-05-17 Tels

 * bump version

1.76 2005-04-10 Tels

 * fix rounding doc, add notes about prevision vs. accuracy
 * trap inf and -inf in new()
 * load FastCalc as default

1.75 2005-03-20 Tels

 * use a trick to remove the dependency on Scalar::Util in bsub()
 * fix atan2(), it did not preserve the order of arguments
   (Thanx to Ambros & Zaxo for report and patch!)

1.74 2005-01-01 Tels

 * streamline _scale_a() and _scale_p() for more speed in rounding
 * remove the now unnec. support for MB_NEVER_ROUND and {_f}, this
   makes all ops that call round() a tad faster (one exists is
   removed) and shrinks the codesize a bit
 * streamline bneg(), inline is_zero(): makes it 1.6 times faster
 * replace ref($_[0]) w/ undef when it isn't actually needed. This
   makes some ops (bsstr(), bneg etc) about 2% faster for small numbers
 * restrict low-level math library names to sane chars to avoid
   exploitation of eval()
 * fill_can_cache() accidentally did checks for 'or' & 'xor'
 * inline _fill_can_cache
 * add _register_callback() to notify subclasses of lower math lib changes
 * bgcd() is now about 10% faster
 * is_positive(0) == 0, since 0 is neither positive nor negative
 * streamline bmod() a bit
 * fix blog() constructing arguments (broke Math::BigInt::Constant)

1.73 2004-10-10 Tels

 * overloading of <<= and >>= makes these ops about 10% faster and fixes the
   problem that "$a <<= 2" would create a different object for $a to point to
 * quite a lot of fixes for NaN/inf handling in bpow() (bmul already did it
   right) - bug report by jeff at thekidders com and Hugo - Thank you!

1.72 2004-07-13 Tels

 * no changes

1.71 2004-07-08 Tels

 * fixed bsub() failing under $x -= $x; Thanx Peter J. Acklam!
 * _scan_for_nonzero() reuses length/stringform of $x and is thus faster, this
   helps rounding if the number after the roundposition is '5'

1.70 2004-03-12 Tels

 * bpow() computed -X ** Y wrong for Y that are odd
 * 0 ** -Y => +inf (was NaN) due to 0 ** -Y => 1/0**Y => 1/0 => +inf
 * fixed bug in perl -Mbignum -le 'print 2 ** 46 * 3' under Bigint::Lite
   leading to "Can't use an undefined value as an ARRAY reference at
   /usr/local/lib/perl5/5.8.2/Math/BigInt/Calc.pm line 462."
 * fixed upgrading of blog() with base = undef (means: base e)
 * make the synopsis actually runnable (Thanx Paul McCarthy)
 * blcm(): handle a list of strings (instead one obj and some strings), too

1.69 2004-01-13 Tels

 * bacmp(+-$x,-inf) was wrong (Thanx William T. Morgan!)
 * digit($x,$y) segfaulted under 5.6.1 if $y was a BigInt
 * blog() was missing the modify() check (breaking MBI::Constant)
 * delete $x->{_a} vs. $x->{_a} = undef to save memory

1.68 2003-12-26 Tels

 * bfac(inf) is inf, not NaN
 * added alias names: as_int() (as_number()), is_pos(), is_neg() and doc
 * factored out all the emulation code and moved it to Math::BigInt::CalcEmu
 * binary/hexadecimal input was twice as slow as v1.66 due to a typo in v1.67
 * streamlined overload for boolean context (20% faster "... if $x;")
 * round() was missing a croak() in path testing for wrong roundmode
 * badd(): optimize away setting of sign if it is already right
 * bdec() is about 10% faster for negative numbers
 * bpow(): removed some now needless tests for 0 and 1: about 30% faster
   for small numbers
 * streamlined exponent() (parts() benefits from this, too)

1.67 2003-12-02 Tels

 * overload for cos/sin/exp/atan2 to make cos(Math::BigInt->new(...)) work
 * implemented blog() with a simple and fast "iterative" method
 * use _log_int() in $CALC if possible
 * cache $CALC->can(...) calls in global %CAN hash for speed
 * reorder is_zero() check for band(), bior() and bxor() to speed up the
   case for when the underlying lib has _and(), _ior() and _xor()
 * implement a new way of emulating AND, OR and XOR, this tremendously
    helps if band() et. al. are called with negative arguments
 * try to call _signed_or(), _signed_and() and _signed_xor() in lib
 * is_foobar() methods are slightly faster
 * bnot() is about 12% faster
 * bsqrt(): moved is_zero() || is_one() test out of the way => 28% faster
   for "small" values (Calc and GMP)
 * small change for overload::constant
 * bfac(): do 0 or 1 check only if CALC cannot do _fac() (thus faster)
 * removed a needless _copy in bmod() with negative arguments (slightly faster)

1.66 2003-09-01 Tels

 * document accepted inputs better
 * fix wrong upgrade and undef-parameter handling in broot()
 * implement broot() if lib doesn't have a _root() routine for $y that are
   powers of two and for small $x
 * warn if broot() cannot yet compute proper result
 * remove needless _one(): 3% speedup for binc()
 * remove needless _swap(): 1% (Calc) - 6% (GMP) speedup for overloaded math

1.65 2003-07-13 Tels

 * document that config() can set certain values
 * replace die() with Carp::croak()
 * remove needless is_zero() check in as_bin() and as_hex(), making them
   faster, especially when under a different lib like GMP.
 * Fixed the infinite recursion in bignum. See http://xrl.us/k6y
 * fix handling of 0e999, 0e-999 etc

1.64 2002-11-03 Tels

 * removed needless "my $c = ...;" statements in binf() and bnan()
 * forgot () around "$x->{_f} & MB_NEVER_ROUND"
 * bsqrt(inf) == inf, not NaN
 * $x->bdiv($x) did not round the resulting 1 properly
 * removed the shortcut testcode in bdiv() (Calc handles this now)
 * added (non-working for now) broot() method
 * changed length() to CORE::length() in two places (thanx Liz!)
 * config() can take arguments and set them, croak on wrong ones
 * config(trap_nan => 1) to manipulate former $NaNOK variable
 * config(trap_inf => 1), too
 * trap_nan/trap_inf really croak on any attempt to create an NaN/inf
 * spellings of Bigint => BigInt
 * _find_rounding_parameters(): set $a to undef if it is 0

1.63 2002-09-08 Tels

 * bsqrt() did not modify $x but returned new object when lib does not have
   a _sqrt() routine (BareCalc, BitVect and Pari are affected, Calc, FastCalc
   and GMP were not)

1.62 2002-08-21 Tels

 * bcmp()/bacmp() upgrade now if requested
 * bmodinv() uses an all-positive algorithm, speeding it up by about 5-8%
   and allowing to implement the same algorithm in Calc for factor 4 speedup

1.61 2002-08-13 Tels

 * tests for bsstr()/numify() with negative/special inputs
 * bround() keeps $scale as scalar for speed and less problems
 * fix for trailing newlines in input
 * some doc fixes (especially return values of is_foo() methods)
 * make testsuite so that it will pass under FastCalc easily

1.60 2002-07-07 Tels

 * shortcuts to avoid calls to objectify for add/sub/mul/div/mod/pow/bcmp etc
 * fix overloaded bcmp() so that the objectify()-avoidance kicks in
 * avoid calling round() when BigFloat requested 'no rounding please'
 * bcmp()'s shortcut for comparing x <=> 0, 0 <=> 0, 0 <=> $y was making things
   slower than just handing the compare to Calc. Even more so for Pari et al.
 * $x->accuracy() and $x->precision() returned undef, instead of 0 if
   A/P of $x was 0 and global A/P was undef.
 * $x->bmod() did not modify $x in place when returning NaN/inf/-inf
 * some binary ops (band/bxor/bior/bpow) were not properly rounding the result
   to the requested A/P/R; the same ops also forgot to take $y into account
 * doc for accuracy()/precision()

1.59 2002-06-10 Tels

 * pod fixes for bmodpow()/bmodinv()
 * fix in as_hex() and as_bin() for older Perls
 * speedups in bpow(), bmodin() and bmodpow()

1.58 2002-06-09 Tels

 * invalid inputs with two dot's (1.2.3 or 1..2 etc) are now really invalid

1.57 2002-05-30 Tels

 * fixed objectify() to make "perl -Mbigrat -le 'print 1+2/3'" work
 * added bmodpow() and bmodinv() as (not-working yet) stubs

1.56 2002-03-17 Tels

 * documented config()
 * simplified import() logic a bit
 * changed some isa->($upgrade) => !$isa->($self);

1.55 2002-03-17 Tels

 * :constant picks up binary/hexadecimal constants
 * Math::BigInt->digit(123) works now

1.54 2002-03-03 Tels

 * really fixed overlong pod =item
 * downgrade() and upgrade() with undef as argument didn't clear the variable
 * bmul() upgrades if second argument is non-integer
 * bdiv() upgrades if $x > $y
 * bpow() upgrades if second argument is non-integer
 * objectify disable downgrade (for MBF)
 * new() twice as fast due to shortcut simple numbers, save _split() & _round()

1.53 2002-02-27 Tels

 * precisision typo
 * fixed overlong pod =item
 * added downgrade()

1.52 2002-02-24 Tels

 * hooks for _bin(), _bnan(), _bone() and _bzero()
 * =head2 section for accuracy

1.51 2002-02-16 Tels

 * fixed bfround(-x) (f.i. 0.004->bfround(-2) resulted in 0.01, not 0.00)
 * bfround(x) rounded at wrong place (off by one)
 * calling bfround(x) rounded further and further instead of keeping result
 * blog() upgrades if requested
 * added doc stub for every public function

1.50 2002-02-10 Tels

 * bfac() and hook for _fac() in libs
 * documented sub-classing and auto-upgrade
 * < 4 test in bsqrt() after the CALC call for more performance
 * added overload for sqrt()
 * added possibility to upgrade via use Math::BigInt upgrade => 'Foo::Bar'
 * Math::Big(Int|Float)->accuracy() clears precision, and vice versa
 * small optimization in bdiv() regarding abs($x) < abs($y)
 * brsft() for negative numbers in base 2 was completely wrong

1.49 2002-01-07 Tels

 * as_hex() and as_bin() use 16 instead of 8 bits per iteration
 * overload for log() and blog()
 * tricks to make 'require Math::BigInt' and 'use Math::BigInt();' work again
 * use $CALC instead of require for newer Perls (test for $] > 5.006 vs 5.6)
 * bzero()/bone() handling of A & P was broken
 * bround()/bfround() forgot to set A or P for zeros
 * embedded _find_round_parameters into round(), streamlined both versions
 * round() now uses string-add to make it almost twice as fast
 * bnot() did round twice

1.48 2001-12-06 Tels

 * fixed pod in many places
 * bmod: use round(), not bround()
 * bsqrt: use _sqrt() from lib, if possible
 * bsqrt: would hang for certain (most?) inputs
 * bdiv: slow check for 1 || -1 replaced by much faster version
 * bdiv: call _div() only when nec. in list context, otherwise scalar
 * streamlined copy(), _find_round_parameters()
 * removed the EXPORT_OK except for objectify, _swap and bgcd/blcm
 * bzero(), bone(): take additional A and P and store 'em
 * bnan(), binf(): clear A and P

1.47 2001-11-18 Tels

 * added $rnd_mode support for compatibility
 * two 'my $t = ... if ..;' cases to 'my $t; $t = ... if ...;'
 * added overload for %=, |=, &= and ^= for more speed
 * _split(): check for 1e2e3 and reject it

1.46 2001-11-11 Tels

 * binc(),bdec() use lib (via _inc(),_dec()) => faster (see BENCHMARK)
 * avoid the unnec. rounding bsub()/binc()/bdec() (badd() already took care)
 * made bsub() faster by removing the bneg() overhead from it

1.45 2001-11-04 Tels

 * tests run now in subclass, too
 * bmod() can use _mod in lib
 * lots of tests fixed (assumed wrong base etc) and added
 * bpow() about 10-15% faster for small numbers (like 2 ** 150, 3 * 200 etc)

1.43 2001-10-05 Tels

 * $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op)
 * Heaploads of rounding fixes (and tests)
 * Test for 99999-bug in Calc

1.42 2001-09-03 Tels

 * bug in overload section causing performance losses in subclasses
 * call $CALC->import() with list of libs
 * odd numbers never have trailing zeros, so don't convert them to DEC to look
 * as_hex() and as_bin()
 * $x->bmod() did not modify $x, only returned result. Oups.
 * new('inf') produced NaN (was expecting '+inf')
 * exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN

1.41 2001-08-08 Tels

 * fixed inf test (coredumps)

1.40 2001-08-03 Tels

 * bxor(-$x,-$y) was broken (and not tested *sigh*)
 * streamlined bcmp
 * drop leading '+' for inf
 * bxor(), band(), bior() with negative arguments don't get passed to lib
   (makes it work with BitVect, Pari, GMP etc)

1.39 2001-08-02 Tels

 * fixed history (duh!)
 * assign return values from $CALC back to $x->{value}
 * fixed +-inf handling in a lot of places and tests for that
 * band(), bxor() and bior() now work with negative inputs
 * remove bint() (Math::BigFloat->bint() just DNDWIM and no sense, either)

1.38 2001-07-15 Tels

 * test for mul() shortcut

1.37 2001-07-15 Tels

 * applied Philip Newtons spelling and doc patch(s)
 * Benjamin Trott: _split() is faster for numbers that need no splitting
 * Benjamin Trott: don't take shortcut in badd(), or Pari won't work
 * allow use Math::BigInt lib => 'Pari,BitVect,Foo,Bar';
 * delegate shifting to CALC if possible, otherwise fallback
 * test for self-pow, to see if lib's fail (since BitVect failed for self-pow)
 * _one() => bone()
 * +x / 0 => +inf, -x / 0 => -inf, while 0/0 and +-x % 0 are still NaN
 * tests for bnan() and bone()
 * Math::BigInt::Calc now determines biggest $BASE to use. Default should now
   be 1e7 on most systems, giving 20% to 40% speedups.

1.36 2001-07-04 Tels

 * is_positive(), is_negative()
 * various pod fixes (overlong =item, spelling erorrs etc)
 * torn out the bones from under the flesh and moved them to Math::BigInt::Calc
 * added Math::BigInt::Calc, Math::BigInt::Small (and Math::BigInt::BitVect)
 * fixed tests for bacmp() (could never fail)
 * removed internal _set() and tests for it
 * +-inf handling in bcmp(), bpow()

1.35 2001-06-15 Tels

 * added bfloor(), bceil()
 * fixed bior(), bxor(), band() for $x->bxxx(NaN,0), added modify() to them

1.34 2001-06-13 Tels

 * binary integer input (0b01110 etc)
 * fixed: '-0x0' left '-0'
 * added is_inf(), binf() and some support for +-inf in new(), bsstr() etc
 * added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr()

1.33 2001-06-09 Tels

 * bround() no longer uses 10 ** $pad and is thus much faster when rounding up
 * fixed and added rounding benchmark (did time bmul instead bround)
 * blsft(),brsft(): can work in different bases, check against invalid
   inputs, more tests, speedup when in base 10
 * _trailing_zeros is 50% faster
 * A/P after each op, tests for it in accuracy.t
 * round() instead of bnorm()
 * $x->accuracy(), $x->precision() actually round $x to the set value
 * tests for is_one()
 * hexadecimal integer input (0xcafebabe etc)

1.32 2001-05-11 Tels

 * added accuracy/precision/fallback/round_mode

1.31 2001-05-08 Tels

 * _ between digits now accepted, ' ' no longer valid inside (but at front/end)
 * Exxx is NaN, and no longer produces warning
 * .xxx style numbers are valid input
 * tests for 1E1, 123E-2, 1E2 etc style input to Bigint.pm
 * fixed overload (w/ _swap/copy), subclasses can inherit it easily
 * removed clone()
 * added bsstr()

1.3 2001-04-23 Tels

 * added (compatible to MBF) mantissa(), exponent() & parts() as well as tests
 * _trailing_zeros()
 * fixed as_number() to return copy of BigInt
 * added bround(), bfround() and support for round_mode() as well as $rnd_mode
 * fixed bug in bdiv() wich left reminder "-0", causing further op's to die()
 * added is_valid to testsuite to see whether invalid objects are created
 * added bsqrt()
 * workaround coredump bug in bool() for v5.6.1

1.23 2001-04-07 Tels

 * spelling errors in pod

1.22 2001-04-05 Tels

 * documented Peters OS/390 patch/changes (fix was in for quite some time)
 * fixed bug Math::BigInt->new(Math::BigFloat->new(3));
 * objectify() with other objects than BigInt as further args, copy() etc
 * $x->digit($n) to query fast value of Nth digit
 * as_number()

1.21 2001-03-30 Tels

 * bool() works now under 5_005
 * bug in bsub where numbers with at least 6 trailing digits after any op failed

1.20 2001-03-24 Tels

 * added: is_nan()
 * bug in bmod/bdiv, I forgot some cases with negatives. Thanx to Bruce Fields!
 * documented ':constant' and eval() crash on Perl 5.00x
 * documented BigInts behaviour of bmod/bdiv and use integer

1.16 2001-03-09 Tels

 * Math::BigInt::badd(4,5) and Math::SomeChildOfBI->badd(4,5) work now
 * '$x = scalar (**|%|+|-|*|\) $object;' failed (was not tested, either)
 * 'if ($x)' is now O(1) instead of O(N) and at least twice as fast
 * fixed nasty bug in _digits that caused <=> after add/sub/mul etc to fail
   if result was between 100001 and 109999, added test for this
 * added test cases for op's that should preserve args (+,+=,abs(), neg() etc)
 * added tests for overloaded 'bool'
 * added test.pl and some examples (prime.pl, bigprimes.pl)
 * tests after "use Math::BigInt :constant" were screwed due to not using eval
 * $x->numify() (for $array[$x] = 0; etc) is much faster now
 * added caveat documentation for $x = -$x; and $x *= string1 operator string2;

1.15 2001-02-24 Tels

 * $x / $x is now a lot faster (more O(1) than O(N))
 * 10 ** $x is now a lot faster (more O(N/5) instead of O(N))
 * overload of **= makes $x **= $y faster
 * 0 ** 0 was NaN, not 1
 * -a % b = +c (was -c) to be compatible with perl
 * added $x->length() and test for it; fixed _digits() (was off by 1)
 * objectify() was not exported, added tests for objectify()

1.14 2001-02-21 Tels

 * overload +=, -=, *= and /= for about 20-30% more speed if both args have
   roughly same length
 * shortcut in add() makes $x += $y; $x -= $y; for large $x and small $y
   an O(1) case instead of O(N)
 * fixed (non-critical) bug that caused objectify in numify/bool/stringify to
   create scratch objects from undef params.

1.13 2001-02-18 Tels

 * got rid of duplicated copy() code in new()

1.12 2001-02-16 Tels

 * accidentally dropped self-multiply test in bigintpm.t
 * fixed bug in overloading cmp
 * after correcting the overload for 'cmp', I got a lot of test failings and
   finally discovered that the bstr()'s return of '[+-][0-9]+' instead of
   Perls ways of '[-]?[0-9]+' breaks string comparisons with numbers :(
   F.i. ok() from Test.pm uses 'eq' and you can not do ok($a,3*3) where $a
   is a BigInt. IMNSHO clearly wrong. And only changing the way cmp is
   overloaded would lead to the curios situation that the following:
   'print "$a eq $b" if $a eq $b;' would print "+3 eq 3", which looks wrong.
   Mark B. said go ahead and change bstr(), so I changed it ;) to drop
   the '+', adapted all the tests, changed the doc, etc.
   BigInts behave now transparently like build-in scalars in integer/string
   context ;o)

1.11 2001-02-14 Tels (first release)

 * fixed bug in band(), bxor(), etc that used badd($x, fixed_number_here);
 * since subclasses might not be happy with fixed numbers, make sure we pass
   BigInts all the time if using something like $someclass->badd();
 * fixed bug in band/bxor/bior which destroyed second argument
 * bxor/band/bior work now correctly for subclasses
 * ++ and -- are now a tad (ca 5%) faster

1.10 2000-11-24 Tels

 * finally made it Math::BigInt (w/o trailing 's')

1.09 2000-11-23 Tels

 * fixed bug in bmul (and thus bpow) (self multiply works now)

1.08 2000-11-22 Tels

 * fixed all but one test (band bior bxor etc)

1.07 2000-11-20 Tels

 * objectify fixed to not make copies and work with subclasses

1.06 2000-11-19 Tels

 * 7 tests remain
 * bgcd accepts lists, added blcm

1.05 2000-11-16 Tels

 * 8 tests remain
 * new copies _all_ fields, not only Math::Bigint ones

1.04 2000-11-15 Tels

 * fixed bigintpm to test '++' and '--' properly
 * done div, fixed mul/bpow (13 tests remain)

1.03 2000-11-14 Tels

 * x**0 => 1 (instead of x)
 * fixed bigintpm to include bpow, binc, bdec, new() test

1.02 2000-11-13 Tels

 * fixed sub and mul (sort of)
 * found out that "$wanted = shift || return bzero()" causes a call to numify,
 * testing for undefined fixes this problem (but might waste more time for
 * a new(0), will save time on average.