問題タブ [gsl]
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++ - 二項分布による乱数
劇的に異なる試行サイズ (ただし、ほとんどは小さい) の二項分布から多数の乱数をすばやく生成する必要があります。私は初心者のプログラマーであり、車輪の再発明が好きではないので、手動でアルゴリズムをコーディングする必要がないことを望んでいました (たとえば、11 月のこの関連ディスカッションを参照してください)。Boostは二項分布変量のジェネレーターを提供していないようですが、TR1とGSL行う。どちらかを選択する正当な理由はありますか、それとも自分の状況に合わせてカスタマイズしたものを書く方がよいでしょうか? これが理にかなっているのかどうかはわかりませんが、プログラム全体で一様分布と二項分布から数値を生成することを交互に行い、それらが同じシードを共有し、オーバーヘッドを最小限に抑えたいと考えています。私が考慮すべきことについて、いくつかのアドバイスや例が欲しいです。
iphone - GSL を iPhone Xcode に統合する
Xcode を使用して GSL (Gnu Scientific Library) を iPhone プロジェクトに統合しようとしています。
課題は、GSL のすべてのモジュールが異なるフォルダーにあるにもかかわらず、それらのヘッダー ファイルが参照されるときに、または の代わりに参照されることが多いことです。
少なくとも、Xcode の再帰的なヘッダー ファイル検索を使用してそれを見つけることができました。しかし、基本的にファイルが見つかりません。
階層的な GSL 構造に対処して Xcode にコンパイルする簡単な方法はありますか?
すべての #INCLUDE 行を修正する退屈な方法でそれを行うことができますが、より良い代替手段があることを願っています。このようにして、コミュニティによって変更が加えられたときに GSL をより簡単に更新できます。
注: Xcode は適切なヘッダー ファイルの場所を見つける必要があることがわかりました (プロジェクト ビルド設定だけでなく、ターゲット ビルド設定も必ず調整してください)。
c - GPUでの乱数の使用
モンテカルロシミュレーションにnvidiaGPUを使用して調査しています。ただし、gsl乱数ジェネレーターと、SPRNGなどの並列乱数ジェネレーターを使用したいと思います。これが可能かどうか誰かが知っていますか?
アップデート
GPUを使用してRNGで遊んだことがあります。現在、良い解決策はありません。SDKに付属しているMersenneTwisterは、シードの生成に非常に長い時間がかかるため、(私の)モンテカルロシミュレーションにはあまり適していません。
NAGライブラリはより有望です。RNは、バッチまたは個別のスレッドで生成できます。ただし、現在サポートされているディストリビューションは、均一、指数、通常の一部のみです。
c - GSLで累積分布関数を使用しようとしています
やあみんな、GSL(Gnu Statistics Library)を使用して、Cの数式の標準正規分布の累積分布関数を計算しようとしています。
gslをインストールして含めましたが、使用方法を理解するのに問題があります。
必要な機能は次のとおりです。
私が持っている数式には、累積分布関数に渡す数値が1つしかないため、ここで何をすべきかよくわかりません。(これはおそらく統計についての私のくだらない理解のためです)
1つの入力変数でgslを使用してcdfを取得する方法を誰かが教えてくれれば幸いです。
ドキュメントには次のように書かれています。
この関数は、対数正規分布から確率変数を返します。分布関数は、
p(x)dx = {1 \ over x \ sqrt {2 \ pi \ sigma ^ 2}} \ exp(-(\ ln(x)-\ zeta)^ 2/2 \ sigma ^ 2)dx
x>0の場合。
基本的に、誰かがgsl_rng、zeta、およびsigmaがどうあるべきかを説明できますか?
編集:わかりました、それを正常にするために、ゼータは0(mu)であり、シグマは1(std dev)である必要があると思いますか?そうですか?gsl_rngとは何ですか?
python - Python の GCC 4.0 で Pygsl を使用する
GCC の最新バージョンを使用して pygsl をインストールしようとしています。
エラーが発生します:
何がこれを引き起こしているのでしょうか?ありがとう。
python - GSL (または他のライブラリ) を共有ライブラリに静的にリンクする
注: 以下で Python について言及していますが、私の問題が Python に関連していない可能性は十分にあります。私が間違っていなければ、私が言及している「モジュール」は C ライブラリと同等です — 少なくとも私の問題に関しては。
Debian では、GSL を使用する C で Python モジュールを作成しようとしています。次の Makefile は、それを正常にコンパイルします。
このモジュールは私以外の (Linux) マシンで使用されることになっているため、GSL をモジュールに含める (またはモジュールに同梱する) ことを望みます。
ただし、-static
Makefile の最後の行にオプションとして追加すると、次のエラーが発生します。
ライブラリ リンクの前に追加-Wl,-Bstatic
すると、別のエラーが発生します。
うまくいかなかったその他のもの: fPIC、-static-libgcc、オプションの並べ替えを使用して GSL を再コンパイルする。私がまだ試していないのは、gcc を fPIC などでコンパイルすることです。
c++ - C++ でクロージャとして機能する関数ポインタ
C++ で関数ポインタとなるクロージャを効果的に作成する方法はありますか? 私は Gnu Scientific Library を使用しており、gsl_functionを作成する必要があります。この関数は、作成時に使用可能ないくつかのパラメーターを効果的に「閉じる」必要があります。gsl_function 構造体ですべてのパラメーターをパラメーターとして渡す必要がないように、クロージャーを作成するための優れたトリックはありますか? そうでない場合は、これらのパラメーターを含む配列へのポインターを渡す必要がありますか?
EDIT 私はboost::bindを次のように使用しようとしました:
しかし、次のエラーメッセージが表示されました:
c++ - C/C++ で GSL を使用した平面へのポリゴンの投影
ポリゴンを平面に投影するという一般的な問題は広く解決されていますが、私の特定のケースについて誰かが提案できるかどうか疑問に思っていました。
3 空間に平面ポリゴン P があり、単位ベクトル u に直交する原点を通る平面に投影したいと思います。P の頂点と u の座標は、私が持っている唯一のデータです (すべて R^3 の標準的な基準について)。
ただし、投影された座標だけが必要なわけではありません。実際に、u に直交する平面の正規直交基底を見つけて、この新しい基底で射影された頂点の座標を見つけたいと思います。
基底自体は、それが正規直交である限り問題ではありません。つまり、GNU Scientific Library のフレームワーク内で、次の 2 つのことを行う必要があります。
(1) 単位ベクトル u に直交する同次平面の正規直交基底ベクトルを 2 つ見つけます。
(2) 平面上への P の頂点の射影のこの基準で座標を見つけます。
gsl を使用してこれを行う方法についてのアイデアはありますか?
math - GSL / BLAS:行列と逆行列を乗算します
GNUGSLを使用して行列計算を行っています。行列Bに行列Aの逆行列を乗算しようとしています。
ここで、GSLのBLAS部分にこれを行う機能があることに気付きましたが、これはAが三角形の場合に限られます。これには特別な理由がありますか?また、この計算を行うための最速の方法は何でしょうか?LU分解を使用してAを反転する必要がありますか、それともより良い方法がありますか?
FWIW、Aの形式はP'G Pです。ここで、Pは正規行列、P'はその逆行列、Gは対角行列です。
本当にありがとう :)
c++ - コピーコンストラクタのconstの正確性の問題?
メモリ管理などを利用するために、C 構造体を C++ クラスにラップしようとしています。構造体をプライベート メンバーにし、アクセスを提供するパブリック関数を提供しました。オブジェクトを引数として取るすべての関数はconst
シグネチャに含まれているため、戻り値の型は一定です。
それはすべてうまくコンパイルされます。巧妙になってコピー コンストラクターを追加しようとすると、問題が発生します。それをクラスに導入する...
次のコンパイラ エラーが発生します。
Macでg ++を使用しています。さまざまなバリエーションを試しましたが、コンパイラ (または自分自身!) をどのように混乱させているのかまだわかりません。興味深いことに、const
指定子を から削除すると、同じエラーが発生しますrng()
。
何か案は?
使用される関数のドキュメント: 乱数生成、「環境変数」および「ジェネレーターのコピー」に関するセクション。