Cython中的模数运算

6

在Cython代码中,最简单和最快的取模运算(5 % 2)方法是什么?似乎使用%会使代码变慢,那么有更好的方法来做这个操作吗?

3个回答

8

这意味着您需要像这样装饰您的函数:@cython.cdivision(True) - Ted Petrou
@Korem:谢谢。 (可以随意使用建议的编辑来修复死链接) - Wooble

-1

我在任何地方都使用%运算符,而且我认为它不会减慢代码。实际上,%非常快!你是否使用cdef声明变量?也许你只是因此添加了太多的Python开销。


啊,我在我的Cython头文件中默认使用cdivision。 - flaviotruzzi

-2
你可以使用内置的 divmod 函数,它只需要两个参数,并返回它们的商和余数的元组。
>>> 10 % 7
3
>>> divmod(10,7)
(1, 3)
>>> -7 % 3
2
>>> divmod(-7,3)
(-3, 2)

divmod没有被Cython优化,所以它会变成Python函数调用。这些函数调用非常昂贵。 - Fred Foo
@Fred 我想知道divmod是否有任何优化 - 如果没有Cython。 至于Paul - 我同意。 这是一个困难的群体,如果divmod能够做到硬件所做的那样,那将是很棒的。 - RichMeister

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接