752:
78:
242:
Version 1.0 was released in 2001. In the following years, the library expanded only slowly; as the documentation stated, the maintainers were more interested in stability than in additional functionality. Major version 1 ended with release 1.16 of July 2013; this was the only public activity in the
721:
C++ wrappers for GSL are available. Not all of these are regularly maintained. They do offer access to matrix and vector classes without having to use GSL's interface to
246:
Vigorous development resumed with publication of version 2.0 in
October 2015, which included user contributed patches. The latest version 2.8 was released in May 2024.
1204:
733:
classes. Finally, there is (limited, as of April 2020) support for allowing the user to create classes to represent a parameterised function as a
1612:
232:
1132:
622:
Since the GSL is written in C, it is straightforward to provide wrappers for other programming languages. Such wrappers currently exist for
1638:
740:
While not strictly wrappers, there are some C++ classes that allow C++ users to use the Gnu
Scientific Library with wrapper features.
1456:
1282:
1673:
1648:
1275:
985:
228:. They carried out the overall design and wrote early modules; with that ready they recruited other scientists to contribute.
1330:
1010:
The hmatrix-gsl package, a purely functional interface to selected numerical computations, internally implemented using GSL
757:
939:
765:
1320:
1315:
1270:
595:
1643:
477:
236:
231:
The "overall development of the library and the design and implementation of the major modules" was carried out by
123:
1658:
1265:
1325:
605:
547:
217:
1653:
1232:
902:
676:
666:
1663:
1600:
651:
91:
1128:
887:
1668:
770:
691:
686:
646:
128:
69:
1298:
610:
584:
205:
146:
141:
1106:
rb-gsl: Ruby/GSL is a Ruby interface to the GNU Scientific
Library, for numerical computing with Ruby
557:
831:
1446:
1260:
1198:
681:
517:
197:
116:
77:
1391:
562:
537:
507:
1559:
875:
578:
512:
492:
1021:
714:. Instead, pointers to static functions have to be used. Another common workaround is using a
1574:
1303:
1081:
497:
1526:
452:
1148:
8:
1617:
1461:
1191:
1093:
567:
542:
423:
189:
1549:
1381:
1376:
1308:
726:
671:
600:
997:
216:
The GSL project was initiated in 1996 by physicists Mark
Galassi and James Theiler of
1569:
1476:
1371:
1225:
781:
443:
824:
1584:
1516:
573:
400:
220:. They aimed at writing a modern replacement for widely used but somewhat outdated
185:
135:
1009:
1554:
1544:
1421:
1136:
943:
906:
734:
729:
functions. Some also offer support for also creating workspaces that behave like
715:
255:
200:; wrappers are available for other programming languages. The GSL is part of the
1564:
1466:
482:
428:
936:
1632:
1606:
1386:
1255:
1201:, an R wrapper for the special functions and quasi random number generators.
974:
gslcpp: A Header-Only, Modern C++-Library
Wrapping the GNU Scientific Library
730:
590:
552:
1579:
1401:
1396:
1350:
1218:
448:
27:
1118:
rust-gsl: A Rust binding for the GSL library (the GNU Scientific
Library).
373:
The example program has to be linked to the GSL library upon compilation:
1431:
1361:
1241:
1185:
706:
classes, but not using pointers to member functions, because the type of
656:
487:
462:
457:
201:
40:
1491:
1485:
1436:
1045:
973:
522:
433:
35:
22:
1069:
1057:
1033:
1511:
1441:
1426:
527:
1178:
863:
157:
1521:
1501:
1481:
1406:
1356:
1105:
501:
467:
438:
1117:
998:
The hmatrix-special package, an interface to GSL special functions
958:
899:
1411:
641:
636:
532:
472:
221:
193:
921:
845:
97:
1506:
1496:
1471:
775:
722:
225:
1210:
1082:
RcppGSL: 'Rcpp' Integration for 'GNU GSL' Vectors and
Matrices
1366:
1160:
703:
661:
631:
30:, James Theiler, Brian Gough, Gerard Jungman and many others
1416:
959:
GSLwrap: A C++ wrapper class for the GNU Scientific
Library
626:
254:
The following example program calculates the value of the
1346:
986:
FGSL - A Fortran interface to the GNU Scientific
Library
922:
ccgsl: a C++ interface for the GNU Scientific
Library
747:
399:The output is shown below and should be correct to
1149:o2scl Object-oriented Scientific Computing Library
810:GPL-2.0-or-later from 1996-07-08 until 2007-07-02.
235:and Gerard Jungman. Other major contributors were
1630:
617:
1613:Free Software Foundation anti-Windows campaigns
991:
859:
857:
855:
418:The software library provides facilities for:
1226:
900:AMPL bindings for the GNU Scientific Library
239:, Reid Priedhorsky, M. Booth, and F. Rossi.
1094:gsl: wrapper for the Gnu Scientific Library
1070:Python interface for GNU Scientific Library
1003:
852:
16:Library for numerical analysis in C and C++
1233:
1219:
954:
952:
76:
969:
967:
1207:with Mark Galassi on the history of GSL.
932:
930:
258:of the first kind and order zero for 5:
949:
917:
915:
1631:
964:
1214:
1142:
1046:GSLL, GNU Scientific Library for Lisp
927:
888:Using the Library. An Example Program
1331:GNAT Modified General Public License
1058:gsl-ocaml: OCaml bindings to the GSL
912:
758:Free and open-source software portal
1154:
766:List of numerical-analysis software
13:
1639:C (programming language) libraries
801:GPL-3.0-or-later since 2007-07-02.
211:
14:
1685:
1321:GNU Affero General Public License
1316:GNU Lesser General Public License
1170:
408:J0(5) = -1.775967713143382920e-01
750:
1240:
1122:
1111:
1099:
1087:
1075:
1063:
1051:
1039:
1027:
1015:
979:
846:"GNU - Free Software Directory"
596:Nonlinear least-squares fitting
548:Ordinary differential equations
1674:Software using the GPL license
1326:GNU Free Documentation License
893:
881:
869:
838:
804:
795:
697:
606:IEEE floating-point arithmetic
587:in one and multiple dimensions
581:in one and multiple dimensions
218:Los Alamos National Laboratory
188:for numerical computations in
1:
1649:Free software programmed in C
817:
618:Programming-language bindings
204:and is distributed under the
1601:GNU/Linux naming controversy
1129:Pointers to member functions
424:Basic mathematical functions
7:
1205:FLOSS FOR SCIENCE interview
771:List of numerical libraries
743:
518:Random number distributions
413:
272:<gsl/gsl_sf_bessel.h>
52:; 28 years ago
10:
1690:
1299:GNU General Public License
937:GSL-- C++ wrappers for GSL
708:pointer to member function
611:Discrete wavelet transform
249:
206:GNU General Public License
1593:
1537:
1339:
1291:
1248:
558:Numerical differentiation
335:"J0(%g) = %.18e
152:
134:
122:
112:
90:
86:
68:
64:
46:
34:
21:
1283:History of free software
1261:Free Software Foundation
1199:R (programming language)
788:
563:Chebyshev approximations
508:Random number generation
405:
375:
260:
196:. The GSL is written in
1644:Free computer libraries
1022:JavaCPP Presets for GSL
702:The GSL can be used in
538:Monte Carlo integration
493:Fast Fourier transforms
243:three years 2012–2014.
1659:Mathematical libraries
1034:Julia interface to GSL
513:Quasi-random sequences
178:GNU Scientific Library
591:Least-squares fitting
498:Numerical integration
1654:GNU Project software
890:. GSL documentation.
1664:Numerical libraries
1618:Defective by Design
1585:Richard M. Stallman
1186:GSL Design Document
876:GSL design document
712:pointer to function
568:Series acceleration
543:Simulated annealing
190:applied mathematics
1669:Numerical software
1550:Benjamin Mako Hill
1135:2004-10-13 at the
942:2015-01-29 at the
905:2021-10-28 at the
832:"GSL 2.8 released"
710:is different from
672:Perl Data Language
601:Physical constants
384:gsl-config--cflags
224:libraries such as
23:Original author(s)
1626:
1625:
1570:Georg C. F. Greve
1477:GNU Privacy Guard
1304:linking exception
782:Numerical Recipes
444:Special functions
174:
173:
129:Numerical library
1681:
1235:
1228:
1221:
1212:
1211:
1182:
1181:
1179:Official website
1164:
1158:
1152:
1146:
1140:
1126:
1120:
1115:
1109:
1103:
1097:
1091:
1085:
1079:
1073:
1067:
1061:
1055:
1049:
1043:
1037:
1031:
1025:
1019:
1013:
1007:
1001:
995:
989:
983:
977:
971:
962:
956:
947:
934:
925:
919:
910:
897:
891:
885:
879:
873:
867:
861:
850:
849:
842:
836:
835:
828:
811:
808:
802:
799:
760:
755:
754:
753:
574:Hankel transform
409:
401:double-precision
395:
392:gsl-config--libs
391:
387:
383:
379:
369:
366:
363:
360:
357:
354:
351:
348:
345:
342:
339:
336:
333:
330:
327:
324:
321:
318:
317:gsl_sf_bessel_J0
315:
312:
309:
306:
303:
300:
297:
294:
291:
288:
285:
282:
279:
276:
273:
270:
267:
264:
186:software library
170:
167:
165:
163:
161:
159:
147:GPL-2.0-or-later
142:GPL-3.0-or-later
108:
105:
103:
101:
99:
80:
60:
58:
53:
19:
18:
1689:
1688:
1684:
1683:
1682:
1680:
1679:
1678:
1629:
1628:
1627:
1622:
1589:
1555:Bradley M. Kuhn
1545:Alexandre Oliva
1533:
1335:
1287:
1244:
1239:
1177:
1176:
1173:
1168:
1167:
1159:
1155:
1147:
1143:
1137:Wayback Machine
1127:
1123:
1116:
1112:
1104:
1100:
1092:
1088:
1080:
1076:
1068:
1064:
1056:
1052:
1044:
1040:
1032:
1028:
1020:
1016:
1008:
1004:
996:
992:
984:
980:
972:
965:
957:
950:
944:Wayback Machine
935:
928:
920:
913:
907:Wayback Machine
898:
894:
886:
882:
874:
870:
862:
853:
844:
843:
839:
830:
829:
825:
820:
815:
814:
809:
805:
800:
796:
791:
756:
751:
749:
746:
700:
620:
615:
429:Complex numbers
416:
411:
410:
407:
397:
396:
393:
389:
385:
381:
377:
371:
370:
367:
364:
361:
358:
355:
352:
349:
346:
343:
340:
337:
334:
331:
328:
325:
322:
319:
316:
313:
310:
307:
304:
301:
298:
295:
292:
289:
286:
283:
280:
277:
274:
271:
268:
266:<stdio.h>
265:
262:
256:Bessel function
252:
214:
212:Project history
156:
144:
96:
82:
56:
54:
51:
47:Initial release
17:
12:
11:
5:
1687:
1677:
1676:
1671:
1666:
1661:
1656:
1651:
1646:
1641:
1624:
1623:
1621:
1620:
1615:
1610:
1603:
1597:
1595:
1591:
1590:
1588:
1587:
1582:
1577:
1572:
1567:
1565:Federico Heinz
1562:
1557:
1552:
1547:
1541:
1539:
1535:
1534:
1532:
1531:
1524:
1519:
1514:
1509:
1504:
1499:
1494:
1489:
1479:
1474:
1469:
1467:GNU Archimedes
1464:
1459:
1454:
1449:
1444:
1439:
1434:
1429:
1424:
1419:
1414:
1409:
1404:
1399:
1394:
1389:
1384:
1379:
1374:
1369:
1364:
1359:
1354:
1343:
1341:
1337:
1336:
1334:
1333:
1328:
1323:
1318:
1313:
1312:
1311:
1309:font exception
1306:
1295:
1293:
1289:
1288:
1286:
1285:
1280:
1279:
1278:
1273:
1268:
1258:
1252:
1250:
1246:
1245:
1238:
1237:
1230:
1223:
1215:
1209:
1208:
1202:
1188:
1183:
1172:
1171:External links
1169:
1166:
1165:
1153:
1141:
1121:
1110:
1098:
1086:
1074:
1062:
1050:
1038:
1026:
1014:
1002:
990:
978:
963:
948:
926:
911:
892:
880:
868:
851:
837:
822:
821:
819:
816:
813:
812:
803:
793:
792:
790:
787:
786:
785:
778:
773:
768:
762:
761:
745:
742:
699:
696:
695:
694:
689:
684:
679:
674:
669:
664:
659:
654:
649:
644:
639:
634:
629:
619:
616:
614:
613:
608:
603:
598:
593:
588:
582:
576:
570:
565:
560:
555:
550:
545:
540:
535:
530:
525:
520:
515:
510:
505:
495:
490:
485:
483:Linear algebra
480:
475:
470:
465:
460:
455:
446:
441:
436:
431:
426:
420:
415:
412:
406:
376:
261:
251:
248:
213:
210:
172:
171:
154:
150:
149:
138:
132:
131:
126:
120:
119:
114:
110:
109:
94:
88:
87:
84:
83:
74:
72:
70:Stable release
66:
65:
62:
61:
48:
44:
43:
38:
32:
31:
25:
15:
9:
6:
4:
3:
2:
1686:
1675:
1672:
1670:
1667:
1665:
1662:
1660:
1657:
1655:
1652:
1650:
1647:
1645:
1642:
1640:
1637:
1636:
1634:
1619:
1616:
1614:
1611:
1609:
1608:
1607:Revolution OS
1604:
1602:
1599:
1598:
1596:
1592:
1586:
1583:
1581:
1578:
1576:
1575:John Sullivan
1573:
1571:
1568:
1566:
1563:
1561:
1558:
1556:
1553:
1551:
1548:
1546:
1543:
1542:
1540:
1536:
1530:
1529:
1525:
1523:
1520:
1518:
1515:
1513:
1510:
1508:
1505:
1503:
1500:
1498:
1495:
1493:
1490:
1487:
1483:
1480:
1478:
1475:
1473:
1470:
1468:
1465:
1463:
1460:
1458:
1455:
1453:
1450:
1448:
1445:
1443:
1440:
1438:
1435:
1433:
1430:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1403:
1400:
1398:
1395:
1393:
1390:
1388:
1385:
1383:
1380:
1378:
1375:
1373:
1370:
1368:
1365:
1363:
1360:
1358:
1355:
1352:
1348:
1345:
1344:
1342:
1338:
1332:
1329:
1327:
1324:
1322:
1319:
1317:
1314:
1310:
1307:
1305:
1302:
1301:
1300:
1297:
1296:
1294:
1290:
1284:
1281:
1277:
1276:Latin America
1274:
1272:
1269:
1267:
1264:
1263:
1262:
1259:
1257:
1256:GNU Manifesto
1254:
1253:
1251:
1247:
1243:
1236:
1231:
1229:
1224:
1222:
1217:
1216:
1213:
1206:
1203:
1200:
1196:
1194:
1189:
1187:
1184:
1180:
1175:
1174:
1162:
1157:
1150:
1145:
1138:
1134:
1130:
1125:
1119:
1114:
1107:
1102:
1095:
1090:
1083:
1078:
1071:
1066:
1059:
1054:
1047:
1042:
1035:
1030:
1023:
1018:
1011:
1006:
999:
994:
987:
982:
975:
970:
968:
960:
955:
953:
945:
941:
938:
933:
931:
923:
918:
916:
908:
904:
901:
896:
889:
884:
877:
872:
865:
860:
858:
856:
847:
841:
833:
827:
823:
807:
798:
794:
784:
783:
779:
777:
774:
772:
769:
767:
764:
763:
759:
748:
741:
738:
736:
732:
731:Smart pointer
728:
724:
719:
717:
713:
709:
705:
693:
690:
688:
685:
683:
680:
678:
675:
673:
670:
668:
665:
663:
660:
658:
655:
653:
650:
648:
645:
643:
640:
638:
635:
633:
630:
628:
625:
624:
623:
612:
609:
607:
604:
602:
599:
597:
594:
592:
589:
586:
583:
580:
577:
575:
571:
569:
566:
564:
561:
559:
556:
554:
553:Interpolation
551:
549:
546:
544:
541:
539:
536:
534:
531:
529:
526:
524:
521:
519:
516:
514:
511:
509:
506:
503:
499:
496:
494:
491:
489:
486:
484:
481:
479:
476:
474:
471:
469:
466:
464:
461:
459:
456:
454:
450:
447:
445:
442:
440:
437:
435:
432:
430:
427:
425:
422:
421:
419:
404:
402:
374:
259:
257:
247:
244:
240:
238:
234:
229:
227:
223:
219:
209:
207:
203:
199:
195:
191:
187:
183:
179:
169:
155:
151:
148:
143:
139:
137:
133:
130:
127:
125:
121:
118:
115:
111:
107:
95:
93:
89:
85:
81:/ 25 May 2024
79:
73:
71:
67:
63:
50:May 1996
49:
45:
42:
39:
37:
33:
29:
26:
24:
20:
1605:
1594:Other topics
1580:Nagarjuna G.
1538:Contributors
1527:
1502:GNU LilyPond
1462:GNU Electric
1451:
1387:Build system
1192:
1156:
1144:
1124:
1113:
1101:
1089:
1077:
1065:
1053:
1041:
1029:
1017:
1005:
993:
981:
895:
883:
871:
864:GSL homepage
840:
826:
806:
797:
780:
739:
720:
711:
707:
701:
621:
585:Minimization
579:Root finding
488:Eigensystems
463:Combinations
458:Permutations
417:
398:
372:
253:
245:
241:
230:
215:
181:
177:
175:
36:Developer(s)
28:Mark Galassi
1432:GNU TeXmacs
1362:Linux-libre
1242:GNU Project
698:C++ support
657:Common Lisp
434:Polynomials
233:Brian Gough
202:GNU Project
41:GNU Project
1633:Categories
1492:GNU Health
1437:GNU Octave
818:References
528:Histograms
523:Statistics
500:(based on
403:accuracy:
237:Jim Davies
113:Written in
92:Repository
1560:Brian Fox
1512:GNU Chess
1442:GNU Taler
1427:GNU Emacs
1382:findutils
1377:coreutils
572:Discrete
468:Multisets
439:B-splines
388:example.c
164:/software
98:ftpmirror
75:2.8
1482:Gnuzilla
1397:binutils
1351:variants
1340:Software
1292:Licenses
1133:Archived
940:Archived
903:Archived
744:See also
533:N-tuples
502:QUADPACK
453:matrices
414:Features
269:#include
263:#include
1528:more...
1412:GNUstep
1249:History
1195:package
735:functor
716:functor
642:Haskell
637:Fortran
473:Sorting
449:Vectors
250:Example
222:Fortran
194:science
184:) is a
153:Website
136:License
57:1996-05
55: (
1507:GNU Go
1497:GNUmed
1486:IceCat
1472:GNUnet
1266:Europe
776:Netlib
723:malloc
677:Python
667:Octave
359:return
341:"
329:printf
308:double
293:double
226:Netlib
145:1996:
140:2007:
1517:Gnash
1447:GNU R
1367:glibc
1271:India
789:Notes
662:OCaml
652:Julia
1522:Guix
1422:Jami
1417:GIMP
1407:GRUB
1372:Bash
1357:Hurd
1197:for
1190:The
727:free
725:and
692:Rust
687:Ruby
647:Java
627:AMPL
478:BLAS
451:and
284:void
278:main
192:and
180:(or
176:The
166:/gsl
162:.org
160:.gnu
124:Type
104:/gsl
102:.org
100:.gnu
1457:GMP
1452:GSL
1402:GDB
1392:GCC
1347:GNU
1193:gsl
1161:yat
704:C++
632:C++
390:$ (
382:$ (
380:gcc
378:$
302:5.0
275:int
182:GSL
158:www
1635::
1151:;
1131:.
966:^
951:^
929:^
924:;
914:^
854:^
737:.
718:.
356:);
338:\n
326:);
208:.
1488:)
1484:(
1353:)
1349:(
1234:e
1227:t
1220:v
1163:.
1139:.
1108:.
1096:.
1084:.
1072:.
1060:.
1048:.
1036:.
1024:.
1012:.
1000:.
988:.
976:.
961:;
946:;
909:.
878:.
866:.
848:.
834:.
682:R
504:)
394:)
386:)
368:}
365:;
362:0
353:y
350:,
347:x
344:,
332:(
323:x
320:(
314:=
311:y
305:;
299:=
296:x
290:{
287:)
281:(
198:C
168:/
117:C
106:/
59:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.