問題タブ [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.

0 投票する
2 に答える
2406 参照

visual-c++ - MSVC および ICC を使用した _addcarry_u64 および _addcarryx_u64

MSVC と ICC は両方とも、組み込み関数_addcarry_u64_addcarryx_u64.

Intel の Intrinsic Guideホワイト ペーパーによると、これらはそれぞれ と にマッピングする必要がadcxありadoxます。ただし、生成されたアセンブリを見ると、それらがそれぞれ および にマップされadcadcxにマップされる組み込み関数がないことが明らかadoxです。

/arch:AVX2さらに、MSVCで AVX2 を有効にするか-march=core-avx2、Linux の ICC でAVX2 を有効にするようにコンパイラに指示しても、違いはありません。 MSVC と ICC で ADX を有効にする方法がわかりません。

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_u64adcx. ICC は両方を生成します。

0 投票する
3 に答える
1880 参照

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 ビット型で組み込まれています (残念ながら、これを簡単に一般化することはできません)。これは単に一連のadcs であるべきだと思いますが、別のものであるべきであるという引数とコードを歓迎します。

0 投票する
1 に答える
612 参照

mql4 - MQL4/5 で平均方向性指数 Expert Advisor を設計するには?

私は ADX に基づく取引戦略を持っています。最も簡単な方法は、ADX が 30 分足チャートと時間足チャートの両方で 30 を超えたときにエントリーします。

ADX が 30 分と 1 時間の時間枠の両方でレベル 30 に達したときに、音声アラートを出すためだけに、MQL5 で EA を作成する必要があります。

誰かがそれを手伝ってくれたら本当にありがたいです。

0 投票する
1 に答える
103 参照

directory - IBM 4690 CBASIC のディレクトリー・リスト

コントローラー ドライブのディレクトリ リストを実行するための正しい ADX 呼び出しを探しています。IBM プログラミング ガイドから、端末用の ADX_TDIR が表示されますが、コントローラー プログラムのバリアントはありますか?

0 投票する
2 に答える
423 参照

r - ADX 関数の結果が r で正しくない

ADX 関数を使用すると、正しい答えが得られません。たとえば、2017 年 10 月 4 日の ADX(14) 値は 12.87 です。以下のコードは 9.53 です。これがオフになっている理由はありますか?