我如何在 Julia 中使用 GSL?

How do I use GSL in Julia?

一般的问题是我如何在 Julia 中使用任何非标准库,例如从 C 导出的库,特别是我从 https://www.gnu.org/software/gsl/ 下载了 GNU 科学库,根据 Julia 手册我认为它可以使用,但我从 GSL 文件夹中读取了 INSTALL 文件并尝试按照步骤操作,但是我可以没有完成它们,因为我不明白一些步骤。

如果有人能给我一些建议,让我在 Julia 中使用这个库,我将不胜感激。

一些细节。

-OS: Windows10 -朱莉娅版本:0.6

一般情况下, 使用 ccall

调用编译代码

对于 GSL,对于大多数操作,您不应该使用 GSL。 GSL 提供的(几乎所有)功能都被 Julia 标准库或维护良好的 julia 包很好地涵盖了。 主要是在纯 julia 中实现。

纯 julia 实现通常基本上与 C/Fortran 实现一样快。 此外,它们还将具有其他良好的功能,例如与优化器配合良好, 并通过多重分派支持自定义类型 例如,支持 Dual numbers 意味着 ForwardDiff.jl 本身将允许 Auto differentiation 与它们一起使用。 对于某些代码 ducktyping will even let them work with things like TensorFlow..

至于如何安装 GSL,我认为这与如何将 GSL 与 julia 一起使用是一个单独的问题。 不过,方便的是,如果你处于一个位置,你绝对需要从 julia 调用 GSL, 已经有一个 julia 包裹包装它。 GSL.jl 而且特别方便的是,当你运行Pkg.add("GSL.jl"),它会自动为你下载并安装GSL, 所以你不必担心自己安装它。 如果该软件包不适合您,请在他们的回购协议中提出问题。

(Julia 包往往是那样的好,只需安装它们的所有依赖项,这样你就不必 fiddle 处理这些东西。大学来了几次,我印象深刻我说 "I love R library Foo but I can't using it on windows as I can't get the Fortran backend to work"; 我会像 "Foo.jl does the same thing using the same fortran backend, also it automatically installs that backend, and does so in a way that just works even on windows.")