关于

GNU Scientific Library for Lisp(GSLL)允许您使用这个GNU科学数值库(GSL)通用Lisp.这个该库提供了一系列有用的通用数学运算科学和工程应用。GSLL的设计接口可以访问大多数GSL库以Lisp-自然的方式;这样做的目的是用户不会受到编写GSL的C语言的限制。因此,GSLL提供了GSL的交互式使用,以获得快速答案,甚至对于不打算用Lisp编程的人来说。

主题包括:多项式、特殊函数、向量和矩阵、置换、排序、线性代数,包括BLAS,特征系统、快速傅里叶变换(FFT)、求积、随机数,准随机序列、随机分布、统计、直方图,N元组、蒙特卡罗积分、模拟退火、普通微分方程、插值、数值积分,数值微分,切比雪夫近似,级数加速、离散Hankel变换、寻根、最小化,最小二乘拟合,IEEE浮点,离散小波变换、基样条、物理常数。请参见缺少功能.text关于一些不完整话题的现状。

示例

这个雅可比椭圆函数 中国、和dn(数字网络)是特殊功能(第7章):

(雅可比椭圆函数0.2d0 0.81d0)0.19762082367187703d00.9802785369736752d00.9840560289645665d0

它以多个值的形式返回三个函数值。这个仅当第二个参数为不是大于1,因此如果此参数超出,则会发出错误信号范围:

(雅可比椭圆函数0.61802d0 1.5d0)第46行elljac.c中的输入域错误|m|>1.0[输入-DOMAIN类型的条件]

这是一个普通的Lisp错误,可以使用标准Lisp中提供的定义。接受复共轭标量积长度为3的两个复数向量:

(cdot#2m(#c(-34.5d0 8.24d0)#c(3.29d0-8.93d0)#c(34.12d0-6.15d0))#2米(#c(49.27d0-13.49d0)#c(32.5d0 42.73d0)#c(-17.24d0 43.31d0))#C(-2940.2118d0 1861.9380999999998d0)

GSLL中有1500多个示例功能示例还有一套4000次试验;许多示例也用作测试,大多数其他示例是从GSL的测试中移植的。

下载并安装

下载

使用口齿不清并遵循说明。您需要确保库和与关联的头文件GNU科学数值库(GSL)利伯菲安装;您的发行版可能会命名这些libgsl0-dev软件libffi-dev公司。一旦安装好加载了quicklisp文件:

(ql:快速加载“gsll”)

要测试安装,请执行以下操作:

(asdf:测试系统:gsll)

结果应类似于:

单元测试摘要|总共3997条断言|3992通过|5个失败|6个执行错误|0个缺少测试

你可能会看到更多的失败;如果你不在64位平台上,你会看到更少的断言。

许可证

该软件发布于这个GPL公司 ; 看见文件COPYING。绝对没有担保。

文档

一般建议

建议使用以下API技术:

一些示例尚未出现在功能#'示例。在这种情况下,您需要查看相关源文件;它们位于示例,或在定义文件的末尾。建议首先查看示例,以进行以下计算需要更复杂的设置(通常,GSL后面的章节手动)。

阵列

GSLL有许多用于向量(一维数组)的函数和矩阵(二维数组)。定义了外部数组使用操纵这个安提克它定义了类数组对象上的通用操作;查看Antik文档以获取更多信息。GSLL支持所有数组元素CFFI、CL实现、GSL和平台。此列表位于变量网格:*阵列元素类型*.

传递函数

传递给GSL函数的函数(称为回调在C)中指定了功能指示符对于CL函数,即函数对象本身或表示函数的符号。通常有一个选项标尺对于函数获取或返回数组,如果为true,则将参数元素逐个元素发送给用户函数,并期望返回值为单个元素。

GSL对象

除了数组之外,还有许多GSL对象可以创建:

加速度插值levin levin截断样条非线性-ffit非线性-fdffit一维根求解器多维最小化-f多维最小化-fdf适合工作空间一维最小化多维root-solver-f多维root-ssolver-fdf直方图histogram2d histogram-pdf histogram2 d-pdf基样条chebyshev-hankel小波小波工作空间随机数发生器准随机数发生器离散随机多项式复杂工作空间集成qaws-table qawo-table本征对称本征对称本征非对称本征根本征根蒙特卡罗平原蒙特卡罗守财奴蒙特卡罗拉斯维加斯ode-stepper ode-evolution标准控制y-controlyp控制比例控制fft-实波双浮子fft-实际工作空间-双浮子fft-真实工作空间-单浮子fft-complex-wavetable-double-floatfft-complex-workspace-double-float fft-complex-workspace-single-floatfft-半络合物-可波双浮体

可以使用名称为“make-”的函数创建实例后跟类名,例如。制造示意图. The函数的参数取决于类。

其他定义

尽管如此,还是提供了一些定义,因为它们很有用葛兰素史克没有。

状态

GSLL基本上是完整和可用的,具有功能性接口大部分GSL。一些功能尚未移植;看见缺少功能.text了解更多详细信息。已知错误记录在状态.text。双方的工作正在进行中通过以下方式弥补这些不足并简化用户界面使用将更多必需参数更改为可选参数或键参数有用的默认值。通常,这些参数绑定GSL对象以及内部或用于函数返回的数组。

联系人

有一个邮件列表对于这个项目的所有方面,包括错误报告。另请参阅档案此外,我经常以LiamH的身份出现在#lisp IRC频道上。对于错误报告,请使用邮件列表。这个开发场地for GSLL具有git存储库。如果您有修补程序,请提交更改并执行以下操作:

git格式-补丁源

这将生成一个或多个文件,其名称以四位数开头;请将它们全部附在您的电子邮件中。