しばらくの間double-double 算術の論文とソース コードをたどっていますが、 dd_real ( として定義されているstruct dd_real { double x[2];...}
) 数値が 2 つの double にどのように分割されるかはまだわかりません。文字列で初期化すると、 と はどうdd_real pi = "3.14159265358979323846264338327950";
なるでしょうか? 私はそれを理解し、できればそれを行う小さな Python 関数を作成する必要があります。pi.x[0]
pi.xi[1]
QD ライブラリを呼び出したくない理由は、Python で正しい分割を再実装して、35 桁の精度定数 (文字列として指定)double2
を CUDA コードに送信することを好むからです。 GQD ライブラリによって double-double reals として扱われます。これは、CUDA で拡張精度計算を処理する唯一のライブラリのようです。残念ながら、Python 側では mpmath も除外されます。