He escrito un código para calcular la dinámica de un gran conjunto de ecuaciones maestras acopladas utilizando el método de Runge-Kutta. El código contiene muchos bucles for, donde cada paso es independiente. Tengo la intención de utilizar Grand Central Dispatch para acelerar el programa. Basé mi intento en un ejemplo que encontré en http://www.macresearch.org/cocoa-scientists-xxxi-all-aboard-grand-central. Ni mi código ni el ejemplo de macresearch compilan en mi máquina (MacOSX 10.6.8 Xcode 4.0.2). Así que aquí está mi código:Cómo escribir en una matriz desde un ciclo 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
}
);
...
Rompe con el error:
Semantic Issue: Cannot refer to declaration with a variably modified type inside block
Probé la sustitución de las matrices (valores, k1) con vectores, pero luego me sale otro mensaje de error en lugar:
Semantic Issue: Read-only variable is not assignable
Ahí es donde estoy atascado, sin saber realmente lo que esos mensajes de error están tratando de decirme. Dedico bastante tiempo a buscar y preguntar si alguien podría ayudar. Estaría muy agradecido por consejos o mejores formas de resolver esto.
¡Muchas gracias! Eso parece solucionar el problema! – Jofro