この資料によると、アトミック・タイプはインテグラル・タイプのT、つまり 列挙型またはポインタ型をサポートしています。インテル®TBBは浮動小数点/ダブルスを公式にサポートしていますか? 私はいくつかのパッチhereとRaf Schietekat hereを見たことがあります。最新の4.0リリースに組み込まれているかもしれません。私が読んだパッチから、私が気づいた唯一の大きな違いは、integer型からfloat/doubleへのreinterpret_castの追加でした。誰かがこれを明確にすることができれば、私はそれを感謝します。ありがとう!インテル®TBBのアトミック・ダブル/浮動小数点
8
A
答えて
1
64ビットと32ビットの整数の上に構築された浮動小数点数のサポートを簡単に追加できます。原子ロード/ストア/交換は、reinterpret_castを使用して直接ラッパーとして実装することができ、アトム比較演算を伴うループを使用してアトミック算術演算を実装することができます。
1
C++ 11は、原子浮動小数点数と倍数をサポートしています。しかし、std::atomic_fetch_add
のような算術関数は整数型に対してのみサポートされています。
C++ 11コンパイラをお持ちの場合は、std::atomic
に切り替えることをお勧めしますので、文書化されていない動作に頼る必要はありません。
0
test_atomic.cppの非整数型のテストは、2008年に追加されました(Rafとの議論の直後)。したがって、問題の時よりも早くても、TBBはdouble float & double atomicsをサポートしています(しかし、fetch_and_storeとcompare_and_exchangeのread-modify-write opsのみに制限されます)。
関連する問題
- 1. インテルAVX:倍精度浮動小数点変数
- 2. ダブル浮動小数点数の不正確さの原因
- 3. 変数の浮動小数点浮動小数点
- 4. 浮動小数点数浮動小数点数値
- 5. 浮動小数点数は浮動小数点数ですか?
- 6. 浮動小数点値と浮動小数点値の比較
- 7. MySqlの浮動小数点浮動小数点データ型
- 8. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 9. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 10. 浮動小数点の浮動小数点が正しく浮動しない
- 11. 小数点浮動小数点(C++)
- 12. CSSが浮動小数点浮動小数点を返す
- 13. IE7浮動小数点浮動小数点問題
- 14. 中央要素が浮動小数点浮動小数点:左
- 15. 32651:浮動小数点浮動小数点浮動小数点エラーのルビー比較
- 16. CSSが浮動小数点数の浮動小数点数の問題
- 17. 浮動小数点数列
- 18. は、浮動小数点数
- 19. 浮動小数点数
- 20. SHA256浮動小数点数
- 21. 浮動小数点のコサイン
- 22. Cの浮動小数点
- 23. Javascript/jQuery - 浮動小数点数と浮動小数点数()への問題
- 24. 浮動小数点数型のC++での浮動小数点問題
- 25. 倍精度浮動小数点数の浮動小数点コードを読む
- 26. 浮動小数点数を浮動小数点数に変換する
- 27. フィールドセット内の伝説と浮動小数点の浮動小数点
- 28. 浮動小数点型2の浮動小数点型の妥当性チェック
- 29. Python浮動小数点エラー
- 30. ソフトウェア浮動小数点(Howto)
また、算術関数を 'std :: atomic'で簡単かつ効率的にエミュレートすることができます。興味深いもの: –
それを行う最善の方法は何ですか?それは比較とスワップのループですか? (現在の値を取得して新しい結果と交換してください。値が変更されたために失敗した場合は、再試行してください) –
これは方法です。 –