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
|
* What is new in gsl-2.8:
** apply patch for bug #63679 (F. Weimer)
** updated multilarge TSQR method to store ||z_2|| and
provide it to the user
** add routines for Hermite B-spline interpolation
** fix for bug #59624
** fix for bug #59781 (M. Dunlap)
** bug fix #61094 (reported by A. Cheylus)
** add functions:
- gsl_matrix_complex_conjugate
- gsl_vector_complex_conj_memcpy
- gsl_vector_complex_div_real
- gsl_linalg_QR_lssolvem_r
- gsl_linalg_complex_QR_lssolvem_r
- gsl_linalg_complex_QR_QHmat_r
- gsl_linalg_QR_UR_lssolve
- gsl_linalg_QR_UR_lssvx
- gsl_linalg_QR_UR_QTvec
- gsl_linalg_QR_UU_lssvx
- gsl_linalg_QR_UD_lssvx
- gsl_linalg_QR_UD_QTvec
- gsl_linalg_complex_cholesky_{decomp2,svx2,solve2,scale,scale_apply}
- gsl_linalg_SV_{solve2,lssolve}
- gsl_rstat_norm
** add Lebedev quadrature (gsl_integration_lebedev)
** major overhaul to the B-spline module to add
new functionality
* What was new in gsl-2.7.1:
** update libtool version numbers
* What was new in gsl-2.7:
** fixed doc bug for gsl_histogram_min_bin (lhcsky at 163.com)
** fixed bug #60335 (spmatrix test failure, J. Lamb)
** fixed bug #36577
** clarified documentation on interpolation accelerators (V. Krishnan)
** fixed bug #45521 (erroneous GSL_ERROR_NULL in ode-initval2, thanks to M. Sitte)
** fixed doc bug #59758
** fixed bug #58202 (rstat median for n=5)
** added support for native C complex number types in gsl_complex
when using a C11 compiler
** upgraded to autoconf 2.71, automake 1.16.3, libtool 2.4.6
** updated exponential fitting example for nonlinear least squares
** added banded LU decomposition and solver (gsl_linalg_LU_band)
** New functions added to the library:
- gsl_matrix_norm1
- gsl_spmatrix_norm1
- gsl_matrix_complex_conjtrans_memcpy
- gsl_linalg_QL: decomp, unpack
- gsl_linalg_complex_QR_* (thanks to Christian Krueger)
- gsl_vector_sum
- gsl_matrix_scale_rows
- gsl_matrix_scale_columns
- gsl_multilarge_linear_matrix_ptr
- gsl_multilarge_linear_rhs_ptr
- gsl_spmatrix_dense_add (renamed from gsl_spmatrix_add_to_dense)
- gsl_spmatrix_dense_sub
- gsl_linalg_cholesky_band: solvem, svxm, scale, scale_apply
- gsl_linalg_QR_UD: decomp, lssolve
- gsl_linalg_QR_UU: decomp, lssolve, QTvec
- gsl_linalg_QR_UZ: decomp
- gsl_multifit_linear_lcurvature
- gsl_spline2d_eval_extrap
** bug fix in checking vector lengths in gsl_vector_memcpy (dieggsy@pm.me)
** made gsl_sf_legendre_array_index() inline and documented
gsl_sf_legendre_nlm()
* What was new in gsl-2.6:
** add BLAS calls for the following functions:
- gsl_vector_memcpy
- gsl_vector_scale
- gsl_matrix_memcpy
- gsl_matrix_transpose_memcpy
- gsl_matrix_tricpy
- gsl_matrix_transpose_tricpy
** deprecated functions gsl_linalg_complex_householder_hm and
gsl_linalg_complex_householder_mh
** add unit tests for gsl_linalg_symmtd and gsl_linalg_hermtd
** multilarge TSQR algorithm has been converted to use the new Level 3 QR decomposition
** nonlinear least squares Cholesky solver now uses the new Level 3 BLAS
method; the old modified Cholesky solver is still available under
gsl_multifit_nlinear_solver_mcholesky and gsl_multilarge_nlinear_solver_mcholesky
** implemented Level 3 BLAS versions of several linear algebra routines:
- Triangular matrix inversion
- Cholesky decomposition and inversion (real and complex)
- LU decomposition and inversion (real and complex)
- QR decomposition (courtesy of Julien Langou)
- Generalized symmetric/hermitian eigensystem reduction to standard form
** removed deprecated function gsl_linalg_hessenberg()
** renamed gsl_interp2d_eval_e_extrap() to gsl_interp2d_eval_extrap_e()
to match documentation (reported by D. Lebrun-Grandie)
** renamed some of the gsl_sf_hermite functions to be more consistent
with rest of the library, and deprecated old function names
** updated gsl_sf_hermite_func() to use a newer algorithm
due to B. Bunck which is more stable for large x; also added
gsl_sf_hermite_func_fast() which uses the faster Cauchy integral
algorithm in the same paper by Bunck
** add gsl_vector_axpby()
** add un-pivoted LDLT decomposition and its banded
variant (gsl_linalg_ldlt_* and gsl_linalg_ldlt_band_*)
** add binary search tree module (gsl_bst); based on GNU libavl
** remove -u flag to gsl-histogram
** updated spmatrix module
- added routines and data structures for all types (float,uint,char,...)
- added gsl_spmatrix_scale_columns() and gsl_spmatrix_scale_rows()
- added gsl_spmatrix_add_to_dense()
- more efficient reallocation of COO/triplet matrices (no longer rebuilds binary tree)
- enhanced test suite
- added gsl_spmatrix_min_index()
** add routines for banded Cholesky decomposition (gsl_linalg_cholesky_band_*)
** documented gsl_linalg_LQ routines and added gsl_linalg_LQ_lssolve()
* What was new in gsl-2.5:
** doc bug fix in binomial distribution figure (Damien Desfontaines)
** added Wishart distribution (Timothée Flutre)
** added new module for digital filtering (gsl_filter); current filters include:
Gaussian filter
median filter
recursive median filter
impulse detection filter
** added new module for moving window statistics (gsl_movstat)
** added statistics functions:
gsl_stats_median()
gsl_stats_select()
gsl_stats_mad()
gsl_stats_mad0()
gsl_stats_Sn_from_sorted_data()
gsl_stats_Qn_from_sorted_data()
gsl_stats_gastwirth_from_sorted_data()
gsl_stats_trmean_from_sorted_data()
** added Romberg integration (gsl_integration_romberg)
** bug fix in deprecated functions gsl_multifit_wlinear_svd and
gsl_multifit_wlinear_usvd (reported by Vlad Koli)
** documentation corrected to state that gsl_sf_legendre functions do
not include Condon-Shortley phase by default
** bug fix in exponential fitting example when using larger number
of points (reported by Anna Russo)
** changed internal workspace inside gsl_spmatrix to a union to
avoid casting (suggested by Manuel Schmitz)
** bug fixes in ode-initval2 for very rare solver crashing cases:
#52230 in msadams (reported by Michael Kaufman) and
#52336 in msbdf (reported by Andrew Benson). As a fix,
the maximum scaling of controlled step length was decreased
from 5.0 to 4.9.
** add histogram2d figure to manual (was missing in 2.4)
** bug fix in gsl_spmatrix_add for duplicate input arguments
(reported by Alfredo Correa)
** add support for negative arguments nu in gsl_sf_bessel_Jnu and
gsl_sf_bessel_Ynu (Konrad Griessinger)
** better texinfo documentation for gsl_sf_hyperg functions
** fix vector and matrix fread/fwrite testing on windows systems
when tmpfile() fails
** fix for rstat/test.c on PPC64 (reported by Adam Majer)
* What was new in gsl-2.4:
** migrated documentation to Sphinx software, which has built-in
support for latex equations and figures in HTML output
** add const to declaration of appropriate gsl_rstat routines
** bug fix for #45730: change gsl_sf_sin/cos to libm sin/cos
** fix Cholesky documentation regarding upper triangle on output
** added routines to compute integrals with fixed-point quadrature,
based on IQPACK (Konrad Griessinger)
** added routines for Hermite polynomials, gsl_sf_hermite_*
(Konrad Griessinger)
** added new nonlinear least squares example for fitting
a Gaussian to data
** deprecated routines:
gsl_sf_coupling_6j_INCORRECT
gsl_sf_coupling_6j_INCORRECT_e
** deprecated routine 'gsl_linalg_hessenberg' (replaced
by gsl_linalg_hessenberg_decomp)
** removed routines which were deprecated in v2.1:
gsl_bspline_deriv_alloc
gsl_bspline_deriv_free
** changed COD expression to Q R Z^T instead of Q R Z to
be consistent with standard texts
** added check for nz == 0 in gsl_spmatrix_get
(reported by Manuel Schmitz)
** permit zero-dimension blocks, vectors, matrics, subvectors,
submatrices, and views of the above (bug #49988)
** added routine gsl_linalg_COD_lssolve2 for regularized
least squares problems
* What was new in gsl-2.3:
** bug fix in documentation for gsl_linalg_LU_refine
(bug #49728, Joey De Pauw)
** added gsl_multifit_linear_tsvd and gsl_multifit_wlinear_tsvd
to give user more control over cutoff for truncated SVD
** added routines for Generalized Cross Validation for
regularized linear least squares
** improved rstat example program and added documentation for
gsl_rstat_sd_mean (Jonathan Leto)
** added function gsl_multifit_linear_rank
** bug fix in nonlinear least squares when using data weights with
finite-difference Jacobian
** add 2D subspace method for large systems (multilarge_nlinear)
** bug fix in gsl_ran_beta for small parameters
(bug #47646, Yu Liu)
** bug fix in gsl_complex_tan for negative imaginary arguments
(bug #47347, Yu Liu)
** doc bug fix: value of golden ratio
** fixed scaling issue in 2D subspace nonlinear least squares
method
** optimize dogleg methods to calculate Gauss-Newton point
only when needed
* What was new in gsl-2.2.1:
** reverted gsl_linalg_cholesky_decomp to its previous behavior
so it is backward compatible; new cholesky routine is
gsl_linalg_cholesky_decomp1
* What was new in gsl-2.2:
** updated gsl_linalg_cholesky_invert to use Level-2 BLAS
and added function gsl_linalg_pcholesky_invert
** added functions gsl_linalg_tri_*_invert for inverting
triangular matrices
** fix GSL_EIGEN_SORT_VAL_{ASC,DESC} for nonsymmetric
eigensystems (Victor Zverovich)
** added complete orthogonal decomposition routines
(gsl_linalg_COD)
** bug fix where median calculation wasn't reset in
gsl_rstat_reset(); added gsl_rstat_quantile_reset() function
(reported by Pedro Donato)
** added multivariate Gaussian random distribution
gsl_ran_multivariate_gaussian (Timothée Flutre)
** added functions to estimate the 1-norm reciprocal condition
number for various matrix factorizations:
* gsl_linalg_cholesky_rcond
* gsl_linalg_QRPT_rcond
** added functions gsl_linalg_QRPT_{lssolve,lssolve2} to
compute least squares solutions with the QRPT decomposition
** added function gsl_permute_matrix()
** added modified Cholesky factorization (gsl_linalg_mcholesky)
to handle symmetric indefinite matrices
** added pivoted Cholesky factorization (gsl_linalg_pcholesky)
for ill-conditioned matrices
** rewrote (real) Cholesky decomposition to use
a Level-2 blas algorithm instead of Level-1. Flop
count is about the same but the code is much simpler
and easier to follow
** completely rewritten nonlinear least squares module,
including support for large problems; the user may
now control the linear solver used, the trust region
updating strategy, and the scaling method. In addition,
support has been added for the geodesic acceleration
step (Transtrum 2011) which can speed up convergence
on a wide class of problems.
** added gsl_rstat_rms() for root mean square
** optimized lmniel nonlinear least squares solver
(bug #46369)
** improved precision in Bessel K0/K1 near x = 2
(Pavel Holoborodko, bug #47401)
** added support for compressed row storage sparse
matrices (Alexis Tantet)
** bug fix in convergence check of hypergeometric 2F1
function (bug #45926)
** added gsl_multilarge_linear_lcurve() to compute
the L-curve for large linear systems
** updated multilarge normal equations method to use
new Cholesky scaling for better numerical stability
** added scaling to Cholesky routines to reduce the
condition number prior to factorization
* What was new in gsl-2.1:
** added test suite for example programs
** bug fix when compiling with #undef GSL_DISABLE_DEPRECATED
** bug fix in setting libtool age versioning
** bug fix in gsl_multifit_wlinear()
** added gsl_multifit_linear_rcond() to compute reciprocal
condition number of least squares matrix
** added gsl_multilarge module for large linear least squares
systems
* What was new in gsl-2.0:
** fixed bug #43258 for hypergeometric functions (Raymond Rogers)
** added L-curve analysis routines for linear Tikhonov regression
** add running statistics module
** added bilinear and bicubic interpolation (David Zaslavsky)
** added function gsl_multifit_robust_residuals to compute robust
fit residuals
** added Steffen monotonic interpolation method (Jean-François Caron)
** added new nonlinear least squares solver 'lmniel' suitable for
systems with large numbers of data
** nonlinear least squares solver now tracks the number of function
and Jacobian evaluations, see example program for details
** the 'fdf' field of gsl_multifit_function_fdf is now deprecated
and does not need to be specified for nonlinear least squares
problems
** added extensive test suite to nonlinear least squares module,
resulting in a few minor bug fixes; the routine
gsl_multifit_fdfsolver_driver has been rewritten (with API change)
to handle the various error codes of the lmsder iterate
routine, resulting in a high level caller which is highly robust
for a wide class of problems
** added support for sparse matrices, including a GMRES
iterative linear solver
** added routines gsl_linalg_givens and gsl_linalg_givens_gv
for Givens rotations
** added Tikhonov (ridge) regularization to least squares module
(linear and nonlinear)
** removed unused argument 'n' from gsl_sf_ellint_D
** merged bspline_deriv_workspace into bspline_workspace to simplify
bspline API; the functions
gsl_bspline_deriv_alloc
gsl_bspline_deriv_free
are now deprecated and will be removed in a future release.
** merged ALF extension into GSL for associated Legendre functions;
api has changed; consequently the functions:
gsl_sf_legendre_Plm_array
gsl_sf_legendre_Plm_deriv_array
gsl_sf_legendre_sphPlm_array
gsl_sf_legendre_sphPlm_deriv_array
gsl_sf_legendre_array_size
are now deprecated and will be removed in a future release.
** added function gsl_multifit_robust_weights to allow user to
access the various weighting functions
* What was new in gsl-1.16:
** fixed error in gsl_rng_fwrite where uninitialized padding
bytes were being written (bug #39104)
** fixed error in gsl_block_alloc where padding bytes were not
properly initialized (bugs #39101,#39102,#39103)
** fixed error in ntuple/test.c where padding bytes were not
properly initialized (bug #39105)
** fixed triangle selection bug in gsl_sf_coupling_6j_e and
gsl_sf_coupling_9j_e (bugs #39466 and #29606) (Håkan Johansson and
Alexey Illarionov)
** added higher level wrapper routine gsl_multifit_fdfsolver_driver
** converted gsl_multifit_linear_residuals to use dgemv to improve
efficiency (bug #39153)
** added functions gsl_stats_spearman and gsl_sort_vector2 to compute
Spearman rank correlation
** added function gsl_poly_dd_hermite_init for Hermite interpolation
** Added support for robust linear least squares
** Added function gsl_linalg_SV_leverage for computing statistical
leverages from SVD decomposition
** Added support for approximating the Jacobian of nonlinear least
squares fits using forward finite differences
** Extended gsl_sf_coupling_3j to allow larger range and to handle
the special case (ja jb jc; 0 0 0)=0 when ja+jb+jc is odd
** Fixed gsl_sf_mathieu_se_array to return zero when the order is zero
[bug #33679].
** Fixed overflow in gsl_sf_lncosh for large negative x (x<-354).
** Improved gsl_ran_negative_binomial_pdf to avoid underflow/overflow
for large arguments.
** Multisets now allow k strictly greater than n.
** Fixed gsl_matrix_complex_fwrite/fread failure for noncontiguous
matrices (Matthias Sitte).
* What was new in gsl-1.15:
** Added Tuomo Keskitalo's new ode branch ode-initval2 with a
gsl_odeiv2 prefix. This provides proper support for implicit
solvers. It is intended to be the new default for differential
equations. The existing gsl_odeiv routines will be retained for
binary compatibility but their interface will be deprecated.
** Added new gsl_integrate_cquad routines for robust integration of
difficult functions using the doubly-adaptive CQUAD algorithm
(Pedro Gonnet).
** Added error checking to CBLAS functions (José Luis García Pallero)
** Added a new function gsl_integration_glfixed_point to return
ordered Gauss-Legendre points and weights contained within a
gsl_integration_glfixed_table [bug #32237].
** Added a new function gsl_interp_type_min_size to return the size of
an interpolation type.
** Added a function gsl_pow_uint(x,n) to compute x^n for unsigned
exponents (needed when n exceeds the range of signed integers).
** Added new routine gsl_linalg_complex_cholesky_invert to handle the
matrix inversion for complex Cholesky decompositions (Huan Wu).
** Added the functions gsl_vector_equal(x,y) and gsl_matrix_equal(x,y)
for testing equality of two vectors or matrices.
** Added function gsl_eigen_nonsymmv_params to control the balancing
transformation for eigenvector calculations. Balancing is now
turned off by default for gsl_eigen_nonsymmv.
** It is now possible to choose an alternative cblas library via
pkg-config using the GSL_CBLAS_LIB environment variable or
the pkg-config --define-variable option.
** The jacobi method gsl_eigen_jacobi now uses the norm of the
off-diagonal elements for its convergence criterion, as in
algorithm 8.4.3 of Golub and van Loan.
** The newton multiroot solvers now return an error when a singular
jacobian is detected.
** The interpolation functions now return NaN and when x is out of range,
instead of extrapolating.
** The gsl_multimin_fdfsolver multidimensional minimisers now return
GSL_ENOPROG immediately if the generated trial point does not
differ from the initial point (to machine precision), avoiding
unnecessary further iterations.
** Extended the range of gsl_sf_bessel_lnKnu_e by rescaling
intermediate results to avoid internal overflows [bug #31528].
** Improved the result of gsl_sf_atanint_e for large arguments by
adding the first order 1/x correction term. [bug #29562]
** Fixed the gsl_rng_ranlxs generators to enforce a maximum seed value
of 2^31-1. Larger seed values corrupted the random number state
and caused out of range values to be returned.
** Fixed gsl_ran_chisq_pdf(x,nu) to return correct result of 1/2
instead of 0 when x=0 and nu=2, and +inf when x=0 and nu<2.
** Fixed gsl_pow_int(x,n) to avoid an infinite loop when n=INT_MIN due
to wrapping of signed integers.
** Fixed gsl_sf_hyperg_2F1(a,b,c,x) to avoid returning NaN for
arguments |a|>10. [bug #24812]
** Avoid spurious underflow return code in gsl_sf_beta_inc_e when
intermediate underflow does not affect the result. [bug #30933]
** Avoid segfault in Chebyshev series derivatives gsl_cheb_calc_deriv
for n=1. [bug #29139]
* What was new in gsl-1.14:
** Upgraded to latest libtool, autoconf and automake (libtool-2.2.6b,
autoconf-2.65, automake-1.11.1). Fixes security hole in 'make
dist' (see Automake CVE-2009-4029).
** Added support for "multisets", which are similar to permutations
and combinations. A multiset is an array of k integers in the
range 0 to n-1 where each value may occur more than once. Multisets
can be used to iterate over the indices of a k-th order symmetric
tensor in n-space. (Rhys Ulerich)
** Added gsl_integrate_glfixed routines for performing fixed order
Gauss-Legendre integration
(Pavel Holoborodko, Konstantin Holoborodko, Rhys Ulerich)
** In the LMDER multi-dimensional fitting routines, the return code
GSL_ENOPROG is now used instead of GSL_CONTINUE for the case where
10 or more attempts to find a suitable trial step have been made
without success. [bug #25383]
** The confluent hypergeometric function gsl_sf_hyperg_U (a,b,x) has
been extended to support x < 0 for cases not involving
singularities in 1F1(a,b,x). [bug #27859]
** The F-distribution gsl_ran_fdist_pdf now avoids unnecessary
underflow and overflow and handles cases where n > 248. [bug
#28500]
** The SVD routines now use a scaled version of the implicit QR method
and compute the shift more reliably for values at the limit of
double precision, avoiding potential NaNs. [bug #28767]
** A compile time error is emitted if the configuration stage prevents
the functions gsl_isnan and gsl_finite from being defined.
** Added missing dereference in GSL_VECTOR_COMPLEX when not using
GSL_RANGE_CHECK [bug #28017]
** Improved the range of gsl_sf_hyperg1F1(a,b,x) when a<0,b>0. [bug
#28718]
** Added macros GSL_MAJOR_VERSION and GSL_MINOR_VERSION in
<gsl/gsl_version.h>
** Improved gsl_eigen_symmv and gsl_eigen_symm to avoid a potential
infinite loop when the tridiagonalised matrix contains very small
values. [bug #28096]
** Added functions gsl_multifit_linear_usvd and
gsl_multifit_wlinear_usvd for multilinear fitting without
column-scaling of the fit matrix.
* What was new in gsl-1.13:
** Upgraded to latest autoconf and automake (autoconf-2.64,
automake-1.11)
** Fixed the rk4 and bspline allocators to avoid invalid free()
calls under out of memory conditions. [bug #27194, #27236]
** Fixed a bug in gsl_multimin_fminimizer_nmsimplex2 where the center
and size of the simplex were not updated on contract-by-best steps,
causing failures in convergence. [bug #27180]
** Added new functions to set MISER and VEGAS Monte Carlo integration
parameters, and to examine VEGAS chi-squared value and intermediate
results.
** Added the function gsl_bspline_greville_abscissa to compute
Greville abscissae for B-splines.
** The cumulative distribution functions gsl_cdf_gumbel1_{P,Q} should
now handle a larger range of parameters without underflow and
overflow.
** The header file gsl_const_cgs.h no longer defines values for
electromagnetic units. Applications should use gsl_const_cgsm.h
instead to obtain the values in the CGS-Magnetic system. The
previous values for these units given in gsl_const_cgs.h were
ill-defined as the type of CGS electromagnetic system was
unspecified (the values were a mixture of CGS units with the Ampere
of the MSKA system). The affected constants are
GSL_CONST_CGS_BOHR_MAGNETON, GSL_CONST_CGS_ELECTRON_CHARGE,
GSL_CONST_CGS_ELECTRON_MAGNETIC_MOMENT, GSL_CONST_CGS_FARADAY,
GSL_CONST_CGS_GAUSS, GSL_CONST_CGS_NUCLEAR_MAGNETON,
GSL_CONST_CGS_PROTON_MAGNETIC_MOMENT, and GSL_CONST_CGS_ROENTGEN.
** The Pochhammer functions gsl_sf_poch(a,x) and gsl_sf_lnpoch(a,x) now
handle the special cases where a and a+x are zero or negative
integers.
** The confluent hypergeometric function gsl_sf_hyperg_U (a,b,x) now
handles some cases where x=0. The case where 1+a-b is a negative
integer no longer returns an error [bug #22859] and the incorrect
termination of the series in certain cases is fixed [bug #26706].
** Added a new function gsl_poly_eval_derivs to evaluate a polynomial
and its derivatives simultaneously.
** Added a new univariate minimisation algorithm
gsl_min_fminimizer_quad_golden which is a variant of Brent's
algorithm with safeguarded step-length adjustment.
** Added a new Nelder-Mead minimiser gsl_multimin_fminimizer_nmsimplex2rand
which uses a randomly oriented simplex rather than one fixed on
the coordinate axes [bug #25077]
** The texinfo file now uses the dircategory "Software libraries" from
the Free Software Directory, as recommended in the Texinfo manual.
** The function gsl_ran_exponential now includes zero in its output
range. [bug #25039]
** All functions for freeing allocated memory now accept a NULL
pointer, following the standard C convention for free(). [bug
#25319]
** The function gsl_sum_levin_u_accel now handles the special case
c_0 + 0 + 0 + 0 + .... that occurs when summing power series
c_n*x^n with x=0. [bug #26807]
** The functions gsl_linalg_LU_solve, gsl_linalg_LU_svx,
gsl_linalg_LU_refine, gsl_linalg_LU_invert and their complex
equivalents now return an error for singular matrices.
** The multifit LMDER hybrid solvers now check the return code of the
user-supplied function in the gsl_multifit_fdfsolver_set
method. [bug #26871]
** Improved the implementation of gsl_ran_discrete_preproc to avoid
internal errors due to inconsistencies from excess precision on
some platforms. [bug #26502]
** Corrected gsl_sf_hyperg_2F1(a,b,c,x) to not give a domain error in
the case where c is a negative integer and the series terminates
with a finite result.
** The C99 inline keyword is now supported, in addition to the
previously supported GNU-style inline.
** Modified gsl_poly_complex_solve_cubic and gsl_poly_solve_cubic to
avoid returning NaNs in cases where excess precision causes a
change in the number of roots.
** Fixed incorrect length check in gsl_blas_drotm. [bug #26503]
** Fixed gsl_odeiv_step_gear2 to restore y on step failure
** gsl_odeiv_evolve_apply now restores the correct value of t on step
failures [bug #26255].
** Using make install prefix=DIR now puts correct paths in package
config files gsl-config and gsl.pc
** Modified gsl_monte_vegas to work around pow() function inaccuracies
on MinGW [bug #25413].
** Increased the number of terms in gsl_sf_mathieu_a and
gsl_sf_mathieu_b to improve convergence in difficult regions [bug
#25075]
* What was new in gsl-1.12:
** Upgraded to latest libtool, autoconf and automake (libtool-2.2.6,
autoconf-2.63, automake-1.10.2)
** Improved the convergence of gsl_sf_gamma_inc_P for x/a ~=~ 1 and
large x,a. Fixes problems with large arguments in cdf functions
such as gsl_cdf_chisq_Pinv(x,nu) [bug 24704].
** Fixed gsl_ran_gamma_knuth to handle the case of a >= UINT_MAX [bug
#24897]
** Added gsl_bspline_eval_deriv to compute bspline derivatives
(Rhys Ulerich)
** Added a faster simplex mininimser gsl_multimin_fminimizer_nmsimplex2
which is O(N) instead of O(N^2) [bug #24418]
** Improved the original chi-squared formula in gsl_monte_vegas to
avoid catastrophic cancellation [bug #24510]. The previous formula
could return incorrect or negative values for relative errors <
1e-8, which could occur when integrating very smooth functions.
** Added new auxiliary functions gsl_cheb_order, gsl_cheb_size,
gsl_cheb_coeffs for Chebyshev series [bug #21830]
** Updated license of the reference manual to GNU FDL version 1.3.
** Fixed a bug where the gsl_isinf function would return +1 for -Inf
on systems where isinf(-Inf) returns the non-standard value +1.
[bug #24489]
** Added missing functions gsl_vector_complex_{isnonneg,add,sub,mul,
div,scale,add_constant} and gsl_matrix_complex_float_isnonneg [bug
#22478]
** Cross compilation should now work for x86 hosts.
** Fixed a bug in gsl_interp_accel_find() where values lying on the
upper boundary between interpolation points could return the index
from the lower side. [bug #24211]
** Fixed gsl_linalg_solve_cyc_tridiag so that its output respects the
solution vector's stride. Previously the x_stride value was ignored
causing the output to be incorrect for non-unit stride. [bug #24162]
** Corrected a bug in the series calculation of gsl_sf_ellint_Kcomp
for k close to 1. [bug #24146]
** Extended gsl_linalg_QRPT_update to handle rectangular matrices.
Corrected definition of the update formula in the manual for
both gsl_linalg_QR_update and gsl_linalg_QRPT_update.
** Added routine gsl_linalg_cholesky_invert
** Fixed a bug the simplex algorithm which caused the second highest
point to be incorrectly equal to the first when the first value was
the highest, which could cause suboptimal convergence. [bug #23192]
** Fixed a problem with convergence for inverse gamma and chisq
distribitions, gsl_cdf_gamma_{P,Q}inv and gsl_cdf_chisq_{P,Q}inv.
[bug #23101]
** Improved the handling of constant regions in Vegas by eliminating
spurious excess precision when computing box variances.
** Fixed a potential division by zero in gsl_monte_miser when the
left/right weight factors decrease below 1.
** Fixed incorrect dimensions check in gsl_matrix_sub{row,column}
* What was new in gsl-1.11:
** The GSL repository and bug database are now hosted at Savannah
http://savannah.gnu.org/projects/gsl/
** Upgraded to latest libtool, autoconf and automake (libtool-2.2,
autoconf-2.61, automake-1.10.1)
** Fixed underflow in ODE adaptive step size controller that could
cause step size to decrease to zero (bug #21933).
** Improved the handling of the asymptotic regime in gsl_sf_bessel_jl.
** Improved the handling of large arguments in cumulative distribution
functions using the incomplete beta function, such as gsl_cdf_fdist_P.
** Fixed overflow bug in gsl_cdf_hypergeometric_{P,Q} for large
arguments (bug #22293).
** gsl_ran_gaussian_ziggurat now handles generators with different
ranges explicitly, to minimise the number of function calls
required (bug #21820). Also fixes bug #22446 (rng limit in
gsl_ran_chisq()).
** Added missing error terms in gsl_sf_exp_mult_e10_e to prevent
the error being underestimated (bug #22041).
** Updated some constants to the CODATA 2006 values.
** The hypergeometric function gsl_sf_hyperg_2F1 now handles the case
where x==1.
** Fixed a bug in the brent minimiser which prevented optimal convergence.
** Added functions for evaluating complex polynomials
** The convergence condition for gsl_multiroots_test_delta now accepts
dxi == 0.
** Improved functions gsl_ldexp and gsl_frexp to handle the full range
of double precision numbers in all cases.
** Added new quasi random generators gsl_qrng_halton and
gsl_qrng_reversehalton which support dimensions up to 1229.
** Added function gsl_multifit_linear_residuals for computing the
residuals of the fit
* What was new in gsl-1.10:
** License updated to GNU GPL version 3.
** Added support for generalized eigensystems
** Added function gsl_stats_correlation to compute Pearson correlation
of two datasets
** Added the new function gsl_sf_expint(n,x) for computing the n-th
order exponential integral.
** Added functions gsl_vector_isnonneg and gsl_matrix_isnonneg.
** Added functions gsl_matrix_subrow and gsl_matrix_subcolumn
** Extended Cholesky routines to complex matrices
** Added support in gsl_ieee_set_mode for controlling SSE exceptions
and rounding through the MXCSR control word on x86 processors.
** The autoconf macro AM_PATH_GSL has been renamed to AX_PATH_GSL, to
avoid conflicts with the autoconf namespace.
** Improved handling of underflow in gsl_eigen_symm.
** The function gsl_multiroot_fdjacobian now returns the error code
GSL_ESING if any of the columns of the computed jacobian matrix are
zero. This may occur if the step size of the derivative is too small.
** Extended the function gsl_sf_beta_inc(a,b,x) to handle cases where
a<0 or b<0.
** Fixed the round-off error estimate in gsl_deriv_{central,backwards,
forward} to correctly account for numerical error in the step-size h.
** Fixed gsl_cdf_beta_Pinv, gsl_cdf_gamma_Pinv, gsl_cdf_beta_Pinv to
avoid returning spurious values for large parameters when the
iteration did not converge. If the iteration cannot converge, GSL_NAN
is returned.
** gsl_ran_dirichlet now handles smaller values of alpha[] without
underflow, avoiding a NaN in the returned value.
** The SVD routines now avoid underflow in the Schur decomposition for
matrices with extremely small values <O(1e-150).
** gsl_complex_pow now returns 0^0=1 (instead of zero) to match the usual
pow function, and handles z^(1,0) and z^(-1,0) as special cases.
** Fixed a bug in the set function for multifit lmder solver so that
previous values are cleared correctly.
** Improved the function gsl_log1p to prevent possible loss of
accuracy caused by optimisations.
** Improved the convergence test in the Lambert functions to take
account of finite precision and avoid possible failure to converge.
** The configure script no longer redefines finite() to isfinite() as
a workaround for missing finite(), as this caused problems on Solaris.
If finite() is not present gsl_finite() will be used instead.
** Improved the accuracy of the generalised laguerre polynomials for
large n when alpha=0.
** The functions gsl_{isnan,isinf,finite} will now always use the
system versions of isnan, isinf and finite if they are available.
Previously the portable GSL implementations were used whenever the
platform supported IEEE comparisons. The portable gsl_isinf function
now returns -1 instead of +1 for -Inf, in line with recent versions of
the GNU C Library.
* What was new in gsl-1.9:
** Fixed the elliptic integrals F,E,P,D so that they have the correct
behavior for phi > pi/2 and phi < 0. The angular argument is now
valid for all phi. Also added the complete elliptic integral
gsl_sf_ellint_Pcomp.
** Added a new BFGS minimisation method gsl_multimin_fdfminimizer_vector_bfgs2
based on the algorithm given by R.Fletcher in "Practical Methods of
Optimisation" (Second edition). This requires substantially fewer
function and gradient evaluations, and supercedes the existing BFGS
minimiser.
** The beta functions gsl_sf_beta_e(a,b) and gsl_sf_lnbeta_e(a,b) now
handle negative arguments a,b. Added new function gsl_sf_lnbeta_sgn_e
for computing magnitude and sign of negative beta values, analagous to
gsl_sf_lngamma_sgn_e.
** gsl_cheb_eval_mode now uses the same error estimate as
gsl_cheb_eval_err.
** Improved gsl_sf_legendre_sphPlm_e to avoid underflow with large
arguments.
** Added updated Knuth generator, gsl_rng_knuthran2002, from 9th
printing of "The Art of Computer Programming". Fixes various
weaknesses in the earlier version gsl_rng_knuthran. See
http://www-cs-faculty.stanford.edu/~knuth/news02.htm
** The functions gsl_multifit_fsolver_set, gsl_multifit_fdfsolver_set
and gsl_multiroot_fsolver_set, gsl_multiroot_fdfsolver_set now have a
const qualifier for the input vector x, reflecting their actual usage.
** gsl_sf_expint_E2(x) now returns the correct value 1 for x==0,
instead of NaN.
** The gsl_ran_gamma function now uses the Marsaglia-Tsang fast gamma
method of gsl_ran_gamma_mt by default.
** The matrix and vector min/max functions now always propagate any
NaNs in their input.
** Prevented NaN occuring for extreme parameters in
gsl_cdf_fdist_{P,Q}inv and gsl_cdf_beta_{P,Q}inv
** Corrected error estimates for the angular reduction functions
gsl_sf_angle_restrict_symm_err and gsl_sf_angle_restrict_pos_err.
Fixed gsl_sf_angle_restrict_pos to avoid possibility of returning
small negative values. Errors are now reported for out of range
negative arguments as well as positive. These functions now return
NaN when there would be significant loss of precision.
** Corrected an error in the higher digits of M_PI_4 (this was beyond
the limit of double precision, so double precision results are not
affected).
** gsl_root_test_delta now always returns success if two iterates are
the same, x1==x0.
** A Japanese translation of the reference manual is now available
from the GSL webpage at http://www.gnu.org/software/gsl/ thanks to
Daisuke TOMINAGA.
** Added new functions for basis splines, see the "Basis Splines"
chapter in the GSL Reference Manual for details.
** Added new functions for testing the sign of vectors and matrices,
gsl_vector_ispos, gsl_vector_isneg, gsl_matrix_ispos and
gsl_matrix_isneg.
** Fixed a bug in gsl_sf_lnpoch_e and gsl_sf_lnpoch_sgn_e which caused
the incorrect value 1.0 instead of 0.0 to be returned for x==0.
** Fixed cancellation error in gsl_sf_laguerre_n for n > 1e7 so that
larger arguments can be calculated without loss of precision.
** Improved gsl_sf_zeta_e to return exactly zero for negative even
integers, avoiding less accurate trigonometric reduction.
** Fixed a bug in gsl_sf_zetam1_int_e where 0 was returned instead of
-1 for negative even integer arguments.
** When the differential equation solver gsl_odeiv_apply encounters a
singularity it returns the step-size which caused the error code from
the user-defined function, as opposed to leaving the step-size
unchanged.
** Added support for nonsymmetric eigensystems
** Added Mathieu functions
* What was new in gsl-1.8:
** Added an error check to trap multifit calls with fewer observations
than parameters. Previously calling the multifit routines with n<p
would cause invalid memory access.
** Added the Debye unit to physical constants.
** Added cumulative distribution functions for the discrete
distributions, including binomial, poisson, geometric, negative
binomial, pascal and hypergeometric.
** Added the functions gsl_cdf_beta_{Pinv,Qinv} and
gsl_cdf_fdist_{Pinv,Qinv} for computing the inverse of the cumulative
beta and F distributions.
** Added the multilinear fit estimator function gsl_multifit_linear_est
for computing model values and their errors.
** Avoid division by zero in gsl_multimin_fdfminimizer_vector_bfgs
if the step-size becomes too small.
** Users on DEC Alpha systems will need to specify their desired IEEE
arithmetic options via CFLAGS when building the library, as these are
no longer added automatically.
** Added new random variate generators gsl_ran_gaussian_ziggurat
and gsl_ran_gamma_mt for the Gaussian and Gamma distributions based on
the Marsaglia-Tsang ziggurat and fast gamma methods.
** Improved the speed of the exponential power distribution
gsl_ran_exppow.
** Improved the speed of the Gaussian ratio method by adding quadratic
bounds in gsl_ran_gaussian_ratio_method.
** Added an extra term to the taylor series of the synchrotron
functions gsl_sf_synchrotron_1 and gsl_sf_synchrotron_2 for small x to
ensure smooth matching with the chebyshev expansion.
** The binomial pdf gsl_ran_binomial_pdf now handles the cases p=0
and p=1 and is more accurate for the case of small p with k=0.
** Fixed the spherical bessel function gsl_sf_bessel_jl_e) to limit
the use of gsl_sf_bessel_Jnu_asympx_e to the range x>100*l*l to
satisfy he requirement x>>l*l in the asymptotic expansion.
** The scaled bessel function gsl_sf_bessel_In_scaled now handles
larger arguments x > 1e7 correctly for n < 150 using the uniform
asymptotic expansion instead of the continued fraction expansion.
** The functions gsl_stats_min/max now return NaN if the data contains
NaN. Similarly, the functions gsl_stats_min/max_index return the index
of the first occurring NaN in the data when it contains a NaN.
** Fixed an invalid memory access that caused incorrect results for
the special case in periodic cubic spline interpolation of 3 points.
** Added Debye functions for n=5 and n=6
** Added the missing functions gsl_spline_name() and
gsl_spline_min_size()
** The function gsl_rng_uniform_int(r,n) now returns an error for n=0,
which can occur when passing an unsigned integer value of 2^32.
* What was new in gsl-1.7:
** Switched gsl_randist_binomial to use the faster binomial random
variate TPE algorithm by default. The previous binomial variate
algorithm is available as gsl_randist_binomial_knuth. This will
result in a different sequence of binomial variates in programs using
this function.
** Improved the algorithm for gsl_sf_elljac_e to avoid cancellation
errors near quarter periods.
** Fixed the branch selection in gsl_sf_gamma_inc_Q_e to avoid
inaccurate results for large a,x where x~=~a.
** The multilinear fitting functions now have forms which accept a
user-specified tolerance for the SVD cutoff and return the
corresponding effective rank of the design matrix.
** The quadratic solvers in poly/ now handle linear equations
gracefully (i.e. quadratrics with a leading coefficient of zero).
** The output of "make check" now only shows test failures by default,
to reduce the amount of output. Set the environment variable
GSL_TEST_VERBOSE=1 to display all the output. To assist debugging,
the test number of each failure is shown in square brackets at the
line-end [NNNN].
** Fixed bugs in gsl_linalg_SV_decomp_jacobi which caused
incorrect results for some input matrices.
** Bessel, coulomb, dilogarithm and legendre_H3d functions now use
hypot internally to avoid overflow when computing terms like
sqrt(1+x*x).
** The 'Usage' chapter of the reference manual now explains how to
handle deprecated functions using the GSL_DISABLE_DEPRECATED macro.
** The conflicting enum definitions for 'forward' and 'backward' in
gsl_ftt.h and gsl_wavelet.h are deprecated. User code should switch
to the new definitions gsl_fft_forward, gsl_fft_backward,
gsl_wavelet_forward and gsl_wavelet_backward. Selectively define
GSL_DISABLE_DEPRECATED before including the headers to use the new
definitions on either or both modules.
** Fixed an error in the the brent minimisation algorithm. Iterations
should now follow Brent's original description correctly.
** The bound coulomb function gsl_sf_hydrogenicR_e no longer reports
an underflow for exact zeroes of the wavefunction.
** gsl_linalg_SV_decomp_jacobi now reports an error for the
unimplemented case M<N correctly.
** Fixed conformance test for the SYRK and HERK blas functions
gsl_blas_{s,d,c,z}syrk and gsl_blas_{c,z}herk for non-square matrices.
** Configure now checks for presence of ieeefp.h if needed.
** Differential equation solvers now propagate error codes returned
from user-defined functions to the top-level in all cases.
** Sort functions now avoid an infinite loop if Nans are present in
the input vector. The order of nans in the output is undefined,
although other elements will be sorted correctly.
* What was new in gsl-1.6:
** Added a new wavelet directory, with 1-dimensional and 2-dimensional
discrete wavelet transforms.
** Added support for LQ and P^T LQ decompositions. To find the QR
decomposition of large systems (M>>N) use the LQ decomposition,
solving the transpose of the original system. This allows more
efficient memory access, and is useful for solving large least-squares
problems.
** Fixed a bug in the SYRK and HERK blas functions gsl_blas_{s,d,c,z}syrk
and gsl_blas_{c,z}herk which caused invalid memory access for non-square
matrices.
** Fixed a bug in gsl_swap_vectors which caused it to return incorrect
results when swapping vectors with different strides.
** Corrected the error estimate for gsl_cheb_eval_n_err to use
evaluation order instead of the approximation order.
** Improved the reliability of the gsl_sf_gamma_inc family of
functions.
** Equal abscissae are now handled gracefully in the cspline and
periodic cspline interpolations.
** Removed potential cancellation error in calculation of uniform
histogram ranges.
** Improved numerical stability of integration for akima and cspline
interpolation.
** Differential equation solvers now handle error codes returned from
user-defined functions.
** Improved error estimates in ode-initval solvers, and provide exact
derivatives on output. Added new semi-implicit ode-initval solver,
gsl_odeiv_step_rk2simp.
** Added missing function definition for gsl_sf_psi_1.
** Fixed the function gsl_sf_expint_Ei_scaled to call
gsl_sf_expint_Ei_scaled_e instead of gsl_sf_expint_Ei_e.
** Added cumulative distribution function for exponential power
distribution.
** The functions gsl_cdf_beta_P and gsl_cdf_beta_Q now return
consistent results of 0 or 1 for out of range values, x<0 and x>1,
rather than 0 for left and right tails simultaneously.
** The Jacobi eigensolvers gsl_eigen_jacobi and gsl_eigen_jacobi_invert
have new implementations from Golub and Van Loan.
** The standard output and standard error streams are now flushed by
the default error handler before the program aborts, in order to
ensure that error messages are properly displayed on some platforms.
* What was new in gsl-1.5:
** Multifit routines now handle iterations where |f| is already
minimised to zero, without division by zero.
** Fixed the singular value tolerance test in the multifit covariance
calculation from < to <= to match the original MINPACK code.
** The macro HAVE_INLINE is now tested with #ifdef instead of #if as
in versions prior to 1.4, to match the documentation, and the macro
GSL_RANGE_CHECK_OFF now works correctly. An alternative macro
GSL_RANGE_CHECK={0,1} can be used to control range-checking.
** Fixed a potential array overflow in gsl_ran_landau.
** Fixed a small discrepancy in the tolerance calculation of the
one-dimensional brent minimiser.
** Numerical derivatives should now be calculated using the
gsl_deriv_forward, gsl_deriv_central and gsl_deriv_backward functions,
which accept a step-size argument in addition to the position x. The
original gsl_diff functions (without the step-size) are deprecated.
** Corrected documentation for gsl_ran_hypergeometric_pdf()
** The tridiagonal matrix solvers gsl_linalg_solve_symm_tridiag,
gsl_linalg_solve_tridiag, gsl_linalg_solve_symm_cyc_tridiag,
gsl_linalg_solve_cyc_tridiag now use the GSL_ERROR macro to report
errors, instead of simply returning an error code. The arguments to
these functions must now use exact lengths with no additional
elements. For cyclic systems all vectors must be of length N, for
tridiagonal systems the offdiagonal elements must be of length N-1.
** The singular value decomposition routines gsl_linalg_SV_decomp and
gsl_linalg_SV_decomp_mod now handle the SVD of a column vector (N=1,
arbitrary M), which can occur in linear fitting.
** Restored missing header files gsl_const_mks.h and gsl_const_cgs.h.
The incorrect values of the electrical units for gsl_const_cgs
(VACUUM_PERMEABILITY and VACUUM_PERMITTIVITY) have been removed.
** Fixed gsl_linalg_SV_decomp() to avoid an infinite loop when
computing the SVD of matrices containing Inf and Nan.
** Fixed gsl_linalg_balance_columns() to avoid an infinite loop when
rescaling matrices containing Inf and NaN.
** Fixed header file <gsl/gsl_sf_log.h> to include declarations for
error codes in inline versions of gsl_sf_log functions
** Fixed header file <gsl/gsl_const.h> to include new MKSA and CGSM
header files.
** Added Stefan-Boltzmann constant and Thomson cross section to
physical constants
* What was new in gsl-1.4:
** Added cumulative distribution functions and their inverses for the
continuous random distributions including: gaussian, lognormal, gamma,
beta, cauchy, laplace, chisq, exponential, gumbel, weibull,
F-distribution, t-distribution, logistic, pareto and rayleigh.
** Added faster binomial random variates using the TPE rejection
algorithm, in the function gsl_randist_binomial_tpe.
** Added new functions gsl_rng_fwrite and gsl_rnd_fread for storing
the state of random number generators in a file.
** Added a new function gsl_combination_memcpy()
** Corrected values of electrical constants in CGS units. To take
account of different electrical systems of units the values are now
prefixed by GSL_CONST_MKSA (for the SI Metre, Kilogram, Second, Ampere
system) or GSL_CONST_CGSM (for the Centimetre, Gram, Second, Magnetic
system with the Gauss as the fundamental unit of magnetic field
strength). The previous GSL_CONST_MKS and GSL_CONST_CGS prefixes have
been removed, as have the permeability and permittivity constants in
the CGS system since this uses different defining equations.
** Fixed bugs in the random number generators gsl_rng_fishman18,
gsl_rng_fishman2x, and gsl_rng_knuthran2 which caused them to return
incorrect results. Minor corrections were made to the parameters in
the other Knuth generators borosh13, coveyou, fishman20, lecuyer21,
and waterman14.
** Fixed a missing transpose bug in the gsl_linalg_QR_QRsolve
and gsl_linalg_QRPT_QRsolve routines which were computing the
solution to Q^T R x = b instead of Q R x = b.
** Fixed gsl_sf_gammainv to return zero instead of a domain
error for arguments corresponding to singularities in gamma.
** Fixed a bug in the simplex minimization algorithm which
caused it to fail to find the second highest point correctly
when searching the set of simplex points.
** Fixed a bug in the conjugate gradient minimizers conjugate_pr,
conjugate_fr and vector_bgfs which caused the search
directions to be updated incorrectly.
** Fixed a bug in gsl_sf_psi_1_int(1) which caused it to
return the incorrect sign for psi(1,1).
** Fixed the simulated annealing routine gsl_siman_solve to use the
parameter iters_fixed_T for the number of iterations at fixed
temperature instead of n_tries.
** Fixed a bug in gsl_combination_valid which caused it to return the
incorrect status.
** Fixed a bug in gsl_permutation_canonical_to_linear which caused the
output to always be zero, and the input permutation to be incorrectly
replaced by the output.
** Fixed a bug is gsl_ran_discrete which could cause uninitialised
data to be returned for some distributions.
** Fixed the dependencies for gsl_chebyshev.h to include gsl_math.h.
** Fixed a bug in gsl_complex_arccsc_real which caused it to return
the incorrect sign for the imaginary part when -1<x<0.
** Fixed a bug in the QAWC Cauchy integration routine which could
allow the singularity to fall on an interval boundary, leading to
division by zero.
** Improved gsl_sf_gamma_inc_P(a,x) to avoid a domain error for x<<a
when a>10.
** Improved the accuracy of gsl_sf_coupling_3j for large arguments.
** Improved the performance of gsl_sf_choose(m,n) by separating the
calculations for small and large arguments.
** On platforms without IEEE comparisons gsl_{isnan,isinf,finite} will
fall back to the system versions of isnan, isinf and finite if
available.
** gsl_linalg_householder_hv now uses BLAS routines internally
** The script configure.in is now compatible with autoconf-2.50 and
later.
** Reduced the memory usage of the multifit algorithms from MxM to MxN
for large M by performing the QR decomposition of the Jacobian
in-place.
** IEEE modes now use the C99 fenv.h functions when platform spectific
functions are not available.
* What was new in gsl-1.3:
** Changed interface for gsl_sf_coupling_6j...(...). The old functions
actually calculated 6j for a permutation of the arguments (that
related to Racah W). This was incorrect and not consistent with
the documentation. The new versions calculate < {a,b,c}, {d,e,f} >,
as stated in the documentation. The old versions are still available
as gsl_sf_coupling_6j_INCORRECT...(...), though they are deprecated
and will be removed at some point in the future.
** Added new functions for computing Em(x)=exp(-x)*Ei(x), the modified
(scaled) form of the exponential integral, gsl_sf_expint_E1_scaled,
gsl_sf_expint_E2_scaled, gsl_sf_expint_Ei_scaled.
** Fixed compilation problems with gcc -ansi and other ANSI compilers.
** Fixed uninitialized memory access in the Niederreiter quasi-random
number generator.
** Fixed the eigenvalue routines to prevent an infinite loop for Inf
or NaN entries in matrix.
** Fixed a bug in the multifit and multiroots allocation routines
which cause them to fail to report some out of memory conditions.
** Fixed a bug in the seeding for the random number generator
gsl_rng_taus2 which affected a small number of seeds.
** Modified the complex householder transforms to avoid division by
zero, which could cause NaNs to be returned by the gsl_eigen_hermv
eigenvalue decomposition.
** The Nelder-Mead simplex algorithm for multidimensional
minimisation has been added.
** The random number distributions now include the Dirichlet and
Multinomial distributions.
** Added a new function gsl_fcmp for approximate comparison of
floating point numbers using Knuth's algorithm.
** Added new functions gsl_ldexp and gsl_frexp as portable
alternatives to ldexp() and frexp().
** Fixed a bug in gsl_linalg_bidiag_unpack_B which was returning
incorrect results for the superdiagonal.
** Fixed a bug in the acceptance condition for simulated annealing
** Ordinary differential equations can now be solved using a different
absolute error for each component with gsl_odeiv_control_scaled_new().
** Upgraded to libtool-1.4.3
* What was new in gsl-1.2:
** Added new functions for combining permutations, converting between
cyclic and linear representations, and counting cycles and inversions.
** New multiroot functions now allow access to the current values of f
and dx.
** The default error handler now outputs a explanatory message before
aborting.
** Extended gsl_linalg_SV_decomp to handle exact zeroes in the
singular values, and added tests for 3x3 matrices.
** Fixed a bug in gsl_linalg_SV_decomp which caused singular values to
be sorted incorrectly.
** Fixed a bug in gsl_linalg_solv_symm_cyc_tridiag which caused it to
produce incorrect results.
** Added nonsymmetric tridiagonal solvers gsl_linalg_solve_tridiag and
gsl_linalg_solve_cyc_tridiag.
** The declarations used to export static objects can now be
controlled through a macro GSL_VAR and the header file
<gsl/gsl_types.h>.
** The simulated annealing routine gsl_siman_solve now keeps track of
the best solution so far.
** The values of the physical constants have been updated to the
CODATA 1998 recommendations.
** Added new physical constants, newton, dyne, joule, erg and
power-of-ten prefixes, Mega, Giga, Tera, etc.
** The error estimate for the elliptic function gsl_sf_ellint_Kcomp_e
has been improved to take account of numerical cancellation for small
arguments.
** The domain of gsl_sf_psi_1piy has been extended to negative y.
** Fixed memory leak in the Chebyshev module.
** The seeding procedure of mt19937 has been updated to the latest
version from Makoto Matsumoto and Takuji Nishimura (Jan 2002). The
original seeding procedure is available through the generator
gsl_rng_mt19937_1999.
** A new random number generator gsl_rng_taus2 has been added to
correct flaws in the seeding procedure of gsl_rng_taus, as described
in an erratum to the original paper of P. L'Ecuyer.
** Added missing declaration for the generator gsl_rng_mt_19937_1998.
** Added missing quasi-random number generator function gsl_qrng_init.
** Removed unnecessary endpoint subtraction in chebyshev-based
QUADPACK routines to avoid possible loss of precision.
** Fixed bug in gsl_interp_cspline_periodic which caused a
discontinuity in the derivative near the boundary.
** The function gsl_min_fminimizer_minimum has been renamed to
gsl_min_fminimizer_x_minimum for consistency (the old function name is
still available but is deprecated). Additional functions have been
added for accessing the function values at the minimum and endpoints
of the bounding interval.
** The KNOWN-PROBLEMS file of "make check" failures has been replaced
by a BUGS file, since we now require "make check" to work correctly
for stable releases.
* What was new in gsl-1.1.1:
** Fixes to histogram2d stat functions
** Added missing prototypes for complex LU determinant functions
** Improved error handling in multifit routines
** Added check to avoid division by zero for rank-deficient matrix in
multifit iteration
* What was new in gsl-1.1:
** The permutation module now includes a copy function
gsl_permutation_memcpy
** The implementation of gsl_sf_gamma_inc has been improved and now
avoids problems caused by internal singularities which occurred in the
series expansion for some combinations of parameters.
** IEEE comparisons of infinities and NaNs are tested during the
configure stage and the functions gsl_isnan, gsl_isinf and gsl_finite
are only compiled on platforms which support the necessary tests.
** The histogram routines now include a sum function,
gsl_histogram_sum for computing the total bin sum, and additional
statistics functions for 2d histograms.
** Internal error checking of user-defined functions has been improved
in the multiroots functions.
** Constants now include the Bohr Radius and Vacuum Permittivity.
** Range checking is now turned off when building the library, but is
still on by default when compiling user applications.
** A combinations directory has been added for generating combinations (n,k).
** The gamma function now returns exact values for integer arguments.
** Fixed bugs in gsl_sf_hyperg_1F1_int and gsl_sf_hyperg_1F1.
** Fixed internal error handling in gsl_sf_laguerre_n to allow
recovery from overflow.
** Several routines for handling divided difference polynomials have
been added to the poly/ directory.
** The interpolation routines now include polynomial interpolation,
based on divided-differences.
** Added new random number generators from Knuth's Seminumerical
Algorithms, 3rd Edition: borosh13, coveyou, fishman18, fishman20,
fishman2x, knuthran, knuthran2, lecuyer21, waterman14.
** Changed divisor in random number generator gfsr4 from 2^32-1 to
2^32 to prevent exact value of 1.0 from being returned, as specified
in the documentation.
* What was new in gsl-1.0:
** First general release.
** Increased the maximum number of iterations in gsl_poly_complex_solve()
from 30 to 60.
* What was new in gsl-0.9.4:
** Reorganized the multmin functions to use the same interface as the
other iterative solvers.
** Added histogram _alloc functions for consistency, in addition to the
existing _calloc functions.
** Renamed all the gsl_multimin functions to be consistent with the
rest of the library. An underscore has been removed from _minimizer
in all the function names.
** Renamed the function gsl_sf_coulomb_CL_list to gsl_sf_coulomb_CL_array
** A bug in the multimin functions where the function parameters
(params) were omitted has been fixed.
** A bug in the nonlinear minimization routines has been fixed, which
could prevent the algorithms from converging. Additional tests from
the NIST reference datasets have been added and these now agree with
MINPACK.
** All the physical constants and conversion factors are now defined as
real numbers to avoid potential problems with integer arithmetic.
** The ODE evolution routines now allow for negative step sizes, and
integrating backwards as well as forwards.
** The implicit Burlisch-Stoer ODE algorithm 'bsimp' now detects
singularities and forces a reduction in step size, preventing runaway
instabilities.
** Fixed a bug in the ODE evolution function gsl_odeiv_evolve_apply
which could cause an erroneous value to be returned if the step size
is reduced on the last step.
* What was new in gsl-0.9.3:
** Routines for complex LU decomposition are now available, allowing
the solution of systems of equations with complex coefficients.
** Matrix views of vectors now correctly require a unit stride for the
original vector.
** Permutations can now be applied to complex arrays and vectors.
** gsl_sf_pow_int now handles the case x = 0, n < 0
** The static versions of inline functions can now be hidden by
defining the preprocessor macro HIDE_INLINE_STATIC. This is needed
for some compilers.
** The original seeding procedure of mt19937 is available through the
generator gsl_rng_mt19937_1998. The seeding procedure was flawed, but
is available for compatibility.
** Added missing functions gsl_complex_div_real and
gsl_complex_div_imag.
** Missing functions for constant vector and matrix views have now been
added.
** Statistical calculations for histograms are now available, and the
gsl-histogram command also displays the histogram mean and standard
deviation.
** The behavior of GSL_IEEE_MODE for denormalized exceptions has been
fixed on Openbsd and Netbsd.
** A pkg-config file gsl.pc is included in the distribution
** The reference manual can now be printed in @smallbook format without
overflow.
* What was new in gsl-0.9.2:
** Vector and matrix views are now compliant with the ANSI standard.
** Added Lambert functions gsl_sf_lambert_W0, gsl_sf_lambert_Wm1.
** The reference manual now uses the GNU Free Documentation License.
** Fixed a couple of bugs in the SVD routines.
** Macros for Infinity and Nan now work correctly with Microsoft Visual
C++, and a bug in the config.h file for the finite() function has been
fixed.
** Redundant entries in the test suite for the complex math functions
have been removed, making the distribution size smaller.
** Installed programs gsl-randist and gsl-histogram now use shared
libraries.
* What was new in gsl-0.9.1:
** The single precision ffts now uses float throughout, rather than
mixing float and double.
** The random number distributions now include the Landau distribution.
** The fft function interface has been reorganized, with workspaces
separate from wavetables to eliminate unnecessary recomputation of
trigonometric factors.
** The gsl_interval type has been eliminated and replaced by two double
arguments for simplicity.
** The order of the arguments to the minimization routines is no more
logical, with function values assocatied with x-values.
** Modified initialization of vector and matrix views to work with the
SunPro compiler.
** Renamed gsl_Efunc_t to gsl_siman_Efunc_t, in accordance with
namespace conventions.
** Improved accuracy and fixed bugs in gsl_sf_hyperg_1F1,
gsl_sf_bessel_I0_scaled, gsl_sf_erfc, gsl_sf_log_erfc,
gsl_sf_legendre_Q0 and gsl_sf_legendre_Q1, and gsl_sf_zeta.
** Improved IEEE compliance of special functions, overflows now return
Inf and domain errors return NaN.
** Improved checking for underflows in special functions when using
extended precision registers
* What was new in gsl-0.9:
** There is a new system of vector and matrix views. Any code using
vector and matrix views will need to be updated.
** The order of arguments of the view functions involving strides have
been changed to be consistent with the rest of the library.
** The ode solvers have been reorganized.
** There are new eigensystem routines for real symmetric and complex
hermitian matrices.
** The linear algebra directory now includes functions for computing
symmetric tridiagonal decompositions and bidiagonal decompositions.
** The svd routines now include the Golub-Reinsch and Modified
Golub-Reinsch algorithms in addition to the Jacobi algorithm.
** The interpolation directory has been reorganized and a higher-level
"spline" interface has been added which simplifies the handling of
interpolation arguments.
** IEEE support is now available on OpenBSD.
* What was new in gsl-0.8:
** The build process now uses the latest libtool and automake.
** The library should now compile with Microsoft Visual C++.
** Portable versions of the isinf, isnan and finite functions are
available as gsl_isinf(x), gsl_isnan(x) and gsl_finite(x).
** The definitions of GSL_POSINF, GSL_NEGINF and GSL_NAN no longer
cause divisions by zero during compilation.
** The gsl_interp_obj has been renamed to gsl_interp.
** The poly_eval and pow_int functions have been moved from the
specfunc directory to the poly and sys directories.
** The Chebyshev functions are now available as an independent module
in their own directory.
** The error handling conventions have been unified across the
library. This simplifies the use of the special functions.
** A full CBLAS implementation is now included for systems where ATLAS
has not been installed. The CBLAS library can also be used
independently of GSL. The organisation of the BLAS directories has been
simplified.
** IEEE support for HPUX-11, NetBSD, Apple Darwin and OS/2 are now
included.
** The library now includes implementations of log1p, expm1, hypot,
acosh, asinh, atanh for platforms which do not provide them.
** The convention for alloc and set functions has changed so that they
are orthogonal. After allocating an object it is now necessary to
initialize it.
** There is a new module for estimating numerical derivatives of functions
** There is a new module for handling data with ntuples
** The histogram lookup functions are now optimized for the case of
uniform bins, and include an inline binary search for speed.
** The Chebyschev coefficients for the QAWO algorithm are now
precomputed in a table for efficiency, rather than being computed on
the fly.
** There are several new sorting functions for selecting the k-th
smallest or largest elements of a dataset.
** Iterator functions are now available for permutations,
gsl_permutation_next and gsl_permutation_prev.
** The function gsl_complex_xy has been renamed gsl_complex_rect
** The API for simulated annealing has been changed to support search
spaces in which the points cannot be represented as contiguous-memory
data structures. gsl_siman_solve() now takes three extra arguments: a
copy constructor, a copy function and a destructor, allowing
gsl_siman_solve() to do its work with linked data structures. If all
three of these function pointers are NULL, then the traditioanl
approach of using malloc(), memcpy(), and free() with the element size
is used.
* What was new in gsl-0.7:
** Linux/PowerPC should now be well supported.
** Header files for common physical constants have been added.
** Functions linear and nonlinear regression in one or more dimensions
are now available.
** Vector and matrix views now have access to the address of the
underlying block for compatibility with VSIPL (www.vsipl.org).
** There is a new library for generating low-discrepancy quasi-random
sequences.
** The seeding procedure of the default random number generator
MT19937 has been updated to match the 10/99 release of the original
code. This fixes a weakness which occurred for seeds which were
powers of 2.
** The blas library libgslblasnative has been renamed libgslblas to avoid
confusion with system blas library
* What was new in gsl-0.6:
** The library is now installed as a single shared or static libgsl
file using libtool.
** The gsl-config script now works. There is also a gsl.m4 file which
people can use in their configure scripts.
** All header files are now in installed as pkginclude headers in a
gsl/ subdirectory.
** The header files now use extern "C" to allow them to be included in
C++ programs
** For consistency the following functions have been renamed,
gsl_vector_copy (dest, src) is now gsl_vector_memcpy (dest, src)
gsl_rng_cpy (dest, src) is now gsl_rng_memcpy (dest, src)
gsl_matrix_copy_row (v,m,i) is now gsl_matrix_get_row (v,m,i)
gsl_matrix_copy_col (v,m,j) is now gsl_matrix_get_col (v,m,j)
gsl_vector_swap is now gsl_vector_swap_elements
gsl_vector_swap_cols is now gsl_vector_swap_columns
gsl_vector_swap_row_col is now gsl_vector_swap_row_column
and the vector/matrix view allocation functions have been simplified.
** A new sort directory has been added for sorting objects and vectors.
** A permutation directory has been added for manipulating permutations
** Statistics functions now support a stride argument for generality, and
also support weighted samples and a covariance function.
** The names of the statistics functions have been reorganized for
improved clarity. Consult manual for details.
** The environment variable GSL_IEEE_MODE now uses "," as a separator
instead of ";"
** The autogen.sh script, mostly for use by developers who use the CVS
repository, now does not run configure.
** The histogram directory now has additional functions for copying
and comparing histograms, performing arithmetic on histograms and
finding maximum and minimum values. Corresponding functions have been
added for vectors and matrices.
** The linear algebra directory supports additional methods, including
rectangular QR, rectangular QRPT and Cholesky decomposition.
** Complex arithmetic (+,-,*,/) and complex elementary functions
(sqrt, log, exp, sin, cos, tan, arcsin, arccos, arctan, sinh, cosh,
tanh, arcsinh, arccosh, arctanh) are now supported.
** Multidimensional minimization methods are now available.
** The special functions directory now includes a routine for
computing the value of the incomplete beta function.
* Was new in gsl-0.5:
** There is now a KNOWN-PROBLEMS file which lists compilation problems
and test failures which are known to the developers.
** Many improvements have been made to the special functions directory.
** The extrapolations from the Levin u-transform are now more reliable.
** Linear algebra and Eigensystem routines are now available.
** ODE solvers are now available.
** Multidimensional root finding algorithms are available.
** Minimization now keeps track of function values.
** Matrices and vectors now use a BLAS compatible format, and have a
separate memory handling layer (gsl_block).
** Roots of general polynomials can now be found using gsl_poly_complex_solve
** IEEE modes support on Sparclinux, Tru64, AIX and IRIX
** We have added the second generation RANLUX generators RANLXS and RANLXD
** Minimization algorithms are available (one-dimensional)
** Documentation now works out of the box with the standard Texinfo.
** Full reimplementation of the QUADPACK integration library
** Introduced THANKS file.
We appreciate all patches from people on the net, even those which are
too small to warrant adding the author to the AUTHORS file. The
THANKS file should include everyone who sent in patches. They should
also be mentioned in the ChangeLog entry.
* What was new in gsl-0.4.1:
** Two changes not making their way into the documentation
A couple of things are not getting into the docs, so here are the
errata:
*** The FFT routines now take a stride parameter. Passing 1 for the
stride will make them behave as documented.
*** The complex numbers are now an opaque type, and no assumptions can
be made about the format in which they are stored (they are not stored
as a simple structure anymore, since that is not portable). The type
is now gsl_complex (or gsl_complex_long_double or gsl_complex_float),
and the macros to access them are
GSL_REAL(z)
GSL_IMAG(z)
GSL_COMPLEX_P_REAL(zp)
GSL_COMPLEX_P_IMAG(zp)
GSL_COMPLEX_EQ(z1,z2)
GSL_SET_COMPLEX(zp,x,y)
GSL_SET_REAL(zp,x)
GSL_SET_IMAG(zp,y)
This change in the complex number API makes it important that you
start working with 0.4.1 or later.
** 0.4.1 is being released in occasion of the Red Hat 6.0 release.
The specfunc module is still in an alpha state; if you run "make
check" in the specfunc directory you will see that some tests still
fail.
** Most Alpha specific problems have been fixed. In particular the
random number generators rand48 and ranf now work on the Alpha
** Additional random number distributions:
Rayleigh distribution
n-dimensional spherical distribution
(ie, points at random on an n-dimensional sphere)
Gaussian tail distribution
(ie, choosing values from a gaussian distribution subject to a
constraint that they be larger than some fixed value, eg 5 sigmas)
Walker's algorithm for arbitrary discrete distributions
* What was new in gsl-0.4:
** A single libgsl.a file is built in the top level directory and
installed, instead of separate .a files for each subdirectory.
** The parts of the complex struct gsl_complex, .real and .imag, are
not supported anymore. The macros GSL_REAL(z) and GSL_IMAG(z) do the
same job. All complex numbers are considered as packed arrays of
floating point numbers, for portability since the layout of structs or
arrays of structs is not guaranteed.
** The interface for matrices and vectors has changed. Vectors now
support strides, and can be used to access rows and columns of a
matrix. Many more types are available (float, double, long double,
int, long, short, char, signed and unsigned, plus complex floats,
doubles and long doubles) due to improvements in our preprocessor
template system.
** The random number generators have a completely new thread-safe
interface and have moved from the random directory to the rng
directory. Any program using random numbers will have to be
updated. You can also choose generators and seeds using the
environment variables GSL_RNG_TYPE and GSL_RNG_SEED.
** Some additional random number distributions have been added in the
randist directory. The available distributiosn are: bernoulli, beta,
binomial, cauchy, chisq, erlang, exponential, fdist, flat, gamma,
gauss, geometric, levy, logistic, lognormal, nbinomial, pareto,
poisson, sphere, tdist, twosidedexp, weibull.
** The FFT interface has be extended to support strides, but the
implementation hasn't been finished for all the cases yet, The FFT
allocation functions now return a pointer to a newly allocated
wavetable struct, instead of taking the pointer to an existing struct
as an argument.
e.g. status = gsl_fft_wavetable_alloc(n, w)
is now w = gsl_fft_wavetable_alloc(n) in accordance with usual practice
** The statistics directory now works with all the builtin
types. It has a new function for computing the lag1-autocorrelation and
an extra set of numerical accuracy tests from NIST as part of 'make
check'.
** The simulated annealing routines no longer set the random number
seed with the time of day. You'll need to reseed the generator
yourself if you want subsequent runs to use different random numbers.
** Work is in progress on a reimplementation of QUADPACK in the
`integration' subdirectory, but it is not finished yet.
** Work is in progress on reimplementations of the VEGAS and
MISER Monte Carlo algorithms in the monte' subdirectory. They work
just fine, but the code is still evolving.
** Work has started on a portable blas system in the `blas'
subdirectory.
** You can now set the IEEE arithmetic mode for your programs from the
environment variable GSL_IEEE_MODE by calling the function
gsl_ieee_env_setup(). Currently this only works with the Linux kernel,
HP-UX, SunOS4 and Solaris.
** There are some simple spline interpolation functions in the `interp'
subdir.
** The NEWS file now uses outline mode, like the Emacs NEWS file
* This covers changes made *after* the gsl-0.2 snapshot
** Added several new modules: histogram, integration, matrix, specfunc
and vectors.
** Changed libgsl_statisctics.a to libgslstatistics.a and
libgsl_siman.a to libgslsiman.a, since most of the packages don't have
the underscore. Users will have to remove the old files, unless they
do a "make uninstall" on the previous release before they install this
new one.
** Changes to the random number suite
Incorporated the gauss, poisson and exponential distributions in
the standard libgslrandom.a
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
end:
|