close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Last modified 15 years ago

#205 closed enhancement

Uso de API Modular del tipo Primary — at Version 2

Reported by: mafernandez Owned by: mafernandez
Priority: major Milestone: Strategy and Adapter 0.5
Component: StrategyBSR Keywords:
Cc:

Description (last modified by Pedro Gea)

Para acelerar la construcción de estructuras internodales ( i.e.

jerarquías) es necesario reescribir la estructura de los adaptadores para
que los ficheros ASCII producidos sean solamente de tipo Primary.

Change History (2)

comment:1 Changed 15 years ago by mafernandez

Component: GeneralStrategyBSR
due_date: MM/DD/YY03/30/10
estimated: 08
Milestone: Strategy & Adapter 0.5
Owner: set to mafernandez
Status: newassigned
version: 0.60.5

El último comentario del ticket https://www.tol-project.org/ticket/745
hace referencia a un cambio que se introdujo en el API de un modulo tipo
"primary".

Un modulo "primary" debe responder al siguiente API (se da con un ejemplo)
para ofrecer las ecuaciones de regresión:

      Real Get.Equation.Size( Real void ) { VRows( _.Y ) };

      VMatrix Get.OutputVMatrix( Real void ) { _.Y };

      VMatrix Get.InputVMatrix( Real void ) { Eye( VRows( _.Y ) ) };

la información de los omitidos es dada con las funciones siguientes:

/* retorna el número total de missings en el segmento contando tanto

output como inputs*/

Real Get.Missing.Size( Real void );

/* retorna la información del missing con índice index

1<=index<=Get.Missing.Size(0)*/

Set Get.Missing( Real index);

La estructura que retorna Get.Missing es la siguiente (tomada de DBApi):

@Bsr.Missing.Info(
  /* nombre del parámetro missing */
  Text Name = missing.name(dte),
  /* contenedor del missing: "output", "input "*/
  Real Owner.Type = _.ownerType,
  /* nombre del segmento que contiene el parámetro missing */
  Text Owner.Name = _.id_node+"::"+_.name,
  /* en caso de ser tipo "input", indica el indice de columna en la que
aparece
     el missing, este índice es referido a la matriz que se retorna en
Get.InputVMatrix*/
  Real Owner.Column = ?,
  /* índice de fila donde aparece el missing */
  Real Owner.Row = 1+DateDif(Dating(_.serie),_.firstDate,dte),
  /* parámetro media del prior normal asociado al parámetro missing */
  Real Prior.Average = _.avg,
  /* parámetro sigma del prior normal asociado al parámetro missing,
     si sigma es ? o inf se asume prior no informativo */
  Real Prior.Sigma = _.stds*_.missing.sigmaFactor,
  /* intervalo de truncamiento */
  Real Prior.LowerBound = _.missing.lowerBound,
  Real Prior.UpperBound = _.missing.upperBound
);

El API de un modulo "joint" puede coexistir con la de un "primary", sería
recomendable mantener el API "joint" para poder comparar resultados al
hacer el cambio a "primary". Para que BSR use una u otra basta con
modificar el atributo ModuleType del nodo:

      Text Get.ModuleType( Real void ) { "primary" };

o

      Text Get.ModuleType( Real void ) { "joint" };

comment:2 Changed 15 years ago by Pedro Gea

Component: StrategyBSREstrategia BSR
Description: modified (diff)
Note: See TracTickets for help on using tickets.