GNU 科学库 (GSL) 是一系列用于数值计算的程序包。这些程序包使用 C 语言编写,并为 C 语言程序员提供了一个现代化的应用程序编程接口 (API),允许为其它高级语言编写包装器。源代码遵循 GNU 通用公共许可证发布。目前的版本为28。
目前GSL提供有超过1000个函数,这些函数包含的范围有:
- 复数
- 多项式的根
- 特殊函数
- 向量和矩阵
- 排列
- 排序
- BLAS 支持
- 线性代数
- 特征系统
- 快速傅里叶变换
- 求积
- 随机数
- 拟随机序列
- 随机分布
- 统计学
- 直方图
- N 元组
- 蒙特卡洛积分
- 模拟退火
- 微分方程
- 插值
- 数值微分
- 切比雪夫近似
- 级数加速
- 离散汉克尔变换
- 求根
- 最小化
- 最小二乘拟合
- 物理常数
- IEEE 浮点数
- 离散小波变换
- 基样条函数
- 运行统计
- 稀疏矩阵与线性代数
更多可下载官方手册。
GSL 库具有以下特点:
- 提供了广泛的数学函数,包括线性代数、数值积分、特殊函数、随机数生成等。
- 设计有良好的接口,易于使用。
- 经过充分测试,具有较高的稳定性和可靠性。
- 是开源的,可以根据需要自由修改和分发。
GSL因此被众多科学计算选为必备支持包。
Ubuntu中的安装与使用
1.在大多数 Linux 发行版中,可以通过包管理器安装 GSL 库。GSL源码包提供了以下二进制包:
- gsl-bin:GNU Scientific Library (GSL) -- binary package
- libgsl0-dbg: GNU Scientific Library (GSL) -- debug symbols package
- libgsl0-dev: GNU Scientific Library (GSL) -- development package
- libgsl0ldbl: GNU Scientific Library (GSL) -- library package
可以选择对应的需求在终端键入命令即可安装。例如,在 Ubuntu 系统中,可以使用以下命令安装:
sudo apt-get install libgsl-dev
在安装了开发包之后,就可以在 C 语言项目中使用 GSL 库了。在一些常用科学计算软件如Geant4,Cern ROOT,Garfield等均依赖于GSL 库,使用上述命令即可。
是否安装成功可在终端输入:
gsl-config --version
2.编译安装
1)安装一些基本的编译工具,例如 build-essential(包含了 gcc, g++, make 等)以及 libtool 和 autoconf 等。
sudo apt update
sudo apt install build-essential autoconf automake libtool
2)下载GSL 源代码,解压缩,终端进入目录。比如2.7.1版本。
tar -xzvf gsl-2.7.1.tar.gz
cd gsl-2.7.1
3)编译
./configure
make
sudo make install
4)添加到环境变量(可选)
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
5)安装完毕,可以用gsl-config --version验证是否成功。
3.简单的使用教程
为了验证 GSL 库是否正确安装,可以创建一个简单的 C 程序来测试。以下是一个示例代码:
#include <stdio.h>
#include <gsl/gsl_math.h>
int main() {
printf("GSL Version: %d.%d.%d\n", GSL_MAJOR_VERSION, GSL_MINOR_VERSION, GSL_MICRO_VERSION);
return 0;
}
编译并运行这个程序,如果 GSL 库安装正确,它将输出当前安装的 GSL 版本号。
gcc -o test_gsl test_gsl.c -lgsl -lgslcblas
./test_gsl
如果一切正常,您将看到类似以下的输出:
GSL Version: 2.5.0