【发布时间】:2014-02-27 20:10:57
【问题描述】:
Scipy splprep(样条准备)产生一个 Tuple tckp
tckp : tuple (t,c,k) 一个包含节点向量的元组, B样条系数,以及样条的次数。
tckp = [array[double,double ,..,double],
[array[double,double ,..,double],
array[double,double ,..... ,double],
array[double,double ,..... ,double]], int]
如何构建和填充等效的 Cython 结构以便能够使用
Cython 中的 splev(样条求值)
【问题讨论】:
-
您打算如何调用 splev?你打算使用内置于 SciPy 中的那个,还是使用相应 fortran library 中的
splev函数的一些包装器?调用过程将取决于您要如何调用它。 -
第一步是 SciPy Wrapper - 但我担心需要更多优化。
-
好的,SciPy 包装器实际上只是 Fortran 例程的 Python 包装器。您需要在 Cython 中调用它,就像在 Python 中调用它一样。这将是一个 Python 函数调用,并且仍然会有相应的开销。如果您需要避免通过 Python 进行函数调用的开销,则必须为 Fortran 例程获取某种包装器。我敢打赌fortran90.org/src/best-practices.html#interfacing-with-c 显示的方法将是一个很好的起点。您可以尝试直接从 Scipy 公开函数指针。
-
然后起点将我们带到stackoverflow.com/tags/fortran-iso-c-binding/info 和20 年前我最后一次阅读和潦草的fortran
-
您可以尝试使用类似this question 的答案,但这也很棘手。我也不完全确定它是否适用于样条函数。
标签: python scipy tuples cython