私はRunge-Kutta法を用いて結合されたマスター方程式の大きな集合のダイナミクスを計算するコードを書いています。このコードには、各ステップが独立している多くのfor-loopが含まれています。 Grand Central Dispatchを使用してプログラムをスピードアップするつもりです。私はhttp://www.macresearch.org/cocoa-scientists-xxxi-all-aboard-grand-centralにある例に基づいて試みました。私のコードもmacresearchの例も私のマシンではコンパイルされません(MacOSX 10.6.8 Xcode 4.0.2)。だからここに私のコードです:dispatch_apply(GCD)ループから配列に書き込む方法は?
...
double values[SpaceSize], k1[SpaceSize];
for (int t=1 ; t<Time ; t++) {
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//k1
for (int k=0 ; k<SpaceSize ; k++) values[k]=Concentration[k][t-1];
dispatch_apply(SpaceSize, queue,
^(size_t k) {
k1[k]=h * derives(values, SpaceSize, k); //<--error
}
);
...
それはエラーで破る:
Semantic Issue: Cannot refer to declaration with a variably modified type inside block
私はベクターで配列(値、K1)を交換しようとしたが、その後、私は代わりに別のエラーメッセージが表示されます。
Semantic Issue: Read-only variable is not assignable
これは私が立ち往生しているところです。本当にそのエラーメッセージが私に伝えようとしていることは分かりません。私はかなりの時間を探して、誰かが助けることができるかどうか尋ねる。私はこの問題を解決するためのヒントやより良い方法に非常に感謝しています。
ありがとう!それは問題を解決するようだ! – Jofro