Я пытаюсь оптимизировать кодер Рида-Соломона, который на самом деле просто является операцией многочленного деления над полями Галуа 2 ^ 8 (что просто означает, что значения обтекают более 255). Код на самом деле очень похож на то, что можно найти здесь для Go: http://research.swtch.com/field
Используемый здесь алгоритм использования полиномиального деления представляет собой синтетическое подразделение
И вот результат на моей машине:
With PyPy:
rsenc : total time elapsed 0.108183 seconds.
rsenc_alt1 : output is incorrect!
rsenc_alt1 : total time elapsed 0.164084 seconds.
rsenc_alt2 : output is incorrect!
rsenc_alt2 : total time elapsed 0.557697 seconds.
Without PyPy:
rsenc : total time elapsed 3.518857 seconds.
rsenc_alt1 : output is incorrect!
rsenc_alt1 : total time elapsed 5.630897 seconds.
rsenc_alt2 : output is incorrect!
rsenc_alt2 : total time elapsed 6.100434 seconds.
rsenc_numpy : output is incorrect!
rsenc_numpy : total time elapsed 1.631373 seconds
rsenc : total time elapsed 0.107170 seconds.
rsenc_precomp : total time elapsed 0.108788 seconds.