問題タブ [valarray]

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 投票する
9 に答える
59879 参照

c++ - C++ valarray とベクトル

ベクター大好きです。彼らは気の利いた、速いです。しかし、valarray と呼ばれるものが存在することは知っています。ベクトルの代わりに valarray を使用するのはなぜですか? valarray には構文糖衣があることは知っていますが、それ以外に、いつ役立つのでしょうか?

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

c++ - ベクトルへのポインターですが、valarray へのポインターではありませんか?

配列の途中で const ポインターを抽出しようとしています。ベクトルを使用すると問題なく動作することがわかりましたが、valarray を使用するとコンパイルされません (VS 2008)。誰かが問題が何であるかを説明できますか?

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

c++ - is there any way to avoid the copy from and to between the valarray and array?

リストには大量のデータがあり、たとえば各要素に数キロバイトあります。数値処理を行うために、それぞれを抽出したいと思います。これらのデータは、もともと float[] として格納されています。処理には多くのインデックスとグローバルな計算が含まれるため、valarray はプログラムしやすいのではないかと思います。しかし、valarray を使用する場合は、最初に配列から valarray にコピーしてから、配列にコピーし直す必要があります。これを回避する方法はありますか?配列で直接作業できるようにする方法はありますか? または、同様の問題を解決するためのより良い方法はありますか?

0 投票する
7 に答える
11547 参照

c++ - valarray が遅いのはなぜですか?

ベクトルと行列を操作するときはMATLABによく似ているため、valarrayを使用しようとしています。最初にいくつかのパフォーマンス チェックを行ったところ、Stroustrup による本C++ プログラミング言語で宣言されているように、valarray がパフォーマンスを達成できないことがわかりました。

テスト プログラムは、実際に double の 500 万回の乗算を実行しました。c = a*b は少なくともforloop double 型の要素乗算に匹敵すると思っていましたが、完全に間違っています。複数のコンピューターと Microsoft Visual C++ 6.0 および Visual Studio 2008 で試しました。

ちなみに、次のコードを使用して MATLAB でテストしました。

結果は 46 ミリ秒です。今回は高精度ではありません。参考としてのみ機能します。

コードは次のとおりです。

実行結果: (最大速度最適化のリリース モード)

同じ最適化のデバッグ モード:

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

c++ - std::valarray と std::array の違いは何ですか

valarrayクラスの見た目はクラスと同じですが、どこを優先するか、またはその逆arrayを説明していただけますか?valarrayarray

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

c++ - valarray と vector: なぜ valarray が導入されたのですか?

はい、これは以前に質問されており、答えは次のとおりです。

valarrays (値配列) は、Fortran の速度の一部を C++ にもたらすことを目的としています。valarrayコンパイラーがコードに関する仮定を作成し、より適切に最適化できるように、ポインターを作成しないでください。(Fortran が非常に高速である主な理由は、ポインター型がないため、ポインターのエイリアシングが発生しないためです。)

また:

valarrayまた、エイリアシングの可能性を排除することになっています [...]

しかし、これらの答えは私には意味がありません。

valarrayvectorクラス テンプレートであり、インスタンス化されるまで存在しません。
そしてもちろん、 avector<int>はエイリアシングの問題を引き起こすことはありませんvalarray<int>

これを考えると、 の目的は何でしたか?valarrayまた、なぜ同じ機能を単純に に入れなかったのvectorですか?

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

c++ - std::vector を std::valarray に割り当てます

私は を持っているvector<vector<double>ので、値の表 (マトリックス) があります。列には惑星の位置と速度が含まれているため、行には同じ惑星のデータが格納されます。valarray数学演算が必要なため、行を a に変換したい。次に、valarrays (惑星) をベクトルに格納します。私はこのように試しました:

このコードは機能せず、ベクトルを valarray に代入する際にエラーが発生します (明らかに許可されていません)。

私がやろうとしたことを簡単な方法で達成する方法はありますか?

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

c++ - valarrayの連結

にいくつかのデータが保存されていstd::vector<std::vector<double>ます。std::valarrayこれを使用して、からを作成しましたstd::vector<std::vector<double>

この新しいものを使用して、corpXのstd:valarray<double>を作成するので、を取得します。次に、それぞれの最初の2つの値も別の値に格納する必要があります。std::vectorstd::vector<std:valarray<double>>std::valarraystd::valarray

どうすればこれを簡単な方法で達成できますか?ありがとうございました!

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

c++ - SSE / AVX のアラインされたメモリの valarray

valarraySSE と AVX でベクトル化できるように、アライメントされたメモリを確実に使用する方法はありますか? 私の知る限り、STL はアラインメントを保証しておらず、アロケーターを valarray に渡すことはできません。これを達成する別の方法はありますか?

よろしくお願いします!

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

c++ - valarray への raw ポインターの昇格

互換性のために C インターフェイスを持つライブラリを開発しています

whileは、scontextを格納する生のメモリを指しnum_elements doubleます。コードの残りの部分で、ライブラリ呼び出しが終わった後に解放せずstd::valarrayに一時的に管理するを構築する戦略はありますか?context