GSL-GNU科学图书馆
GNU科学库(GSL)是一个面向C和C++程序员的数字库。它是GNU通用公共许可下的自由软件。
该库提供了广泛的数学例程,如随机数生成器、特殊函数和最小二乘拟合。总共有1000多个功能,有一个广泛的测试套件。
与专有数字图书馆的许可不同,GSL的许可并不限制科学合作。它允许您与他人自由共享您的程序。
当前稳定版本:GSL-2.8标准
(最近更改的详细信息可在新闻文件。)
GSL中的功能区
图书馆涵盖的全部主题领域包括
- 复数
- 多项式的根
- 特殊功能
- 向量和矩阵
- 排列
- 排序
- BLAS支持
- 线性代数
- 特征系统
- 快速傅里叶变换
- 正交
- 随机数
- 准随机序列
- 随机分布
- 统计
- 直方图
- N元组
- 蒙特卡罗积分
- 模拟退火
- 微分方程
- 插值
- 数值微分
- 切比雪夫近似
- 串联加速度
- 离散Hankel变换
- 寻根
- 最小化
- Least-Squares配件
- 物理常数
- IEEE浮点
- 离散小波变换
- 基本样条曲线
- 运行统计信息
- 稀疏矩阵与线性代数
下载GSL
稳定版本可以在上的gsl子目录中找到
有关获取GSL的其他方式,请阅读如何获得GNU软件
安装说明可以在包含的README和INSTALL文件中找到。
大多数GNU/Linux发行版中都包含预编译的二进制软件包。
GSL的编译版本可作为Cygwin公司在Windows上。
验证GSL签名
要验证GSL tarball的签名,请下载gsl-X.Y.tar.gz和gsl-X.j.tar.gz.sig文件。这个可以找到用于签署官方发布的密钥在这里。
可以通过以下步骤验证签名:
gpg—导入gsl_key.txtgpg—验证gsl-X.Y.tar.gz.sig
文档
GSL包含reStructuredText格式的参考手册。您可以查看HTML和PDF格式的手册,也可以使用shell命令在系统上阅读手册信息gsl-ref(如果已安装库)。
GSL参考手册在线提供,
该手册已作为印刷本出版(根据GNU自由文档许可证),最新版本为
GNU科学图书馆参考手册-第三版(2009年1月),
M.Galassi等人,ISBN 0954612078(平装)RRP 39.95美元。
网上还提供了日语翻译(可能不是最新版本)。
网上还提供葡萄牙语翻译。
捐赠
如果您使用并重视GSL,请考虑捐款帮助我们改进图书馆。
GSL是在以下平台上开发的,
据报道,它可以在以下其他平台上编译,
- SunOS 4.1.3和Solaris 2.x(Sparc)
- Alpha GNU/Linux,gcc
- HP-UX 9/10/11、PA-RISC、gcc/cc
- IRIX 6.5,通用条款
- m68k NeXTSTEP,gcc公司
- Compaq Alpha Tru64 Unix,gcc公司
- FreeBSD、OpenBSD和NetBSD、gcc
- Cygwin公司
- 苹果达尔文5.4
- 日立SR8000 Super Technical Server,cc
- Microsoft Windows
有几个人贡献了一些工具,使GSL能够在Windows平台上轻松构建。可以找到更多信息在这里。
我们要求GSL应该构建在任何带有ANSI C编译器的类UNIX系统上,如果没有,那就是一个bug,我们希望有一个补丁!完整的库也应该通过进行检查
.
如果你发现了一个错误,请报告给<bug-gsl@gnu.org>.
以前提交的错误报告可以在bug-gsl邮件列表存档和GSL错误数据库.
邮件列表
按照以下单个邮件列表的链接订阅或查看列表存档:
- 臭虫-gsl<bug-gsl@gnu.org>邮件列表--GNU科学图书馆的错误报告应发送到此处
- 帮助-gsl<help-gsl@gnu.org>用户邮件列表——有关安装、GSL如何工作和如何使用的问题,或有关GSL的一般问题。
- 信息-gsl<info-gsl@gnu.org>邮件列表——这里发布了新版本的公告。
您也可以通过Savannah关注公告GSL RSS源.
动机
以下是根据GNU通用公共许可证使用免费科学图书馆的一些主要好处,
- 允许更轻松的协作,库对每个人都是免费的。
- 使用该库的软件可以作为源代码公开发布。
- 您可以根据需要调整源代码。
- 尊重您的隐私,不会对“内部”使用施加任何条件。
- 您可以为用户社区提供改进。
特殊功能
该库使用面向对象的设计。不同的算法可以很容易地插入或在运行时更改,而无需重新编译程序。
它是为普通科学用户准备的。任何懂C语言编程的人都可以直接开始使用这个库。
该接口设计得很简单,可以链接到非常高级的语言,如GNU Guile或Python
这个库是线程安全的。
在可能的情况下,这些例程基于可靠的公共域Fortran包,如FFTPACK和QUADPACK,GSL的开发人员使用现代编码约定在C中重新实现了这些包。
该库易于编译,并且不依赖于其他包。
许可
GSL根据通用公共许可证(GPL)。
以下文章描述了GNU项目使用GPL的原因:
以下文章提供了研究人员的其他信息:
有关许可证常见问题的一些答案:
如果我编写一个使用GSL的应用程序,我是否被迫分发该应用程序?
不可以。如果您愿意,许可证为您提供了分发应用程序的选项。您不必在许可证中使用此选项。
如果我想分发使用GSL的应用程序,我需要使用什么许可证?
GNU通用公共许可证(GPL)。
商业用户的底线:
GSL可以在内部(“内部”)无限制地使用,但只能在GNU GPL下的其他软件中重新发布。
更多信息
如果你想在期刊文章中参考GNU科学图书馆,推荐的方法是引用参考手册,例如。M.Galassi等人,《GNU科学图书馆参考手册》(第三版),ISBN 0954612078.
如果要提供url,请使用“http://www.gnu.org/software/gsl/".
GSL需要一个用于向量和矩阵运算的BLAS库。GSL提供的默认CBLAS库可以替换为调优的ATLAS库,以获得更好的性能,
- 阿特拉斯-具有CBLAS接口的便携式自优化BLAS库
ATLAS是自由软件,其许可证与GNU GPL兼容。
对科学计算有用的其他软件包包括:
所有这些包都是免费软件(GNU GPL/LGPL)。
开发
GSL开发托管在Savannah.gnu.org上,网址为http://savannah.gnu.org/projects/gsl
存储库可通过“git”使用
git克隆git://git.savannah.gnu.org/gsl.git
注:如果使用git,则需要automake、autoconf、libtool、GNU m4、GNU make和GNUTexinfo(makeinfo)。
要从签出开始构建过程,请从以下开始:./autogen.sh
这将为编译准备包。然后您可以使用./configure--启用maintainer-mode
和制作
以通常的方式。
提交通知可通过git存储库获得新闻提要.
除了GSL公司参考手册,任何想要使用该库的人都应该阅读GSL设计文档,
GSL是一个具有稳定API的成熟库。主要重点是确保现有功能的稳定性,整理和修复报告的任何错误,并添加经过良好测试和记录的新的有用算法。鼓励潜在的贡献者通过调查和修复BUGS数据库中的已知问题来熟悉该库。
该项目始终希望引入新功能并扩展或改进现有功能。为了保持稳定性,任何新功能都被鼓励作为包,构建在GSL之上,并由其作者独立维护,就像在其他自由软件项目中一样。GSL的设计允许通过简单的链接将扩展与现有库一起使用。一旦一个新的扩展被证明是有用和稳定的,它就可以被合并到主GSL存储库中。
关于图书馆发展的讨论gsl-discuss@sourceware.org邮件列表。欢迎数值分析专家提出任何意见。您可以订阅gsl-discussion在这里。
GSL是GNU项目的一部分,因此遵循GNU编码标准.
技术报告
GSL技术报告旨在记录GSL中某些功能实现的详细信息。GSL技术报告集可在此处找到:
扩展/应用
以下第三方软件包提供了对GSL的扩展。
如果您想向GSL添加功能,我们建议您首先将其作为扩展。我们将在这里列出它,以便人们可以试用。扩展可以在实际使用中经过测试后合并.
- 张索尔-多维数组表示和处理的张量库
- 混合最大值-伪随机数MIXMAX生成器(http://mixmax.hepforge.org)
- 准蒙特卡罗-准蒙特卡罗积分例程(戴维·扎斯拉夫斯基)
- ISVD公司-增量奇异值分解(Attila Axt)
- Marray公司和张索尔-多维数组和张量的扩展(Jordi Burguet Castell)
- 非线性的-N维最小二乘拟合的更简单界面(帕特里克·阿尔肯)
- 退火-使用新API(alpha-Marco Maggi)重新进行模拟退火
- 雅可比-0.9-雅可比多项式和与高斯雅可比求积有关的运算(积分、导数和插值)(保罗·贾巴多)
- 齐古拉-高斯-使用Ziggurat方法(Jochen-Voss)的更快的高斯发生器,现已并入GSL 1.8
- 维格纳。c(c)-替代Wigner系数计算(大j)(j.Underwood)
- 自适应。c(c)-自适应多维集成,类似于cubpack(史蒂文·约翰逊)
- jsqrng公司-高维准随机序列(J.Scott)
- 定量糊精-扩展维QRNG(Philipp Baecker)
- CQP公司-解决凸二次问题(Ewgenij Hübner)
- 捆绑-强大的束最小化算法(需要CQP)(Ewgenij Hübner-升级到v1.2,2006年10月)
- 格西-其他最小化算法(Peter Geczy)
- 四分位数-四次多项式求解器(Andrew Steiner)
- 菲涅尔-正弦和余弦菲涅耳积分(Aleksey Dmitriev)
- Simplex改进-替代单工最小化器(Ivo Alxneit)
- 塔穆阿诺娃-TAMU ANOVA软件包提供单因素和双因素ANOVA。
- OOL公司-“开放优化库”提供了与GSL兼容的约束优化方法(正在开发中)。
- 糊精-0.2-附加随机数生成器(Brian Gough,示例包)
其他套餐:
- 更加坚韧-GSL的广泛随机数测试套件,基于Marsaglia的Diehard测试和NIST统计测试套件(Robert G.Brown)
- VFGEN(变频发电机)-根据用户提供的向量字段规范为GSL ODE系统生成C源代码(Warren Weckesser)
我们知道的一些使用GSL的应用程序:
- GSL壳牌(Lua)-使用Lua脚本语言与GSL例程的接口。
- NEMO公司-N-body start dynamics toolbox是一个类unix的库和程序工具集,它还具有操作ascii表和其他类型数据的工具
- 卢什-Lisp Universal Shell是一种面向对象的编程语言,具有与GSL、LAPACK和BLAS的完整接口。
- 数字Exp-数值函数和算法的交互式图形探索(使用Gtk)
- 实验室绘图-数据分析和可视化软件
- Qumax公司-原子、分子和固体的量子蒙特卡罗软件
- ORSA公司-轨道重建、仿真和分析。
- Qti图-科学绘图与数据分析应用
- 拉普拉斯-高级数字语言Rlab的库
- 布拉胡特-计算信息论码率和信道容量
其他语言包装器(不一定完整):
教材:
项目背景
该项目由洛斯阿拉莫斯国家实验室的M.加拉西博士和J.泰勒博士于1996年构思。
其他物理学家也加入了他们的行列,他们也认为现有图书馆的许可证阻碍了科学合作。
为了提供一个一致且设计合理的框架,大多数图书馆都是由少数具有计算物理背景的人编写的。
G.Jungman博士和B.Gough博士负责图书馆的总体开发以及主要模块的设计和实现。模块也由J.Davies博士、R.Priedhorsky博士、M.Booth博士、F.Rossi博士和P.Alken博士编写,以及用户社区中其他人的许多有用贡献。图书馆的Debian软件包由D.Eddelbuettel博士维护。
发布历史记录
- gsl-2.8标准于2024年5月发布。
- gsl-2.7标准于2021年6月发布。
- gsl-2.6标准于2019年8月发布。
- gsl-2.5型于2018年6月发布。
- gsl-2.4标准于2017年6月发布。
- gsl-2.3标准于2016年12月发布。
- gsl-2.2.1标准于2016年8月发布。
- gsl-2.2标准于2016年8月发布。
- gsl-2.1标准于2015年11月发布。
- gsl-2.0标准于2015年10月发布。
- gsl-1.16标准于2013年7月发布。
- 全球标准偏差-1.15于2011年5月发布。
- gsl-1.14标准于2010年3月发布。
- gsl-1.13标准于2009年9月发布。
- gsl-1.12标准于2008年12月发布。
- gsl-1.11标准于2008年3月发布。
- 克标准品-1.10于2007年9月发布。
- gsl-1.9标准于2007年2月发布。
- gsl-1.8标准于2006年4月发布。
- gsl-1.7标准于2005年9月发布。
- gsl-1.6标准于2004年12月发布。
- gsl-1.5标准于2004年6月发布。
- gsl-1.4型2003年8月发布。
- gsl-1.3标准于2002年12月发布。
- gsl-1.2标准于2002年7月发布。
- gsl-1.1.1标准于2002年3月发布。
- gsl-1.1标准于2002年2月发布。
- gsl-1.0标准于2001年11月发布。
- gsl-0.9.4标准于2001年10月发布(第五次beta测试版)。
- gsl-0.9.3标准于2001年9月发布(第四次beta测试版)。
- gsl-0.9.2标准于2001年9月发布(第三次beta测试版)。
- gsl-0.9.1标准于2001年8月发布(第二次beta测试版)。
- gsl-0.9标准于2001年7月发布(第一个beta测试版)。
- gsl-0.8于2001年5月发布。
- gsl-0.7于2000年10月发布。
- gsl-0.62000年6月发布。
- 谷胱甘肽-0.5于1999年12月发布。
- gsl-0.4.1标准于1999年2月发布。
- gsl-0.4标准1998年8月发布。
- 谷胱甘肽-0.3f1998年5月发布。
- gsl-0.3亿1998年2月获释。
- 0.2克/平方英寸于1996年10月发布。
- gsl-0.1标准1996年某个时候发布。
- gsl-0.0级1996年某个时候发布。
- gsl项目于1996年5月启动(最早记录的变更日志条目)。