Comments 6
во второй версии языка был отдельный тип «обычных» целых, которые могли переполняться
Не могли. При переполнении int становился long.
Очень интересно, спасибо!
Ну и печально, конечно, что всё не так оптимально как могло бы быть. Вот в Haskell вроде тоже есть большие целые произвольной длины, но они гораздо быстрее.
Ну здесь рекомендация простая: нужна математика — не используйте python, но если очень хочется — вот вам numpy.
Это, конечно, не оптимальный вариант, но жить можно, и очень неплохо.
Numpy без целых произвольной длины, только быстрые вычисления с float32/64 и их собратьями (и стандартными целыми).
Касательно именно длинной арифметики, у меня данных нет, к сожалению.
По идее, операции написаны на C, используют в том числе и алгоритм Карацубы, правда, вряд ли создатели интерпретатора задавались целью применить столько же оптимизаций, сколько могут сделать создатели специализированных библиотек, в общем, если у кого есть бенчмарк, будем рады.
Я пока могу судить только по вычислению биномиальных коэфициентов и прочих чисел Фибоначчи — лично меня скорость устраивала. :)
По идее, операции написаны на C, используют в том числе и алгоритм Карацубы, правда, вряд ли создатели интерпретатора задавались целью применить столько же оптимизаций, сколько могут сделать создатели специализированных библиотек, в общем, если у кого есть бенчмарк, будем рады.
Я пока могу судить только по вычислению биномиальных коэфициентов и прочих чисел Фибоначчи — лично меня скорость устраивала. :)
Sign up to leave a comment.
Реализация целого типа в CPython