是否可以将GNU科学库函数包装在emacs-lisp中?



是否可以将外部函数包装在emacs-lisp中?我有兴趣从GNU科学图书馆做这样的事情:

(let ((A '((0.18 0.60 0.57 0.96)
           (0.41 0.24 0.99 0.58)
           (0.14 0.30 0.97 0.66)
           (0.51 0.13 0.19 0.85)))
      (b '(1 2 3 4)))
  (gsl-linalg-LU-solve A b))

返回 (-4.05205 -12.6056 1.66091 8.69377(

如果这是不可能的,有没有其他方法可以将数值方法引入 emacs-lisp?

AFAIK,任何不被 emacs 直接支持的二进制库的链接是不可能的。前段时间我在某处读到这是 emacs 的预期行为,以避免意外崩溃。我再也不知道这句话的确切来源了。(他人的帮助是赞赏的。

变量dynamic-library-alist的帮助建议如下:

动态库列表与实现它们的外部文件。 ... 另请注意,这不是用于访问外部的通用工具 图书馆;只有那些已经被 Emacs 知道的才会被加载。

尽管如此,calc 包提供了数值算法。例如,https://www.gnu.org/software/emacs/manual/html_node/calc/Vector-and-Matrix-Arithmetic.html用于 LU 分解。

一种可能的出路是将call-processstart-process与运行矩阵操作的可执行程序一起使用,并通过stdinstdout与这些程序进行通信。

最新更新