【问题标题】:Complex conversion to Python Complex复杂转换为 Python 复杂
【发布时间】:2016-08-12 11:33:01
【问题描述】:

我目前正在为使用 std::complex<double> 的 C++ 项目编写一个包装器,在 cython 中可以使用 libcpp.complex.complex[double]

但是,这与 Python 复合体之间没有隐式转换,我正在尝试找到进行此转换的最佳方法。

显而易见的是使用

cdef libcpp.complex.complex[double] x = ...
X = complex(x.real(),x.imag()

cdef complex Y = ...
cdef libcpp.complex.complex[double] y = libcpp.complex.complex[double](Y.real, Y.imag)

cdef libcpp.complex.complex[double] z
cdef complex Z = ...
z.real(Z.real)
z.imag(Z.imag)

但是有没有更好的方法,最好是让 cython 自动进行转换。

一方面,这发生在一些 cpdef 函数中,我想避免在来自 cython 的调用中使用 Python complex 以提高速度。

但据我所知,cython 无法隐式执行此转换,因此我无法避免将 Python 复合体用于可从 Python 或 C++ 调用的代码。

【问题讨论】:

    标签: python c++ std cython complex-numbers


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 2018-01-29
      • 2013-03-04
      • 2023-04-07
      • 1970-01-01
      • 2015-10-18
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多