Linux で double、long double、または quadruple 精度で実行できる多次元数値積分コードを作成しました。すべてのモードは問題なくコンパイルおよび動作しますが、Mac で 4 倍精度の場合に同じコードをコンパイルしようとすると、意味がわからないエラーが発生します。
私は g++ でコンパイルしていますが、他のコンパイラも試しました (clang が何をするかを確認するためだけに試しましたが、私の知る限りでは 4 倍精度をサポートできませんか? 間違っていたら訂正してください)。
関連するライブラリとヘッダー (quadmath.h ヘッダーを含む) をリンクすると、quadmath.h から次のエラーが発生します。
Unsupported machine mode 'TC'
typedef _Complex float __attribute__((mode(TC))) __complex128
error unknown type name '__float128'
__float128 エラーは、acosq、asinq などのさまざまな数学演算でも再表示されます...
サポートされていないマシン モード エラーに遭遇したことはありません。GNU コンパイラに関する注意事項GNU コンパイラに関する注意事項およびGNU 浮動小数点型を見てきました。
人々がコンパイルしてテストするための最小限の作業例を作成することは難しいため、エラーを追跡して何が問題なのかを突き止めようとしていますが、この段階で何をすべきかわかりません. これらのエラー メッセージが表示された場合、次のステップは何でしょうか? Linux と Mac の違いについて、私が見逃していることはありますか? 私は常に Linux でコードを書いてきたので、後者には慣れていません。また、Mac での 4 倍精度計算へのアプローチ方法は、慣れ親しんだ方法とは異なるようです。
ご協力ありがとうございました
-イエティ