191 | | salteado de entre las celdas de la matriz de input o de output). Por este motivo no resulta |
192 | | ni mucho menos trivial condicionar de una forma genérica y eficiente. |
193 | | Posiblemente sea necesaria una función C++ a la que se le pase el miembro a modificar, los nuevos |
194 | | valores y una serie de argumentos opcionales para especificar modificaciones parciales, para |
195 | | que la acción se ejecute con la celeridad debida. |
196 | | {{{ |
197 | | #!java |
198 | | Real ChangeValues({Real|Matrix|VMatrix} store, {Real|Matrix|VMatrix} newValues [, Set optArgs=Empty] ) |
199 | | }}} |
200 | | La función {{{ChangeValues}}} será llamada desde el master para establecer, total o parcialmente según |
201 | | se indique en los argumentos opcionales {{{optArgs}}}, el nuevo valor o vector de valores {{{newValues}}} |
202 | | de cierto miembro de un bloque que será el dado por el argumento {{{store}}}. |
203 | | En la definición del master, el protocolo tendría la forma de una tabla con la estructura básica de |
204 | | condicionamiento, que en cada fila incluiría la información de condicionamiento de una variable o |
205 | | grupo de variables: [[BR]] |
206 | | {{{ |
207 | | Real cnr_blk : Índice del bloque condicionador |
208 | | Set cnr_idx : Índices de los parámetros del grupo dentro del bloque condicionador |
209 | | Real cnd_blk : Índice del bloque condicionado |
210 | | Text cnd_mbr : Nombre del miembro del bloque condicionado que se ha de modificar con {{{ChangeValues}}} |
211 | | Set cnd_opt : Argumentos opcionales para pasar como {{{optArgs}}} a {{{ChangeValues}}} |
212 | | }}} |
213 | | Cada vez que se genera una muestra del i-ésimo bloque hay que modificar los valores correspondientes |
214 | | a los enlaces para los que {{{cnr_blk = i}}}. Primero habría que copiar el sub-vector del bloque recién |
215 | | generado en la posición correspondiente dentro del vector conjunto, que será el que se almacene en |
216 | | el disco como cadena MCMC. Luego habría que llevar a cabo el condicionamiento de cada uno de los bloques |
217 | | afectados llamando a {{{ChangeValues}}}. |
| 191 | salteado de entre las celdas de la matriz de input o de output). Además, los valores con los |
| 192 | que hay que sustituir los valores a condicionar no tienen porqué ser directamente los valores |
| 193 | condicionadores, sino que en general serán el resultado de una función dependiente de los mismos. |
| 194 | Por estos motivos no resulta ni mucho menos trivial condicionar de una forma genérica y eficiente. |
| 195 | También habría que copiar el sub-vector del bloque recién generado en la posición correspondiente |
| 196 | dentro del vector conjunto ubicado en el master, que será el que se almacene en el disco como cadena |
| 197 | MCMC. |