0

他の場所でできるように、という名前のファイルcdefINFINITY定数を入れたいと思います。私たちが持っていると仮定します:constant.pxdcimportconstant.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')入力せずに定義して、期待どおりに使用することはできます。これによりパフォーマンスの問題が発生する可能性があるかどうかはわかりません。.pyxconstant.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)
4

0 に答える 0