問題タブ [adx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - MSVC および ICC を使用した _addcarry_u64 および _addcarryx_u64
MSVC と ICC は両方とも、組み込み関数_addcarry_u64
と_addcarryx_u64
.
Intel の Intrinsic Guideとホワイト ペーパーによると、これらはそれぞれ と にマッピングする必要がadcx
ありadox
ます。ただし、生成されたアセンブリを見ると、それらがそれぞれ および にマップされadc
、adcx
にマップされる組み込み関数がないことが明らかadox
です。
MSVC と ICC で ADX を有効にする方法がわかりません。/arch:AVX2
さらに、MSVCで AVX2 を有効にするか-march=core-avx2
、Linux の ICC でAVX2 を有効にするようにコンパイラに指示しても、違いはありません。
MSVCのドキュメントに_addcarryx_u64
は ADX のテクノロジが記載_addcarry_u64
されていますが、記載されているテクノロジはありません。ただし、これらの組み込み関数に関する MSVC のドキュメントのリンクは、MSVC 自身のドキュメントと生成されたアセンブリと矛盾する Intel Intrinsic ガイドに直接移動します。
このことから、Intel の Intrinsic ガイドとホワイト ペーパーは間違っていると結論付けます。
これは、インライン アセンブリが許可されていない MSVC の意味にある程度の意味がありadc
ます_addcarry_u64
。
adcx
との大きな利点の 1 つは、adox
異なるフラグ (キャリーCF
とオーバーフローOF
) で動作することです。これにより、2 つの独立した並列キャリー チェーンが可能になります。しかし、これはadox
どのように可能でしょうか? ICC では少なくとも 1 つがインライン アセンブリを使用できますが、これは 64 ビット モードの MSVC では不可能です。
Microsoft と Intel のドキュメント (ホワイト ペーパーとオンラインの組み込みガイドの両方) は現在、一致しています。
_addcarry_u64
固有のドキュメントには、のみを生成すると書かれていadc
ます。_addcarryx_u64
組み込み関数は、またはのいずれadcx
かを生成できますadox
。ただし、MSVC 2013 および 2015 では_addcarryx_u64
、adcx
. ICC は両方を生成します。
c++ - clang からキャリー コードを使用して適切な add を作成する
複数の機械語で構成される 2 つの数値を追加するコード (現在は clang++-3.8 を使用) を作成しようとしています。今のところ単純化するために、128 ビットの数値のみを追加していますが、これを一般化できるようにしたいと考えています。
最初のいくつかの typedef:
そして「結果」タイプ:
最初の関数 はf
、符号なしワードの 2 つのペアを取り、結果を返します。中間ステップとして、これらの 64 ビット ワードの両方を 128 ビット ワードに入れてから、次のように追加します。
これは実際には次のように非常にうまくインライン化されます。
代わりに、次のように、clang 多精度プリミティブを使用して、より単純な関数を作成しました。
これにより、次のアセンブリが生成されます。
この場合、追加の追加があります。通常add
のローワードを実行してからハイワードを実行する代わりにadc
、単にadd
ハイワードを実行し、次にadd
ローワードを実行adc
し、ハイワードをゼロの引数で再度実行します。
これはそれほど悪くはないように見えるかもしれませんが、より大きなワード (192 ビット、256 ビットなど) でこれを試すとor
、単純なadd
, adc
, adc
.. . adc
.
多精度プリミティブは、意図したとおりにひどい仕事をしているようです。
したがって、私が探しているのは、任意の長さに一般化できるコードです (それを行う必要はありません。方法を理解するだけで十分です)。これは 128 ビット型で組み込まれています (残念ながら、これを簡単に一般化することはできません)。これは単に一連のadc
s であるべきだと思いますが、別のものであるべきであるという引数とコードを歓迎します。
mql4 - MQL4/5 で平均方向性指数 Expert Advisor を設計するには?
私は ADX に基づく取引戦略を持っています。最も簡単な方法は、ADX が 30 分足チャートと時間足チャートの両方で 30 を超えたときにエントリーします。
ADX が 30 分と 1 時間の時間枠の両方でレベル 30 に達したときに、音声アラートを出すためだけに、MQL5 で EA を作成する必要があります。
誰かがそれを手伝ってくれたら本当にありがたいです。
directory - IBM 4690 CBASIC のディレクトリー・リスト
コントローラー ドライブのディレクトリ リストを実行するための正しい ADX 呼び出しを探しています。IBM プログラミング ガイドから、端末用の ADX_TDIR が表示されますが、コントローラー プログラムのバリアントはありますか?
r - ADX 関数の結果が r で正しくない
ADX 関数を使用すると、正しい答えが得られません。たとえば、2017 年 10 月 4 日の ADX(14) 値は 12.87 です。以下のコードは 9.53 です。これがオフになっている理由はありますか?