私は DecInt (Decimal Integer) ライブラリの作成者なので、いくつかコメントします。
DecInt ライブラリは、10 進数形式に変換する必要がある非常に大きな整数を扱うように特別に設計されています。10 進形式への変換に関する問題は、ほとんどの任意精度ライブラリが値を 2 進数で格納することです。これはメモリを利用する上で最も高速で効率的ですが、通常、2 進数から 10 進数への変換は低速です。Python の 2 進数から 10 進数への変換は O(n^2) アルゴリズムを使用するため、すぐに遅くなります。
DecInt は大きな 10 進数 (通常は 10^250) を使用し、非常に大きな数を 250 桁のブロックに格納します。非常に大きな数値を 10 進数形式に変換すると、O(n) で実行されるようになりました。
素朴な、または小学校の乗算の実行時間は O(n^2) です。Python では、実行時間が O(n^1.585) のカラツバ乗算を使用しています。DecInt は、からつば、Toom-Cook、および Nussbaumer 畳み込みの組み合わせを使用して、O(n*ln(n)) の実行時間を取得します。
DecInt のオーバーヘッドははるかに高くなりますが、O(n*ln(n)) 乗算と O(n) 変換の組み合わせは、Python の O(n^1.585) 乗算と O(n^2) 変換よりも最終的に高速になります。
ほとんどの計算では、すべての結果を 10 進形式で表示する必要はないため、ほぼすべての任意精度ライブラリでは、計算が簡単になる 2 進数が使用されます。DecInt は、非常に小さなニッチをターゲットにしています。数値が十分に大きい場合、DecInt はネイティブの Python よりも乗算と除算が高速になります。ただし、純粋なパフォーマンスを求める場合は、GMPY のようなライブラリが最も高速です。
DecInt がお役に立てて光栄です。