他の場所でできるように、という名前のファイルcdef
にINFINITY
定数を入れたいと思います。私たちが持っていると仮定します:constant.pxd
cimport
constant.pxd
import numpy as np
cimport numpy as np
from libc cimport math
ctypedef np.float32_t dtype_t
cdef dtype_t INF = math.INFINITY if math.INFINITY != 0. else np.float32('inf')
ただし、これは、たとえば別の.pyx
ファイルでは機能しません。
from constant cimport INF
cpdef test():
return INF
どちらが得られますか:
>> 0.0
また、 orINF
として直接定義しようとしました。ただし、それらはすべてゼロになります。np.float32('inf')
np.inf
ただし、ファイルにINF = np.float32('inf')
入力せずに定義して、期待どおりに使用することはできます。これによりパフォーマンスの問題が発生する可能性があるかどうかはわかりません。.pyx
constant.pyx
from constant import INF
from constant cimport dtype_t
cdef class A:
cdef dtype_t data
def __cinit__(self, dtype_t data):
self.data = data
# ...
そして:
from constant import INF
a = A(INF)