Schönhage-Strassenの乗算アルゴリズムは、サイズの乗算を回すことによって動作します サイズの多くの乗算に 数論変換と再帰を使用します。少なくとも私はそれがそうであると思います。他にいくつかの賢さがあるからです。正確に要約するのに十分理解していません。それで終わります 時間。
数論変換は、有限体で行われることを除いて、離散フーリエ変換とまったく同じです。 整数を法として 。これにより、フーリエ変換には1の根の乗算が多くなるため、演算が大幅に安価になります。の結束のルーツはすべて2の累乗なので、シフトするだけです!また、整数は、浮動小数点の複素数よりもはるかに扱いやすいです。
とにかく、私を混乱させるのは とても大きいです。からランダムな要素を与えると、 それはとります それを指定するビット。したがって、2つの要素を追加するには時間。そして、DFTは多くの追加を行います。
Schönhage–Strassenは入力を とのグループ ビット。これらのグループは、それが変形することを。DFTの各パスには 足し算/引き算、そして パス。だから加算加算に基づいて これらのすべての追加のコストは 、これは漸近的に同じです 。
それより少し上手くいくことができます...値が非常に小さいため、追加は非常にまばらです。最初のパスの追加は本当にコストがかかります それぞれ、2番目のパスのコスト それぞれ、およびi番目のパスのコスト それぞれ、しかしそれでもすべてがひどい 。
Schönhage–Strassenは追加を安くしていますか?全体の費用はいくらですか?
アルゴリズムが実際に使用しているためですか (と 2の累乗であることが保証されていますか?十分な積み重ねがありますそして、私は本当にわからないという論文のドイツ語。一方で、それがうまくいくための十分な単一性の根が保証されるとは思いません。