| 54 | == Resultados mediante acceso a resultados nativos == |
| 55 | |
| 56 | Este fue el segundo método de acceso a resultados y que se implementó probablemente por dos motivos |
| 57 | por un lado por la lentitud del método anterior y por otro por cuestionarse si los métodos anteriores |
| 58 | devolvían lo mismo que los resultados nativos. |
| 59 | |
| 60 | Estos métodos se encargaban de obtener de los resultados nativos los correspondientes a cada parte del modelo, |
| 61 | de modo que era necesario indicarle al objeto encargado de encontrarlos ({{{@MMS.ResultsAdapter}}} de qué objeto se trataba. |
| 62 | Para ello era necesario pasar como argumento la instancia adaptada del objeto para el que deseabamos los resultados. |
| 63 | |
| 64 | Así pues encontrábamos en el código de los ejemplos que primero se obtenía el adaptador de resultados: |
| 65 | {{{ |
| 66 | @MMS.ResultsAdapter results = estimation::GetResults(?); |
| 67 | }}} |
| 68 | luego se buscaba el objeto adaptado sobre el que se querían buscar los resultados: |
| 69 | {{{ |
| 70 | @MMS.SubmodelAdapter submodel = estimation::GetModelAdapter(?) |
| 71 | ::GetSubmodel("Veh.Tur.Mat"); |
| 72 | }}} |
| 73 | y finalmente se obtenían los resultados con llamadas como éstas: |
| 74 | {{{ |
| 75 | Serie outputR = results::GetOutput(submodel); |
| 76 | Serie noiseR = results::GetNoise(submodel); |
| 77 | Serie filterR = results::GetFilter(submodel); |
| 78 | Serie residualsR = results::GetResiduals(submodel); |
| 79 | }}} |
| 80 | |
| 81 | === Ventajas === |
| 82 | |
| 83 | La principal ventaja ha de ser la confianza por el acceso a los resultados |
| 84 | nativos que no sólo eran conocidos sino también explorables con el inspector de TOLBase. |
| 85 | |
| 86 | === Inconvenientes === |
| 87 | |
| 88 | El principal inconveniente es que estos resultados no son accesibles cuando una |
| 89 | estimación ha sido guardada y posteriormente recuperada, ya que al guardar una |
| 90 | estimación sólo se guardan los parámetros estimados. |
| 91 | |
| 92 | Por ello, para permitir el uso de dichos métodos, al recuperar una estimación |
| 93 | guardada se construían unos pseudo-resultados nativos haciendo uso de los métodos |
| 94 | de evaluación y de los parámetros estimados almacenados. |
| 95 | |
| 96 | Sin embargo, esto tenía terribles consecuencias en el caso de modelos grandes |
| 97 | ya que la reconstrucción de los resultados se hacía enormemente lenta y consumidora |
| 98 | de RAM, lo primero como hemos comentado era esparable por el diseño de los métodos |
| 99 | de evaluación, lo segundo es debido a pérdidas de memoria (!) en las llamadas a funciones |
| 100 | que al repetirse una y otra vez ocupaban enormes cantidades de RAM. |
| 101 | |
| 102 | Este problema se intenta solucionar con un nuevo grupo de métodos que se diseñan para |
| 103 | la versión 0.6 y que se adaptan a la 0.5. |
| 104 | |
| 105 | Un inconveniente añadido de este grupo de funciones de acceso a los resultados nativos |
| 106 | es que no hayan resultados nativos porque éstos no se han calculado (véase el tique #270). |
| 107 | En esta situación, los métodos fallarán como es lógico. |