問題タブ [ublas]

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 に答える
332 参照

c++ - 疎行列実装の C++11 互換性

ビルダーとして acompressed_matrixを使用して aを作成しようとしています:coordinate_matrix

これは、boost 1.54 と clang を使用すると正常に動作するようですが、std=c++11 を使用してコンパイルすると、エラーがスローされます。

C++ 11 とブースト 1.54 の既知の非互換性はありますか? それとも、C++11 エラーを起こしたのでしょうか? 1.55 の変更ログには、ublas もマトリックスも記載されていないため、まだ存在していると思います。

これは、gcc 4.8.2 と clang 3.4 の両方で発生します。

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

c++ - Boost Ublas Matrix のすべての要素の平方根

Boost Ublas 行列のすべての要素の平方根を計算しようとしています。これまでのところ、私はこれを持っていますが、うまくいきます。

しかし、私は std::transform を使用せず、代わりに次のようなことをしたいと思います: m3 = sqrtf(m1);

それを機能させる方法はありますか?私のアプリケーションはパフォーマンスに非常に敏感であるため、代替手段は、効率が損なわれない場合にのみ受け入れられます。

PS log10f、cos、acos、sin、asin、pow などの他の多くの操作に対してこれを実行したいと思います。これらすべてがコードに必要です。

0 投票する
0 に答える
639 参照

c++ - boost::numeric::ublas::matrix_vector_range を boost::numeric::ublas::basic_range で使用する方法正しく

boost::numeric::ublas::compressed_matrix<std::complex<double>,boost::numeric::ublas::row_major,0,boost::numeric::ublas::unbounded_array<std::size_t>>介して対角部分を作成して抽出しboost::numeric::ublas::matrix_vector_rangeます。ソースは次のとおりです。

そしてそれはうまくいきます。

次に、 FORTRAN 関数に を渡す必要がありcompressed_matrix、FORTRAN 関数では行インデックスと列インデックスが である必要があるためint、 に変更std::size_tintます。新しいソース コードは次のとおりです。

その後g++ -std=c++11 -O2 -march=native -DNEBUG、ソース コードをコンパイルし、実行可能ファイル (gcc バージョン 4.9.1) を実行します。次のエラーが表示されます。

次に、 /usr/ include /boost/numeric/ublas/storage.hppの 892 行目に移動すると、次のように表示されます。

しかし、私の場合start_は 未満ですstop。したがって、なぜそのようなエラーが表示されるのかわかりません。何が原因なのですか?

0 投票する
4 に答える
2819 参照

c++ - Armadillo+Atlas、Armadillo+OpenBLAS、Armadillo+uBLAS、Armadillo+MKLとは?

多くのウェブサイトで、彼らは Armadillo+何かについて話しています。彼らはどういう意味ですか?

私はArmadilloライブラリを次の形で使用しています

Linux 環境で。

このウェブサイトでは

http://nghiaho.com/?p=1726

Armadillo+OpenBLASが挙げられています。彼らはどういう意味ですか?使い方はArmadillo+OpenBLAS


アップデート

1年以上経った今。orArmadilloなどの実装のラッパーであるこのポイントを追加するだけです。行列演算の実装ではありません。BLASOpenBLAS

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

c++ - BOOST UBLAS MyMatrix を使用した XLW 製の XLL データ型を Double に変換 ** 失敗

XLW を使用して、Excel に登録する関数の XLL を作成しています。XLL は、C++ DLL 内の実際の数学モデルを呼び出します。

UBLAS で BOOST を使用して、XLL MyMatrix データ型から C++ DLL が入力に使用する double ** への変換を支援しています。これは正しくビルドされ、開発環境で配列の入力と出力を持つ関数を正しく使用できます。

しかし、InstallShield インストーラーを使用して Excel アドインをインストール先のコンピューターにインストールすると、配列入力を使用する関数は、C++ DLL からの関数の戻り値ではなく、"Conversion to double" エラーを返します。

これは私がこれまでに試したことですが、運が悪いです:

1. BOOST BCP を使用してすべての Numeric ライブラリを収集し (UBLAS は登場しませんでした)、それを Visual Studio 2013 プロジェクトに含めました。次に、インクルードから BOOST_ROOT を取り出し、プロジェクトのプロパティを使用して、プロジェクトにあったものを使用するようにしました (私の限られた理解から)

  1. 両方のビット数の Microsoft C++ 再頒布可能パッケージをすべて、対象のコンピューターにインストールします。

  2. コピー先のコンピューターに BOOST をダウンロードしてビルドし、BOOST_ROOT の環境変数を作成します。宛先コンピューターに XLW をインストールし、宛先コンピューターの開発環境のすべての環境変数を一致させました。

  3. Dependency Walker を使用して、すべての依存 DLL が対象のコンピューターにあることを確認しました。

すべて運が悪い。インストーラーには何を含める必要がありますか? お時間をいただきありがとうございます。

開発環境: Visual Studio 2013 および 2015 を搭載した Windows 10

宛先コンピューター: Office 2016 を搭載した Windows 10

MyMatrix 宣言:

関数宣言の MyMatrix:

C++ DLL を呼び出し、Box を使用して MyMatrix を double に変換 **

変換を行うボックス

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

c++ - boost::numeric::ublas ベクトルを別のサブベクトルまたはサブマトリックスから作成する