問題タブ [blitz++]
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.
c++ - マップのキーとしての Blitz++ 配列
一般に、他の形式の配列よりも高いパフォーマンスを提供することを理解しているため、blitz++ 配列を使用しようとしています。blitz++ 配列をマップのキーとして使用することは可能ですか? しようとしている
コンパイルしません。エラーは次のとおりです。
/usr/include/c++/4.6/string:50:0 からインクルードされたファイルで、
/usr/include/c++/4.6/bits/stl_function.h: メンバー関数内 'bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = blitz::Array]' :
/usr/include/c++/4.6/bits/stl_function.h:236:22: エラー: 変換できません 'blitz::BzBinaryExprResult, blitz::Array >::T_result {aka blitz::_bz_ArrayExpr, blitz::FastArrayIterator, blitz ::Less > >}' を 'bool' に変換
これは演算子の定義を要求する問題<
ですか? もしそうなら、自分で定義できますか?
答え
Jimmy Thompson が提案したように、考えられる解決策は次のように定義することです。
それで
c++ - ブリッツ++ 0.10のステンシル
Blitz++ User Guide のステンシル オブジェクトを使用しようとしています。
しかし、コンパイル後にこのエラーが発生しました
他の配列操作 (乗算、場所など) は機能しています。誰が私が間違っているのか説明できますか?
UPD
ヘッダーを見逃しているようですがblitz/array/stencil-et.h
( example にありますstencil2.cpp
)、別のエラーがあります
何か案は?
エラー メッセージを含むコードの完全な例へのリンクhttps://gist.github.com/erthalion/8784150
c++ - restrict キーワードを使用して、関数の「型修飾子」警告を取り除きます
次の形式の Blitz++ をコンパイルするときに表示される警告をクリーンアップしようとしています。
TinyVector
このような(クラスの)メンバー関数から
私が知る限り、restrict
キーワードが原因で警告が表示されます。注:restrict
を__restrict__
(g++ が理解する) に置き換えるマクロがあります。
キーワードを削除することで、警告を取り除くことができます。ただし、これは高性能の数値ライブラリであると想定されているため、restrict
キーワードが許可するコンパイラの最適化を失いたくありません。
restrict
を完全に削除せずにこれらの警告を抑制するにはどうすればよい-Wall
ですか?
c++ - Blitz-0.10 ライブラリのビルド方法は?
vs2012 でblitz++ 0.10ライブラリを使用する必要があります。残念ながら、私は c++ を初めて使用するので、このライブラリをどのように構築すればよいかを知るのに十分な経験がありません。
これまで、私はCMakeを使用してライブラリ (VTK など) を構築してきました。しかし、ブリッツの場合、「 CMakeLists.txt 」ファイルがない理由については、どうすればよいかわかりません。
誰かがこのように(一歩一歩)私を助けることができるかどうか疑問に思っていました。(ウィン7、64ビット、VS2012 )
c++ - プロシージャの入力/出力パラメーターとして Blitz++ サブ配列を渡す方法
入力パラメータとして 2 つの tensor を取り、結果を別の tensor に生成するFFTfftconvx
プロシージャがあります。すべてのテンソルは Blitz++ arrays として定義されます。ここで、は配列のランクです。プロシージャは、二重ループ内で複数回呼び出す必要があります。Ttnsr
S
G
Array<complex<double>, N>
N
fftconvx
理想的には、サブ配列を渡すStnsr(ri,rj,rk,0)
かStnsr(ri,rj,rk,1)
、結果をサブ配列に受け取るGtnsr(t,p,ri,rj,rk,0)
かGtnsr(t,p,ri,rj,rk,1)
、次のようにします。
変数ri,rj,rk
は Blitz++ 配列範囲です。残念ながら、これは機能せず、次のコンパイル エラーが発生します。
の署名fftconvx
は次のとおりです。
入力パラメーターとして渡される配列と変数は他にもありますが、簡潔にするために省略します。
S
これまでのところ、一時的な配列とに基づくソリューションを考え出しましたG
:
もっとエレガントな解決策があると思います。
c++ - ブリッツは vs 2013 では機能しません
私はvs 2010で書いたプロジェクトを持っています。このプロジェクトではblitzが使用されています。しかし、2013年にこのプロジェクトを開いて実行しようとしたとき。いくつかのエラーは言う:
エラー C2955: 'std::rank': クラス テンプレートの使用にはテンプレート引数リストが必要です ~~\blitz\indexexpr.h 69 1 MOM
したがって、indexexpr.hに表示されます
どうすれば解決できますか?インターネットから同様のエラーが表示されます。しかし、それらのエラーは slice.h に表示されます。
c++ - C++ ランダム値と Blitz++
以下のコードは、コンパイルして実行しています。コードはブリッツ マトリックスをランダムな値に初期化する必要がありますが、マトリックスのすべての要素が同じ値になるため失敗します。
出力は私が望んでいたものではありません
Blitz-Matrix をランダムな値に初期化する適切な方法は何ですか?