source: tol/doc/modeling/BSR/BSR_P2_S4_Import.lyx @ b8f37ca

1941-docker-image-to-testdevel
Last change on this file since b8f37ca was 51c3a2f, checked in by Jorge Pérez <josp.jorge@…>, 18 years ago

renaming modelation to modeling

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@23 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 53.6 KB
Line 
1#LyX 1.5.3 created this file. For more info see http://www.lyx.org/
2\lyxformat 276
3\begin_document
4\begin_header
5\textclass amsbook
6\begin_preamble
7\usepackage{a4wide}
8%\documentclass[spanish]{article}
9\usepackage{babel}
10\usepackage{a4wide}
11\usepackage{varioref}
12\usepackage{amssymb}
13\usepackage{latexsym}
14\usepackage{amssymb}
15\usepackage{amsmath}
16
17\usepackage{graphics}
18\usepackage{graphicx}
19\usepackage{ulem}
20\usepackage{color}
21\usepackage{multicol}
22\usepackage{longtable}
23
24%\usepackage{makeidx}
25\usepackage{hyperref}
26\makeindex
27
28\hypersetup{urlbordercolor=0 0 0,pdfborder=0 0 1 [3 2]}
29\end_preamble
30\language spanish
31\inputencoding auto
32\font_roman default
33\font_sans default
34\font_typewriter default
35\font_default_family default
36\font_sc false
37\font_osf false
38\font_sf_scale 100
39\font_tt_scale 100
40\graphics default
41\paperfontsize default
42\spacing single
43\papersize default
44\use_geometry false
45\use_amsmath 1
46\use_esint 0
47\cite_engine basic
48\use_bibtopic false
49\paperorientation portrait
50\secnumdepth 3
51\tocdepth 3
52\paragraph_separation indent
53\defskip medskip
54\quotes_language english
55\papercolumns 1
56\papersides 1
57\paperpagestyle default
58\tracking_changes false
59\output_changes false
60\author ""
61\author ""
62\end_header
63
64\begin_body
65
66\begin_layout Chapter
67\begin_inset LatexCommand label
68name "cha:BysMcmc::Bsr::Import"
69
70\end_inset
71
72API BysMcmc::Bsr::Import
73\end_layout
74
75\begin_layout Standard
76Se describen los miembros y métodos generales del NameBlock BysMcmc::Bsr::Import
77\end_layout
78
79\begin_layout Section
80Descripción
81\end_layout
82
83\begin_layout Standard
84El
85\family typewriter
86\series bold
87API
88\series default
89 BysMcmc::Bsr::Import
90\family default
91, en lo adelante
92\family typewriter
93\series bold
94API
95\series default
96 Import
97\family default
98, es un nivel de abstracción que permite definir modelos
99\series bold
100BSR
101\series default
102 sin necesidad de conocer el formato en archivo de dichos modelos.
103 Semánticamente esta orientado a los conceptos ya definidos en la sección
104 
105\begin_inset LatexCommand ref
106reference "sec:clase_modelos_BSR"
107
108\end_inset
109
110 y se centran en los segmentos de regresión y la estructura del error.
111\end_layout
112
113\begin_layout Standard
114Por recordar, un modelo
115\series bold
116BSR
117\series default
118 define una regresion lineal restringida compuesta de segmentos de regresion
119 con errores independientes entre sí y un sistema de restricciones lineales
120 entre los parámetros.
121 
122\end_layout
123
124\begin_layout Standard
125El
126\family typewriter
127\series bold
128API
129\series default
130 Import
131\family default
132 es un mecanismo para definir las caracteristicas de cada uno de los segmentos
133 de regresión tales como:
134\end_layout
135
136\begin_layout Itemize
137estructura temporal de las observaciones
138\end_layout
139
140\begin_layout Itemize
141distribución del error
142\end_layout
143
144\begin_layout Itemize
145parámetros lineales
146\end_layout
147
148\begin_layout Itemize
149omitidos en el output e inputs
150\end_layout
151
152\begin_layout Itemize
153restricciones entre los parámetros
154\end_layout
155
156\begin_layout Standard
157Para cada una de las categorías anteriores deben definirse un conjunto de
158 métodos que dan acceso a los elementos de las mismas, por ejemplo en la
159 definición de los parámetros lineales de un segmento debemos tener un método
160 para retornar el número de parámetros del segmento y otro para retornar
161 la información del i-ésimo parámetro.
162 Este estilo de interfaz se ha escogido para dar flexibilidad a la hora
163 de definir el modelo
164\color red
165(amplia un poco más esto)
166\color inherit
167.
168\end_layout
169
170\begin_layout Standard
171De forma global el modelo
172\series bold
173BSR
174\series default
175 debe satisfacer también unos requerimientos de interfaz como son retornar
176 el número de segmentos que lo componen, el i-ésimo segmento y las restricciones
177 entre parámetros de diferentes bloques.
178 El segmento retornado debe ser un
179\family typewriter
180NameBlock
181\family default
182 que cumpla con el API del segmento requerida.
183\end_layout
184
185\begin_layout Standard
186En las secciones siguientes describiremos en detalle los metodos que deben
187 implementarse a nivel global del modelo BSR como a nivel de segmento.
188 Finalmente describiremos mediante un ejemplo el uso del
189\family typewriter
190\series bold
191API
192\series default
193 Import.
194\end_layout
195
196\begin_layout Section
197NameBlock del sistema BSR
198\end_layout
199
200\begin_layout Standard
201Un sistema BSR se implementa a través de un NameBlock que debe responder
202 a un interfaz que permita conocer atributos como: nombre del modelo, directorio
203 de salida del modelo .bsr, nombre de la session, número de segmentos de
204 regresion así como el acceso a cada uno de los segmentos, entre otros.
205\end_layout
206
207\begin_layout Standard
208A partir de un NameBlock o instancia que cumpla los requeriemiento del API
209 Import podemos generar el archivo .bsr asociado mediante la función
210\family typewriter
211Text BysMcmc::Bsr::Import::Write(NameBlock BSR)
212\family default
213.
214 Esta función retorna el camino del archivo generado.
215 
216\end_layout
217
218\begin_layout Standard
219El nombre del archivo y la localización es determinado haciendo uso de metodos
220 que deben estar implementados en el NameBlock
221\end_layout
222
223\begin_layout Standard
224A continuación se describe en detalles los métodos requeridos en el API
225 de un
226\family typewriter
227NameBlock
228\family default
229 para un sistema
230\family typewriter
231BSR
232\family default
233.
234 Para ligar la descripción a un ejemplo concreto usaremos el siguiente modelo
235 simple
236\begin_inset Formula $ARMA(2,1)$
237\end_inset
238
239 para un nodo de observación:
240\end_layout
241
242\begin_layout Standard
243\begin_inset Formula \begin{equation}
244\begin{array}{rl}
245y_{t} & =\beta_{0}+\sum_{1}^{k}\beta_{i}x_{t,i}+z_{t}\\
246\phi\left(B\right)z_{t} & =\theta\left(B\right)\varepsilon_{t},\varepsilon_{t}\sim N(0,\sigma^{2})\\
247\phi(B) & =1-\phi_{1}B-\phi_{2}B^{2}\\
248\theta(B) & =1-\theta_{1}B\\
249\beta_{1} & \ge\beta_{2}\end{array}\end{equation}
250
251\end_inset
252
253
254\begin_inset LatexCommand label
255name "eq:mod_exa_bsr"
256
257\end_inset
258
259
260\end_layout
261
262\begin_layout Description
263Get.Doc.Model.Name el método
264\family typewriter
265Text Get.Doc.Model.Name(Real void)
266\family default
267 debe retornar un identificador del modelo.
268 Ejemplo:
269\begin_inset listings
270lstparams "basicstyle={\small\ttfamily}"
271inline false
272status open
273
274\begin_layout Standard
275
276Text Get.Doc.Model.Name(Real void)
277\end_layout
278
279\begin_layout Standard
280
281{
282\end_layout
283
284\begin_layout Standard
285
286  Text "BSRExample"
287\end_layout
288
289\begin_layout Standard
290
291};
292\end_layout
293
294\end_inset
295
296
297\end_layout
298
299\begin_layout Description
300Get.Doc.Model.Description el método
301\family typewriter
302Text Get.Doc.Model.Description(Real void)
303\family default
304 implementa una función que retorna una descripción del modelo.
305\begin_inset listings
306lstparams "basicstyle={\small\ttfamily}"
307inline false
308status open
309
310\begin_layout Standard
311
312Text Get.Doc.Model.Description(Real void)
313\end_layout
314
315\begin_layout Standard
316
317{
318\end_layout
319
320\begin_layout Standard
321
322  Text "Modelo simple ARMA(2,1)"
323\end_layout
324
325\begin_layout Standard
326
327};
328\end_layout
329
330\end_inset
331
332
333\end_layout
334
335\begin_layout Description
336Get.Doc.Session.Name el método
337\family typewriter
338Text Get.Doc.Session.Name(Real void)
339\family default
340 implementa una función que retorna un identificador de la sessión.
341 Para un mismo modelo podemos tener diferentes sesiones que consiste en
342 una parametrización distinto.
343 Poder mantener diferentes sesiones de un modelo nos permite almacenar y
344 comparar los resultado para diferentes versiones del modelo.
345 El modelo BSR para una sesión dada se escribe en directorio indicado por
346 el valor de retorno de la función
347\family typewriter
348Text Get.Doc.Path(Real void)
349\family default
350.
351 Ejemplo:
352\begin_inset listings
353lstparams "basicstyle={\small\ttfamily}"
354inline false
355status open
356
357\begin_layout Standard
358
359Text Get.Doc.Session.Name(Real void)
360\end_layout
361
362\begin_layout Standard
363
364{
365\end_layout
366
367\begin_layout Standard
368
369  Text _.session.id
370\end_layout
371
372\begin_layout Standard
373
374};
375\end_layout
376
377\end_inset
378
379
380\end_layout
381
382\begin_layout Description
383Get.Doc.Session.Description el método
384\family typewriter
385Text Get.Doc.Session.Description(Real void)
386\family default
387 implementa una función que retorna una descripción de la sessión.
388 Ejemplo:
389\begin_inset listings
390lstparams "basicstyle={\small\ttfamily}"
391inline false
392status open
393
394\begin_layout Standard
395
396Text Get.Doc.Session.Description(Real void)
397\end_layout
398
399\begin_layout Standard
400
401{
402\end_layout
403
404\begin_layout Standard
405
406  Text "Session "+_.session.id+" para el modelo: " +
407\end_layout
408
409\begin_layout Standard
410
411       Get.Doc.Model.Name(0) + " " + Get.Doc.Model.Description(0)
412\end_layout
413
414\begin_layout Standard
415
416};
417\end_layout
418
419\end_inset
420
421
422\end_layout
423
424\begin_layout Description
425Get.Doc.Session.Authors el método
426\family typewriter
427Text Get.Doc.Session.Authors(Real void)
428\family default
429 retorna una cadena que contenga los autores de la sesión.
430 Ejemplo:
431\begin_inset listings
432lstparams "basicstyle={\small\ttfamily}"
433inline false
434status open
435
436\begin_layout Standard
437
438Text Get.Doc.Session.Authors(Real void)
439\end_layout
440
441\begin_layout Standard
442
443{
444\end_layout
445
446\begin_layout Standard
447
448  Text "user@bayesforecast.com"
449\end_layout
450
451\begin_layout Standard
452
453};
454\end_layout
455
456\end_inset
457
458
459\end_layout
460
461\begin_layout Description
462Get.Doc.Path el método
463\family typewriter
464Text Get.Doc.Path(Real void)
465\family default
466 retorna el directorio de salida donde se escribirá el archivo .bsr asociado
467 al modelo.
468 Ejemplo:
469\begin_inset listings
470lstparams "basicstyle={\small\ttfamily}"
471inline false
472status open
473
474\begin_layout Standard
475
476Text Get.Doc.Path(Real void)
477\end_layout
478
479\begin_layout Standard
480
481{
482\end_layout
483
484\begin_layout Standard
485
486  Text _.path.out
487\end_layout
488
489\begin_layout Standard
490
491};
492\end_layout
493
494\end_inset
495
496
497\end_layout
498
499\begin_layout Description
500Get.LinReg.Size el método
501\family typewriter
502Real Get.LinReg.Size(Real void)
503\family default
504 retorna el número de segmentos independientes del sistema BSR.
505 Ejemplo:
506\begin_inset listings
507lstparams "basicstyle={\small\ttfamily}"
508inline false
509status open
510
511\begin_layout Standard
512
513Real Get.LinReg.Size(Real void)
514\end_layout
515
516\begin_layout Standard
517
518{
519\end_layout
520
521\begin_layout Standard
522
523  // para el ejemplo actual solo tenemos un segmento de regresión
524\end_layout
525
526\begin_layout Standard
527
528  Real 1
529\end_layout
530
531\begin_layout Standard
532
533};
534\end_layout
535
536\end_inset
537
538
539\end_layout
540
541\begin_layout Description
542Get.LinReg.Segment el método
543\family typewriter
544NameBlock Get.LinReg.Segment(Real iS)
545\family default
546 retorna el
547\family typewriter
548NameBlock
549\family default
550 que implementa el API import para el segmento con ndice
551\family typewriter
552iS
553\family default
554.
555 El API que debe satisfacer este
556\family typewriter
557NameBlock
558\family default
559 lo describimos en la sección
560\begin_inset LatexCommand ref
561reference "sec:API-segmento-BSR"
562
563\end_inset
564
565.
566 Ejemplo:
567\begin_inset listings
568lstparams "basicstyle={\small\ttfamily}"
569inline false
570status open
571
572\begin_layout Standard
573
574NameBlock Get.LinReg.Segment(Real iS)
575\end_layout
576
577\begin_layout Standard
578
579{
580\end_layout
581
582\begin_layout Standard
583
584  // en este caso retornamos el NameBlock para el único segmento
585\end_layout
586
587\begin_layout Standard
588
589  // que se modela para mas de un segmento de regresión se suele
590\end_layout
591
592\begin_layout Standard
593
594  // usar un Set que es indexado por iS: _bsr.blocks[iS]
595\end_layout
596
597\begin_layout Standard
598
599  NameBlock _.bsr.ARMA.2_1
600\end_layout
601
602\begin_layout Standard
603
604};
605\end_layout
606
607\end_inset
608
609
610\end_layout
611
612\begin_layout Description
613Get.Constraints.Handler el método
614\family typewriter
615NameBlock Get.Constraints.Handler(Real void)
616\family default
617 retorna el
618\family typewriter
619NameBlock
620\family default
621 que implementa el interfaz necesaria para definir las restricciones entre
622 parametros de diferentes segmentos.
623 En la sección
624\begin_inset LatexCommand ref
625reference "sec:Restricciones-en-BSR"
626
627\end_inset
628
629 se describe el API que debe satisfacerse.
630 Para nuestro ejemplo como solo tenemos un segmento de regresión las restriccion
631es están definidas en dicho segmento, no obstante también las podíamos haber
632 definido en el las restricciones globales.
633 Ejemplo:
634\begin_inset listings
635lstparams "basicstyle={\small\ttfamily}"
636inline false
637status open
638
639\begin_layout Standard
640
641NameBlock Get.Constraints.Handler(Real void)
642\end_layout
643
644\begin_layout Standard
645
646{
647\end_layout
648
649\begin_layout Standard
650
651  // retornamos un NameBlock predefinido para el caso
652\end_layout
653
654\begin_layout Standard
655
656  // no restringido
657\end_layout
658
659\begin_layout Standard
660
661  NameBlock BysMcmc::Bsr::Import::Unconstrained(0)
662\end_layout
663
664\begin_layout Standard
665
666};
667\end_layout
668
669\end_inset
670
671
672\end_layout
673
674\begin_layout Standard
675Finalmente el una función que retorna el NameBlock que implementa el API
676 del sistema BSR del para el modelo anterior sería similar a:
677\end_layout
678
679\begin_layout Standard
680\begin_inset listings
681lstparams "basicstyle={\small\ttfamily}"
682inline false
683status open
684
685\begin_layout Standard
686
687NameBlock Build.Example.BSR(Text path.out, Text session.id,
688\end_layout
689
690\begin_layout Standard
691
692                            Serie Y, Set X)
693\end_layout
694
695\begin_layout Standard
696
697{
698\end_layout
699
700\begin_layout Standard
701
702  NameBlock [[
703\end_layout
704
705\begin_layout Standard
706
707    Text _.path.out = path.out;
708\end_layout
709
710\begin_layout Standard
711
712    Text _.session.id = session.id;
713\end_layout
714
715\begin_layout Standard
716
717    NameBlock _.bsr.ARMA.2_1 = [[
718\end_layout
719
720\begin_layout Standard
721
722      Text _.dating.name = DatingName(Y);
723\end_layout
724
725\begin_layout Standard
726
727      Date _.first = First(Y);
728\end_layout
729
730\begin_layout Standard
731
732      Date _.last = Last(Y),
733\end_layout
734
735\begin_layout Standard
736
737      Matrix _.Y = SerMat(Y);
738\end_layout
739
740\begin_layout Standard
741
742      Matrix _.X = SerSetMat(X);
743\end_layout
744
745\begin_layout Standard
746
747      /* ...
748 */
749\end_layout
750
751\begin_layout Standard
752
753      /* aquí implementamos el NameBlock para el nodo de observación */
754\end_layout
755
756\begin_layout Standard
757
758    ]];
759\end_layout
760
761\begin_layout Standard
762
763\end_layout
764
765\begin_layout Standard
766
767    Text Get.Doc.Model.Name(Real void)
768\end_layout
769
770\begin_layout Standard
771
772    {
773\end_layout
774
775\begin_layout Standard
776
777      Text "BSRExample"
778\end_layout
779
780\begin_layout Standard
781
782    };
783\end_layout
784
785\begin_layout Standard
786
787\end_layout
788
789\begin_layout Standard
790
791    Text Get.Doc.Model.Description(Real void)
792\end_layout
793
794\begin_layout Standard
795
796    {
797\end_layout
798
799\begin_layout Standard
800
801      Text "Modelo simple ARMA(3,1)"
802\end_layout
803
804\begin_layout Standard
805
806    };
807\end_layout
808
809\begin_layout Standard
810
811\end_layout
812
813\begin_layout Standard
814
815    Text Get.Doc.Session.Name(Real void)
816\end_layout
817
818\begin_layout Standard
819
820    {
821\end_layout
822
823\begin_layout Standard
824
825      Text _.session.id
826\end_layout
827
828\begin_layout Standard
829
830    };
831\end_layout
832
833\begin_layout Standard
834
835\end_layout
836
837\begin_layout Standard
838
839    Text Get.Doc.Session.Description(Real void)
840\end_layout
841
842\begin_layout Standard
843
844    {
845\end_layout
846
847\begin_layout Standard
848
849      Text "Session "+_.session.id+" para el modelo: " +
850\end_layout
851
852\begin_layout Standard
853
854           Get.Doc.Model.Name(0) + " " + Get.Doc.Model.Description(0)
855\end_layout
856
857\begin_layout Standard
858
859    };
860\end_layout
861
862\begin_layout Standard
863
864\end_layout
865
866\begin_layout Standard
867
868    Text Get.Doc.Session.Authors(Real void)
869\end_layout
870
871\begin_layout Standard
872
873    {
874\end_layout
875
876\begin_layout Standard
877
878      Text "user@bayesforecast.com"
879\end_layout
880
881\begin_layout Standard
882
883    };
884\end_layout
885
886\begin_layout Standard
887
888\end_layout
889
890\begin_layout Standard
891
892    Text Get.Doc.Path(Real void)
893\end_layout
894
895\begin_layout Standard
896
897    {
898\end_layout
899
900\begin_layout Standard
901
902      Text _.path.output
903\end_layout
904
905\begin_layout Standard
906
907    };
908\end_layout
909
910\begin_layout Standard
911
912\end_layout
913
914\begin_layout Standard
915
916    Real Get.LinReg.Size(Real void)
917\end_layout
918
919\begin_layout Standard
920
921    {
922\end_layout
923
924\begin_layout Standard
925
926      // para el ejemplo actual solo tenemos un segmento de regresión
927\end_layout
928
929\begin_layout Standard
930
931      Real 1
932\end_layout
933
934\begin_layout Standard
935
936    };
937\end_layout
938
939\begin_layout Standard
940
941\end_layout
942
943\begin_layout Standard
944
945    NameBlock Get.LinReg.Segment(Real iS)
946\end_layout
947
948\begin_layout Standard
949
950    {
951\end_layout
952
953\begin_layout Standard
954
955      // en este caso retornamos el NameBlock para el único segmento
956\end_layout
957
958\begin_layout Standard
959
960      // que se modela para mas de un segmento de regresión se suele
961\end_layout
962
963\begin_layout Standard
964
965      // usar un Set que es indexado por iS: _bsr.blocks[iS]
966\end_layout
967
968\begin_layout Standard
969
970      NameBlock _.bsr.ARMA.2_1
971\end_layout
972
973\begin_layout Standard
974
975    };
976\end_layout
977
978\begin_layout Standard
979
980\end_layout
981
982\begin_layout Standard
983
984    NameBlock Get.Constraints.Handler(Real void)
985\end_layout
986
987\begin_layout Standard
988
989    {
990\end_layout
991
992\begin_layout Standard
993
994      // retornamos un NameBlock predefinido para el caso
995\end_layout
996
997\begin_layout Standard
998
999      // no restringido
1000\end_layout
1001
1002\begin_layout Standard
1003
1004      NameBlock BysMcmc::Bsr::Import::Unconstrained(0)
1005\end_layout
1006
1007\begin_layout Standard
1008
1009    }
1010\end_layout
1011
1012\begin_layout Standard
1013
1014  ]]
1015\end_layout
1016
1017\begin_layout Standard
1018
1019};
1020\end_layout
1021
1022\end_inset
1023
1024
1025\end_layout
1026
1027\begin_layout Section
1028API del segmento BSR
1029\begin_inset LatexCommand label
1030name "sec:API-segmento-BSR"
1031
1032\end_inset
1033
1034
1035\end_layout
1036
1037\begin_layout Standard
1038Después de haber visto el API global del un sistema BSR, ahora pasamos al
1039 API de un segmento BSR concreto
1040\end_layout
1041
1042\begin_layout Description
1043Get.Name la función
1044\family typewriter
1045Get.Name(Real void)
1046\family default
1047 retorna el nombre del segmento BSR.
1048 Debe ser un nombre único entre todos los segmentos del sistema BSR.
1049 En el ejemplo que llevamos pudiera quedar así:
1050\begin_inset listings
1051lstparams "basicstyle={\small\ttfamily}"
1052inline false
1053status open
1054
1055\begin_layout Standard
1056
1057Text Get.Name(Real void)
1058\end_layout
1059
1060\begin_layout Standard
1061
1062{
1063\end_layout
1064
1065\begin_layout Standard
1066
1067  Text "ObsY"
1068\end_layout
1069
1070\begin_layout Standard
1071
1072};
1073\end_layout
1074
1075\end_inset
1076
1077
1078\end_layout
1079
1080\begin_layout Description
1081Get.Sigma2
1082\family typewriter
1083la función Anything Get.Sigma2(Real void)
1084\family default
1085 retorna un identificador o un valor para el parámetro
1086\begin_inset Formula $\sigma$
1087\end_inset
1088
1089 del segmento de regresión.
1090 Si se retorna un
1091\family typewriter
1092Text
1093\family default
1094 entonces se asume un identificador de parámetro
1095\begin_inset Formula $\sigma$
1096\end_inset
1097
1098 desconocido y se simulará según su distribución condicional, en tal caso
1099 el identificador debe ser único entre todos los nombres de parémetros
1100\begin_inset Formula $\sigma$
1101\end_inset
1102
1103 de todos los segmentos.
1104 Si el valor retornado es un
1105\family typewriter
1106Real
1107\family default
1108 entonces se asume una
1109\begin_inset Formula $\sigma$
1110\end_inset
1111
1112 conocida y no se simula.
1113 En nuestro ejemplo
1114\begin_inset Formula $\sigma$
1115\end_inset
1116
1117 es desconocido por tanto le damos un nombre:
1118\begin_inset listings
1119lstparams "basicstyle={\small\ttfamily}"
1120inline false
1121status open
1122
1123\begin_layout Standard
1124
1125Text Get.Sigma2(Real void)
1126\end_layout
1127
1128\begin_layout Standard
1129
1130{
1131\end_layout
1132
1133\begin_layout Standard
1134
1135  Text "sigma2"
1136\end_layout
1137
1138\begin_layout Standard
1139
1140};
1141\end_layout
1142
1143\end_inset
1144
1145
1146\end_layout
1147
1148\begin_layout Description
1149Get.TimeInfo si el segmento tiene estructura temporal, el método
1150\family typewriter
1151Set Get.TimeInfo(Real void)
1152\family default
1153 retorna información asociada al fechado del segmento.
1154 Ejemplo:
1155\begin_inset listings
1156lstparams "basicstyle={\small\ttfamily}"
1157inline false
1158status open
1159
1160\begin_layout Standard
1161
1162Set Get.TimeInfo(Real void)
1163\end_layout
1164
1165\begin_layout Standard
1166
1167{
1168\end_layout
1169
1170\begin_layout Standard
1171
1172  Set BSR.NoiseTimeInfo(TimeSet Eval(_.dating.name), _.first, _.last)
1173\end_layout
1174
1175\begin_layout Standard
1176
1177};
1178\end_layout
1179
1180\end_inset
1181
1182el objeto resultado debe ser de tipo
1183\family typewriter
1184BSR.NoiseTimeInfo
1185\family default
1186 que es una estructura definida internamente en TOL y que tiene la siguiente
1187 definición:
1188\begin_inset listings
1189lstparams "basicstyle={\small\ttfamily}"
1190inline false
1191status open
1192
1193\begin_layout Standard
1194
1195Struct BSR.NoiseTimeInfo
1196\end_layout
1197
1198\begin_layout Standard
1199
1200{
1201\end_layout
1202
1203\begin_layout Standard
1204
1205  TimeSet Dating,
1206\end_layout
1207
1208\begin_layout Standard
1209
1210  Date FirstDate,
1211\end_layout
1212
1213\begin_layout Standard
1214
1215  Date LastDate
1216\end_layout
1217
1218\begin_layout Standard
1219
1220};
1221\end_layout
1222
1223\end_inset
1224
1225
1226\end_layout
1227
1228\begin_layout Description
1229Get.ARIMA.Size la función
1230\family typewriter
1231Get.ARIMA.Size(Real void)
1232\family default
1233 retorna el número de factores
1234\family typewriter
1235ARIMA
1236\family default
1237 para el segmento
1238\family typewriter
1239BSR
1240\family default
1241.
1242 Si el segmento es no dinámico o es un ruido blanco entonces se debe retornar
1243 0.
1244 Recuérdese que en la versión actual un factor
1245\family typewriter
1246ARIMA
1247\family default
1248 no debe superar el grado 2.
1249 Un polinomio de grado superior a 2 debe darse descompuesto en factores
1250 de grado 2 ó 1.
1251 Para el modelo
1252\begin_inset LatexCommand ref
1253reference "eq:mod_exa_bsr"
1254
1255\end_inset
1256
1257 con un factor bastaría.
1258 
1259\begin_inset listings
1260lstparams "basicstyle={\small\ttfamily}"
1261inline false
1262status open
1263
1264\begin_layout Standard
1265
1266Real Get.ARIMA.Size(Real void)
1267\end_layout
1268
1269\begin_layout Standard
1270
1271{
1272\end_layout
1273
1274\begin_layout Standard
1275
1276  Real 1
1277\end_layout
1278
1279\begin_layout Standard
1280
1281};
1282\end_layout
1283
1284\end_inset
1285
1286
1287\end_layout
1288
1289\begin_layout Description
1290Get.ARIMA.Factor la función
1291\family typewriter
1292Get.ARIMA.Factor(Real f)
1293\family default
1294 retorna el f-ésimo factor del ruido
1295\family typewriter
1296ARIMA
1297\family default
1298.
1299 El valor del argumento
1300\family typewriter
1301f
1302\family default
1303 va desde 1 hasta
1304\family typewriter
1305n=Get.ARIMA.Size(0)
1306\family default
1307.
1308 El valor de retorno de la función debe ser un Set con estructura
1309\family typewriter
1310ARIMAStruct
1311\family default
1312:
1313\begin_inset listings
1314lstparams "basicstyle={\small\ttfamily}"
1315inline false
1316status open
1317
1318\begin_layout Standard
1319
1320Struct ARIMAStruct
1321\end_layout
1322
1323\begin_layout Standard
1324
1325{
1326\end_layout
1327
1328\begin_layout Standard
1329
1330  Real Periodicity,
1331\end_layout
1332
1333\begin_layout Standard
1334
1335  Polyn AR,
1336\end_layout
1337
1338\begin_layout Standard
1339
1340  Polyn MA,
1341\end_layout
1342
1343\begin_layout Standard
1344
1345  Polyn DIF
1346\end_layout
1347
1348\begin_layout Standard
1349
1350};
1351\end_layout
1352
1353\end_inset
1354
1355Para el modelo
1356\begin_inset LatexCommand ref
1357reference "eq:mod_exa_bsr"
1358
1359\end_inset
1360
1361 la función sería:
1362\begin_inset listings
1363lstparams "basicstyle={\small\ttfamily}"
1364inline false
1365status open
1366
1367\begin_layout Standard
1368
1369Set Get.ARIMA.Factor(Real f)
1370\end_layout
1371
1372\begin_layout Standard
1373
1374{
1375\end_layout
1376
1377\begin_layout Standard
1378
1379  Set ARIMAStruct(1, 1-0.1*B-0.1*B^2, 1-0.1*B, 1)
1380\end_layout
1381
1382\begin_layout Standard
1383
1384};
1385\end_layout
1386
1387\end_inset
1388
1389
1390\end_layout
1391
1392\begin_layout Description
1393Get.Param.Size la función
1394\family typewriter
1395Real Get.Param.Size(Real void)
1396\family default
1397 retorna el número de parámetros lineales de la regresión.
1398 En el caso del ejemplo que llevamos se corresponde
1399\family typewriter
1400Rows(X)=3
1401\family default
1402 ya que los variables predictivas están almacenadas por filas:
1403\begin_inset listings
1404lstparams "basicstyle={\small\ttfamily}"
1405inline false
1406status open
1407
1408\begin_layout Standard
1409
1410Real Get.Param.Size(Real void)
1411\end_layout
1412
1413\begin_layout Standard
1414
1415{
1416\end_layout
1417
1418\begin_layout Standard
1419
1420  Real Rows(_.X)
1421\end_layout
1422
1423\begin_layout Standard
1424
1425};
1426\end_layout
1427
1428\end_inset
1429
1430
1431\end_layout
1432
1433\begin_layout Description
1434Get.Param la función
1435\family typewriter
1436Set Get.Param(Real numParam)
1437\family default
1438 retorna la información para el i-ésimo parámetro.
1439 El valor del argumento
1440\family typewriter
1441iP
1442\family default
1443 va desde
1444\family typewriter
14451
1446\family default
1447 hasta
1448\family typewriter
1449n=Get.Param.Size(0)
1450\family default
1451.
1452 El valor de retorno de la función es
1453\family typewriter
1454Set
1455\family default
1456 con estructura
1457\family typewriter
1458Bsr.Param.Info
1459\family default
1460:
1461\begin_inset listings
1462lstparams "basicstyle={\small\ttfamily}"
1463inline false
1464status open
1465
1466\begin_layout Standard
1467
1468Struct Bsr.Param.Info
1469\end_layout
1470
1471\begin_layout Standard
1472
1473{
1474\end_layout
1475
1476\begin_layout Standard
1477
1478  Text Name,              // identificador único del parámetro
1479\end_layout
1480
1481\begin_layout Standard
1482
1483  Real InitValue,         // valor inicial conocido o ?
1484\end_layout
1485
1486\begin_layout Standard
1487
1488  Real Prior.LowerBound,  // cota inf.
1489 del intervalo de definición o -1/0
1490\end_layout
1491
1492\begin_layout Standard
1493
1494  Real Prior.UpperBound   // cota sup.
1495 del intervalo de definición o +1/0
1496\end_layout
1497
1498\begin_layout Standard
1499
1500};   
1501\end_layout
1502
1503\end_inset
1504
1505En nuestro caso retornamos los nombres
1506\family typewriter
1507beta_1
1508\family default
1509,
1510\family typewriter
1511beta_2
1512\family default
1513,...,
1514\family typewriter
1515beta_k
1516\family default
1517 y todos no acotados:
1518\begin_inset listings
1519lstparams "basicstyle={\small\ttfamily}"
1520inline false
1521status open
1522
1523\begin_layout Standard
1524
1525Set Get.Param(Real iP)
1526\end_layout
1527
1528\begin_layout Standard
1529
1530{
1531\end_layout
1532
1533\begin_layout Standard
1534
1535  Set Bsr.Param.Info("beta_"+IntText(iP), Real Rand(0,1), -1/0, 1/0)
1536\end_layout
1537
1538\begin_layout Standard
1539
1540};
1541\end_layout
1542
1543\end_inset
1544
1545
1546\end_layout
1547
1548\begin_layout Description
1549Get.Missing.Size la función
1550\family typewriter
1551Real Get.Missing.Size(Real void)
1552\family default
1553 retorna el número de parámetros asociados a los valores omitidos de las
1554 observaciones y variables.
1555 En nuestro caso no tenemos omitidos por lo que retornamos 0.
1556\begin_inset listings
1557lstparams "basicstyle={\small\ttfamily}"
1558inline false
1559status open
1560
1561\begin_layout Standard
1562
1563Real Get.Missing.Size(Real void)
1564\end_layout
1565
1566\begin_layout Standard
1567
1568{
1569\end_layout
1570
1571\begin_layout Standard
1572
1573  Real 0
1574\end_layout
1575
1576\begin_layout Standard
1577
1578};
1579\end_layout
1580
1581\end_inset
1582
1583
1584\end_layout
1585
1586\begin_layout Description
1587Get.Missing la función
1588\family typewriter
1589Set Get.Missing(Real iP)
1590\family default
1591 retorna la información acerca del i-ésimo valor/parámetro omitido.
1592 El valor del argumento
1593\family typewriter
1594iP
1595\family default
1596 va desde
1597\family typewriter
15981
1599\family default
1600 hasta
1601\family typewriter
1602n=Get.Missing.Size(0).
1603
1604\family default
1605 El valor de retorno es la información a priori para este parámetro y que
1606 será usada en el muestreo del parámetro.
1607 Esta información es dada como un Set con estructura Bsr.Missing.Info:
1608\begin_inset listings
1609lstparams "basicstyle={\small\ttfamily}"
1610inline false
1611status open
1612
1613\begin_layout Standard
1614
1615Struct Bsr.Missing.Info
1616\end_layout
1617
1618\begin_layout Standard
1619
1620{
1621\end_layout
1622
1623\begin_layout Standard
1624
1625  Text Name,              // identificador único para el valor missing
1626\end_layout
1627
1628\begin_layout Standard
1629
1630  Real Prior.Average,     // prior media or initial value
1631\end_layout
1632
1633\begin_layout Standard
1634
1635  Real Prior.Sigma,       // sigma del prior or +1/0 si no inf.
1636\end_layout
1637
1638\begin_layout Standard
1639
1640  Real Prior.LowerBound,  // límite inf.
1641 del intervalo o -1/0
1642\end_layout
1643
1644\begin_layout Standard
1645
1646  Real Prior.UpperBound   // límite sup.
1647 del intervalo o +1/0
1648\end_layout
1649
1650\begin_layout Standard
1651
1652};   
1653\end_layout
1654
1655\end_inset
1656
1657como no tenemos omitidos retornamos el conjunto vacío:
1658\begin_inset listings
1659lstparams "basicstyle={\small\ttfamily}"
1660inline false
1661status open
1662
1663\begin_layout Standard
1664
1665Set Get.Missing(Real iP)
1666\end_layout
1667
1668\begin_layout Standard
1669
1670{
1671\end_layout
1672
1673\begin_layout Standard
1674
1675  Set Empty
1676\end_layout
1677
1678\begin_layout Standard
1679
1680};
1681\end_layout
1682
1683\end_inset
1684
1685
1686\end_layout
1687
1688\begin_layout Description
1689Get.Equation.Size la función
1690\family typewriter
1691Real Get.Equation.Size(Real void)
1692\family default
1693 retorna el número de ecuaciones del segmento.
1694 Para nuestro ejemplo tendríamos la implementación:Para nuestro ejemplo
1695 como solo tenemos un segmento de regresión las restricciones están definidas
1696 en dicho segmento, no obstante también las podíamos haber definido en el
1697 las restricciones globales.
1698\begin_inset listings
1699lstparams "basicstyle={\small\ttfamily}"
1700inline false
1701status open
1702
1703\begin_layout Standard
1704
1705Real Get.Equation.Size(Real void)
1706\end_layout
1707
1708\begin_layout Standard
1709
1710{
1711\end_layout
1712
1713\begin_layout Standard
1714
1715  // _.X e _.Y están dispuestas por filas
1716\end_layout
1717
1718\begin_layout Standard
1719
1720  Real Columns(_.X);
1721\end_layout
1722
1723\begin_layout Standard
1724
1725};
1726\end_layout
1727
1728\end_inset
1729
1730
1731\end_layout
1732
1733\begin_layout Description
1734Get.Equation.Output la función
1735\family typewriter
1736{Text|Real} Get.Equation.Output(Real iE)
1737\family default
1738 retorna el valor de la observación i-ésima para el segmento.
1739 El valor del parámetro
1740\family typewriter
1741iE
1742\family default
1743 va desde
1744\family typewriter
17451
1746\family default
1747 hasta
1748\family typewriter
1749n=Get.Equation.Size(0)
1750\family default
1751.
1752 El valor de retorno puede ser un
1753\family typewriter
1754Text
1755\family default
1756 o un
1757\family typewriter
1758Real
1759\family default
1760.
1761 Cuando el valor de la observación es omitido debemos retornar el identifcador
1762 de parámetro definido con
1763\family typewriter
1764Get.Missing
1765\family default
1766.
1767 Si el valor es conocido se debe retornar el valor observado.
1768 En nuestro ejemplo las observaciones están en la variable
1769\family typewriter
1770_.Y
1771\family default
1772:
1773\begin_inset listings
1774lstparams "basicstyle={\small\ttfamily}"
1775inline false
1776status open
1777
1778\begin_layout Standard
1779
1780Real Get.Equation.Output(Real iE)
1781\end_layout
1782
1783\begin_layout Standard
1784
1785{
1786\end_layout
1787
1788\begin_layout Standard
1789
1790  Real MatDat(_.Y,1,iE)
1791\end_layout
1792
1793\begin_layout Standard
1794
1795};
1796\end_layout
1797
1798\end_inset
1799
1800
1801\end_layout
1802
1803\begin_layout Description
1804Get.Equation.Input.Size la función
1805\family typewriter
1806Real Get.Equation.Input.Size(Real iE)
1807\family default
1808 retorna el número de términos distintos de 0 que tiene la ecuación i-esima.
1809 El valor del parámetro
1810\family typewriter
1811iE
1812\family default
1813 va desde 1 hasta
1814\family typewriter
1815n=Get.Equation.Size(0)
1816\family default
1817.
1818 En nuestro ejemplo la matriz
1819\family typewriter
1820X
1821\family default
1822 es densa y todas las ecuaciones tienen el mismo número de términos distintos
1823 de
1824\family typewriter
18250
1826\family default
1827:
1828\begin_inset listings
1829lstparams "basicstyle={\small\ttfamily}"
1830inline false
1831status open
1832
1833\begin_layout Standard
1834
1835Real Get.Equation.Input.Size(Real iE)
1836\end_layout
1837
1838\begin_layout Standard
1839
1840{
1841\end_layout
1842
1843\begin_layout Standard
1844
1845  Real Rows(_.X)
1846\end_layout
1847
1848\begin_layout Standard
1849
1850};
1851\end_layout
1852
1853\end_inset
1854
1855
1856\end_layout
1857
1858\begin_layout Description
1859Get.Equation.Input.Coef la función
1860\family typewriter
1861{Text|Real} Get.Equation.Input.Coef(Real iE, Real iT)
1862\family default
1863 retorna el coeficiente t-ésimo término de la e-ésima ecuación.
1864 El valor del parámetro
1865\family typewriter
1866iE
1867\family default
1868 va desde
1869\family typewriter
18701
1871\family default
1872 hasta
1873\family typewriter
1874n=Get.Equation.Size(0)
1875\family default
1876, mientras que el valor del parámetro
1877\family typewriter
1878iT
1879\family default
1880 va desde
1881\family typewriter
18821
1883\family default
1884 hasta
1885\family typewriter
1886n=
1887\family default
1888Get.Equation.Input.Size
1889\family typewriter
1890(0)
1891\family default
1892.
1893 El valor de retorno puede ser un
1894\family typewriter
1895Text
1896\family default
1897 o un
1898\family typewriter
1899Real
1900\family default
1901.
1902 Cuando el valor de la variable es omitido debemos retornar el identificador
1903 de parámetro definido con
1904\family typewriter
1905Get.Missing
1906\family default
1907.
1908 Si el valor es conocido se debe retornar el valor observado de la variable.
1909 En nuestro ejemplo todos los valores son conocidos y los coeficiente de
1910 las ecuaciones están por columnas:
1911\begin_inset listings
1912lstparams "basicstyle={\small\ttfamily}"
1913inline false
1914status open
1915
1916\begin_layout Standard
1917
1918Real Get.Equation.Input.Coef(Real iE, Real iT)
1919\end_layout
1920
1921\begin_layout Standard
1922
1923{
1924\end_layout
1925
1926\begin_layout Standard
1927
1928  Real MatDat(_.X, iT,iE)
1929\end_layout
1930
1931\begin_layout Standard
1932
1933};
1934\end_layout
1935
1936\end_inset
1937
1938
1939\end_layout
1940
1941\begin_layout Description
1942Get.Equation.Input.Param la función
1943\family typewriter
1944Text Get.Equation.Input.Param(Real iE, Real iT)
1945\family default
1946 retorna el identificador del parámetro del t-ésimo término en la e-ésima
1947 ecuación.
1948 Los identificadores de parámetros pueden estar definidos en cualquiera
1949 de los segmentos del sistema BSR.
1950 En nuestro ejemplo los identificadores de parámetros son del tipo
1951\family typewriter
1952beta
1953\family default
1954_k
1955\family typewriter
1956:
1957\family default
1958 
1959\begin_inset listings
1960lstparams "basicstyle={\small\ttfamily}"
1961inline false
1962status open
1963
1964\begin_layout Standard
1965
1966Text Get.Equation.Input.Param(Real iE, Real iT)
1967\end_layout
1968
1969\begin_layout Standard
1970
1971{
1972\end_layout
1973
1974\begin_layout Standard
1975
1976  Text "beta_"+IntText(iT)
1977\end_layout
1978
1979\begin_layout Standard
1980
1981};
1982\end_layout
1983
1984\end_inset
1985
1986
1987\end_layout
1988
1989\begin_layout Description
1990Get.Constraints.Handler la función
1991\family typewriter
1992NameBlock Get.Constraints.Handler(Real void)
1993\family default
1994 el método
1995\family typewriter
1996NameBlock Get.Constraints.Handler(Real void)
1997\family default
1998 retorna el
1999\family typewriter
2000NameBlock
2001\family default
2002 que implementa el interfaz necesaria para definir las restricciones entre
2003 parametros de este segmentos.
2004 En la sección
2005\begin_inset LatexCommand ref
2006reference "sec:Restricciones-en-BSR"
2007
2008\end_inset
2009
2010 se describe el API que debe satisfacerse.
2011 En el modelo planetado en
2012\begin_inset LatexCommand ref
2013reference "eq:mod_exa_bsr"
2014
2015\end_inset
2016
2017 solo tenemos una restricción lineal de tipo orden
2018\begin_inset Formula $\beta1\ge\beta2$
2019\end_inset
2020
2021 y pudiera quedar:
2022\begin_inset listings
2023lstparams "basicstyle={\small\ttfamily}"
2024inline false
2025status open
2026
2027\begin_layout Standard
2028
2029NameBlock Get.Constraints.Handler(Real void)
2030\end_layout
2031
2032\begin_layout Standard
2033
2034{
2035\end_layout
2036
2037\begin_layout Standard
2038
2039  NameBlock Explicit.Constraints([["0>=-beta_1+beta_2"]])
2040\end_layout
2041
2042\begin_layout Standard
2043
2044};
2045\end_layout
2046
2047\end_inset
2048
2049
2050\end_layout
2051
2052\begin_layout Section
2053Restricciones en BSR
2054\begin_inset LatexCommand label
2055name "sec:Restricciones-en-BSR"
2056
2057\end_inset
2058
2059
2060\end_layout
2061
2062\begin_layout Standard
2063Las restricción en un sistema
2064\family typewriter
2065BSR
2066\family default
2067 la podemos definir dentro de un segmento de regresión en el caso en que
2068 sean restricciones que involucren a parámetros propios de ese segmento
2069 o a nivel global si es que se involucran parámetros de diferentes segmentos.
2070\end_layout
2071
2072\begin_layout Standard
2073La definición de las restricciones es dada mediante un
2074\family typewriter
2075NameBlock
2076\family default
2077 que debe satisfacer unos equerimientos de interfaz.
2078 Primeramente definimos unas estructuras que son necesarias en el API de
2079 restricciones.
2080 
2081\end_layout
2082
2083\begin_layout Description
2084Bsr.OrderRelation.Info es una estructura para codificar las relaciones de
2085 orden entre dos parámetros
2086\begin_inset listings
2087lstparams "basicstyle={\small\ttfamily}"
2088inline false
2089status open
2090
2091\begin_layout Standard
2092
2093////////////////////////////////////////////////////////////////////
2094\end_layout
2095
2096\begin_layout Standard
2097
2098// Lower <= Upper
2099\end_layout
2100
2101\begin_layout Standard
2102
2103////////////////////////////////////////////////////////////////////
2104\end_layout
2105
2106\begin_layout Standard
2107
2108Struct Bsr.OrderRelation.Info
2109\end_layout
2110
2111\begin_layout Standard
2112
2113{
2114\end_layout
2115
2116\begin_layout Standard
2117
2118  Text Lower, //Left parameter
2119\end_layout
2120
2121\begin_layout Standard
2122
2123  Text Upper  //Right parameter
2124\end_layout
2125
2126\begin_layout Standard
2127
2128}; 
2129\end_layout
2130
2131\end_inset
2132
2133por ejemplo en nuestro caso tenemos la restricción
2134\begin_inset Formula $\beta1\ge\beta2$
2135\end_inset
2136
2137 la cual quedaría codificada de esta manera:
2138\begin_inset Box Frameless
2139position "t"
2140hor_pos "c"
2141has_inner_box 1
2142inner_pos "t"
2143use_parbox 0
2144width "100col%"
2145special "none"
2146height "1in"
2147height_special "totalheight"
2148status open
2149
2150\begin_layout Standard
2151
2152\family typewriter
2153Set Bsr.OrdeRelation.Info(
2154\begin_inset Quotes eld
2155\end_inset
2156
2157beta_2
2158\begin_inset Quotes erd
2159\end_inset
2160
2161,
2162\begin_inset Quotes erd
2163\end_inset
2164
2165beta_1
2166\begin_inset Quotes erd
2167\end_inset
2168
2169)
2170\end_layout
2171
2172\end_inset
2173
2174.
2175\end_layout
2176
2177\begin_layout Description
2178Bsr.LinearCombTerm es una estructura para codificar un término de una combinación
2179 lineal de parámetros
2180\begin_inset listings
2181lstparams "basicstyle={\small\ttfamily}"
2182inline false
2183status open
2184
2185\begin_layout Standard
2186
2187///////////////////////////////////////////////////////////////////
2188\end_layout
2189
2190\begin_layout Standard
2191
2192// Coefficient * Parameter
2193\end_layout
2194
2195\begin_layout Standard
2196
2197//////////////////////////////////////////////////////////////////
2198\end_layout
2199
2200\begin_layout Standard
2201
2202Struct Bsr.LinearCombTerm
2203\end_layout
2204
2205\begin_layout Standard
2206
2207{
2208\end_layout
2209
2210\begin_layout Standard
2211
2212  Real Coefficient,
2213\end_layout
2214
2215\begin_layout Standard
2216
2217  Text Parameter
2218\end_layout
2219
2220\begin_layout Standard
2221
2222};   
2223\end_layout
2224
2225\end_inset
2226
2227
2228\end_layout
2229
2230\begin_layout Description
2231Bsr.GenericConstraint.Info es una estructura para codificar una combinación
2232 lineal de parámetros acotada a un intervalo.
2233 
2234\begin_inset listings
2235lstparams "basicstyle={\small\ttfamily}"
2236inline false
2237status open
2238
2239\begin_layout Standard
2240
2241///////////////////////////////////////////////////////////////////
2242\end_layout
2243
2244\begin_layout Standard
2245
2246// LowerBound <= c_1*alfa_1 + ...
2247 + c_n*alfa_n <= UpperBound
2248\end_layout
2249
2250\begin_layout Standard
2251
2252///////////////////////////////////////////////////////////////////
2253\end_layout
2254
2255\begin_layout Standard
2256
2257Struct Bsr.GenericConstraint.Info
2258\end_layout
2259
2260\begin_layout Standard
2261
2262{
2263\end_layout
2264
2265\begin_layout Standard
2266
2267  Real LowerBound, // cota inferior de la combinación lineal o -1/0
2268\end_layout
2269
2270\begin_layout Standard
2271
2272  Set  LinearComb, // un conjutno de Bsr.LinearCombTerm
2273\end_layout
2274
2275\begin_layout Standard
2276
2277  Real UpperBound  // cota superior de la combinación lineal o +1/0
2278\end_layout
2279
2280\begin_layout Standard
2281
2282};
2283\end_layout
2284
2285\end_inset
2286
2287
2288\end_layout
2289
2290\begin_layout Standard
2291A continuación describimos los requerimientos del
2292\family typewriter
2293API
2294\family default
2295 de restricciones expresadas en un conjunto de funciones que deben estar
2296 implementadas en el
2297\family typewriter
2298NameBlock
2299\family default
2300:
2301\end_layout
2302
2303\begin_layout Description
2304Get.OrderRelation.Size la función
2305\family typewriter
2306Real Get.OrderRelation.Size (Real void)
2307\family default
2308 retorna el número de restricciones de orden.
2309 Para nuestro ejemplo tenemos solo una:
2310\begin_inset listings
2311lstparams "basicstyle={\small\ttfamily}"
2312inline false
2313status open
2314
2315\begin_layout Standard
2316
2317Real Get.OrderRelation.Size (Real void)
2318\end_layout
2319
2320\begin_layout Standard
2321
2322{
2323\end_layout
2324
2325\begin_layout Standard
2326
2327  Real 1
2328\end_layout
2329
2330\begin_layout Standard
2331
2332};
2333\end_layout
2334
2335\end_inset
2336
2337
2338\end_layout
2339
2340\begin_layout Description
2341Get.OrderRelation la función
2342\family typewriter
2343Set  Get.OrderRelation (Real r)
2344\family default
2345 retorna la r-ésima relación de orden entre dos parámetros.
2346 El parámetro r va desde
2347\family typewriter
23481
2349\family default
2350 hasta
2351\family typewriter
2352n=Get.OrderRelation.Size(0)
2353\family default
2354.
2355 El valor de retorno es una estructura del tipo
2356\family typewriter
2357Bsr.OrdeRelation.Info
2358\family default
2359.
2360 Siguiendo nuestro ejemplo:
2361\begin_inset listings
2362lstparams "basicstyle={\small\ttfamily}"
2363inline false
2364status open
2365
2366\begin_layout Standard
2367
2368Set  Get.OrderRelation (Real r)
2369\end_layout
2370
2371\begin_layout Standard
2372
2373{
2374\end_layout
2375
2376\begin_layout Standard
2377
2378  Set Bsr.OrdeRelation.Info("beta_2","beta_1")
2379\end_layout
2380
2381\begin_layout Standard
2382
2383};
2384\end_layout
2385
2386\end_inset
2387
2388
2389\end_layout
2390
2391\begin_layout Description
2392Get.GenericConstraint.Size la función
2393\family typewriter
2394Real Get.GenericConstraint.Size (Real void)
2395\family default
2396 retorna el número de restricciones genéricas.
2397 Las restricciones genéricas son aquella que no pueden definirse como restriccio
2398nes de dominio de un parámetro o como relaciones de orden entre dos parámetros.
2399 Este es el tipo de restricción líneal más general que podemos expresar
2400 y por tanto los otros tipos de restricciones, como las de orden, pueden
2401 expresarse también de este tipo.
2402 En nuestro caso como ya hemos definido la restricción como de orden no
2403 la definimos como genérica:
2404\begin_inset listings
2405lstparams "basicstyle={\small\ttfamily}"
2406inline false
2407status open
2408
2409\begin_layout Standard
2410
2411Real Get.GenericConstraint.Size (Real void)
2412\end_layout
2413
2414\begin_layout Standard
2415
2416{
2417\end_layout
2418
2419\begin_layout Standard
2420
2421  Real 0
2422\end_layout
2423
2424\begin_layout Standard
2425
2426};
2427\end_layout
2428
2429\end_inset
2430
2431
2432\end_layout
2433
2434\begin_layout Description
2435Get.GenericConstraint la función
2436\family typewriter
2437Set  Get.GenericConstraint (Real r)
2438\family default
2439 retorna la r-ésima restricción genérica.
2440 El argumento
2441\family typewriter
2442r
2443\family default
2444 va desde
2445\family typewriter
24461
2447\family default
2448 hasta
2449\family typewriter
2450n=Get.GenericConstraint.Size(0)
2451\family default
2452.
2453 El valor de retorno es un
2454\family typewriter
2455Set
2456\family default
2457 con estructura
2458\family typewriter
2459Bsr.GenericConstraint.Info
2460\family default
2461.
2462 Por ejemplo la restricción de orden ya definida anteriormente podríamos
2463 definirla de esta manera:
2464\begin_inset listings
2465lstparams "basicstyle={\small\ttfamily}"
2466inline false
2467status open
2468
2469\begin_layout Standard
2470
2471Set  Get.GenericConstraint (Real r)
2472\end_layout
2473
2474\begin_layout Standard
2475
2476{
2477\end_layout
2478
2479\begin_layout Standard
2480
2481  Set Bsr.GenericConstraint.Info
2482\end_layout
2483
2484\begin_layout Standard
2485
2486  ( 0.0,
2487\end_layout
2488
2489\begin_layout Standard
2490
2491    [[Set Bsr.LinearCombTerm(1.0,  "beta_1"),
2492\end_layout
2493
2494\begin_layout Standard
2495
2496      Set Bsr.LinearCombTerm(-1.0, "beta_2")]],
2497\end_layout
2498
2499\begin_layout Standard
2500
2501    +1/0 )
2502\end_layout
2503
2504\begin_layout Standard
2505
2506};
2507\end_layout
2508
2509\end_inset
2510
2511
2512\end_layout
2513
2514\begin_layout Description
2515Get.ExplicitConstraint.Size la función
2516\family typewriter
2517Real Get.ExplicitConstraint.Size(Real void)
2518\family default
2519 retorna el número de restricciónes explícitas.
2520 Las restricciones explícitas son restricciones en formato texto tal y como
2521 se escriben en el archivo
2522\family typewriter
2523.bsr
2524\family default
2525.
2526 Para nuestro ejemplo no definimos ninguna restricción del tipo explícita
2527 ya que han sido convenientemente definidas anteriormente:
2528\begin_inset listings
2529lstparams "basicstyle={\small\ttfamily}"
2530inline false
2531status open
2532
2533\begin_layout Standard
2534
2535Real Get.ExplicitConstraint.Size(Real void)
2536\end_layout
2537
2538\begin_layout Standard
2539
2540{
2541\end_layout
2542
2543\begin_layout Standard
2544
2545  Real 0
2546\end_layout
2547
2548\begin_layout Standard
2549
2550};
2551\end_layout
2552
2553\end_inset
2554
2555
2556\end_layout
2557
2558\begin_layout Description
2559Get.ExplicitConstraint la función
2560\family typewriter
2561Text Get.ExplicitConstraint(Real r)
2562\family default
2563 retorna la r-ésima restricción explícita.
2564\begin_inset listings
2565lstparams "basicstyle={\small\ttfamily}"
2566inline false
2567status open
2568
2569\begin_layout Standard
2570
2571Text Get.ExplicitConstraint(Real r)
2572\end_layout
2573
2574\begin_layout Standard
2575
2576{
2577\end_layout
2578
2579\begin_layout Standard
2580
2581  Text ""
2582\end_layout
2583
2584\begin_layout Standard
2585
2586};
2587\end_layout
2588
2589\end_inset
2590
2591
2592\end_layout
2593
2594\begin_layout Standard
2595Se dan también funciones de conveniencia para construir un
2596\family typewriter
2597NameBlock
2598\family default
2599 que satisfaga el
2600\family typewriter
2601API
2602\family default
2603 de definición de restricciones.
2604 Estas funciones son:
2605\end_layout
2606
2607\begin_layout Description
2608Order.Relations la función
2609\family typewriter
2610NameBlock Order.Relations(Set order.relations)
2611\family default
2612 crea un
2613\family typewriter
2614NameBlock
2615\family default
2616 de restricciones en la que solo están definidas restricciones de orden.
2617 Ejemplo:
2618\begin_inset listings
2619lstparams "basicstyle={\small\ttfamily}"
2620inline false
2621status open
2622
2623\begin_layout Standard
2624
2625NameBlock Order.Relations([[Bsr.OrdeRelation.Info("beta_2","beta_1")]])
2626\end_layout
2627
2628\end_inset
2629
2630
2631\end_layout
2632
2633\begin_layout Description
2634Generic.Constraints la función
2635\family typewriter
2636NameBlock
2637\family default
2638 
2639\family typewriter
2640Generic.Constraints(Set generic.constraints)
2641\family default
2642 crea un
2643\family typewriter
2644NameBlock
2645\family default
2646 de restricciones en la que solo están definidas restricciones genéricas.
2647 Ejemplo:
2648\begin_inset listings
2649lstparams "basicstyle={\small\ttfamily}"
2650inline false
2651status open
2652
2653\begin_layout Standard
2654
2655NameBlock Generic.Constraints
2656\end_layout
2657
2658\begin_layout Standard
2659
2660(
2661\end_layout
2662
2663\begin_layout Standard
2664
2665[[
2666\end_layout
2667
2668\begin_layout Standard
2669
2670  Bsr.GenericConstraint.Info
2671\end_layout
2672
2673\begin_layout Standard
2674
2675  ( 0.0,
2676\end_layout
2677
2678\begin_layout Standard
2679
2680    [[Set Bsr.LinearCombTerm(1.0,  "beta_1"),
2681\end_layout
2682
2683\begin_layout Standard
2684
2685      Set Bsr.LinearCombTerm(-1.0, "beta_2")]],
2686\end_layout
2687
2688\begin_layout Standard
2689
2690    +1/0 )
2691\end_layout
2692
2693\begin_layout Standard
2694
2695]]
2696\end_layout
2697
2698\begin_layout Standard
2699
2700)
2701\end_layout
2702
2703\end_inset
2704
2705
2706\end_layout
2707
2708\begin_layout Description
2709Explicit.Constraints la función
2710\family typewriter
2711NameBlock Explicit.Constraints(Set explicit.constraints)
2712\family default
2713 crea un
2714\family typewriter
2715NameBlock
2716\family default
2717 de restricciones en la que solo están definidas restricciones explícitas.
2718 Ejemplo:
2719\begin_inset listings
2720lstparams "basicstyle={\small\ttfamily}"
2721inline false
2722status open
2723
2724\begin_layout Standard
2725
2726NameBlock Explicit.Constraints([["0<=+beta_1-beta_2"]])
2727\end_layout
2728
2729\end_inset
2730
2731
2732\end_layout
2733
2734\begin_layout Description
2735Constraints la función
2736\family typewriter
2737NameBlock Constraints(Set order.relations,Set generic.constraints,Set explicit.cons
2738traints)
2739\family default
2740 crea un
2741\family typewriter
2742NameBlock
2743\family default
2744 de restricciones a partir de los 3 tipos de restricciones posibles.
2745 Ejemplo:
2746\begin_inset listings
2747lstparams "basicstyle={\small\ttfamily}"
2748inline false
2749status open
2750
2751\begin_layout Standard
2752
2753NameBlock Constraints(Empty,Empty,[["0<=+beta_1-beta_2"]])
2754\end_layout
2755
2756\end_inset
2757
2758
2759\end_layout
2760
2761\begin_layout Description
2762Unconstrained la función
2763\family typewriter
2764NameBlock Unconstrained(Real void)
2765\family default
2766 crea un
2767\family typewriter
2768NameBlock
2769\family default
2770 de restricciones vacío.
2771 Ejemplo:
2772\begin_inset listings
2773lstparams "basicstyle={\small\ttfamily}"
2774inline false
2775status open
2776
2777\begin_layout Standard
2778
2779NameBlock Unconstrained(0)
2780\end_layout
2781
2782\end_inset
2783
2784
2785\end_layout
2786
2787\begin_layout Section
2788Ejemplo de API Import
2789\end_layout
2790
2791\begin_layout Standard
2792El código completo para el ejemplo dado en las ecuaciones
2793\begin_inset LatexCommand ref
2794reference "eq:mod_exa_bsr"
2795
2796\end_inset
2797
2798 quedaría de la siguiente manera:
2799\end_layout
2800
2801\begin_layout Standard
2802\begin_inset listings
2803lstparams "basicstyle={\small\ttfamily}"
2804inline false
2805status open
2806
2807\begin_layout Standard
2808
2809NameBlock Build.Example.BSR(Text path.out, Text session.id,
2810\end_layout
2811
2812\begin_layout Standard
2813
2814                            Serie Y, Set X)
2815\end_layout
2816
2817\begin_layout Standard
2818
2819{
2820\end_layout
2821
2822\begin_layout Standard
2823
2824  Real beta1 = Rand(-1,1);
2825\end_layout
2826
2827\begin_layout Standard
2828
2829  Real beta2 = Rand(-1,beta1);
2830\end_layout
2831
2832\begin_layout Standard
2833
2834  NameBlock [[
2835\end_layout
2836
2837\begin_layout Standard
2838
2839    Text _.path.out = path.out;
2840\end_layout
2841
2842\begin_layout Standard
2843
2844    Text _.session.id = session.id;
2845\end_layout
2846
2847\begin_layout Standard
2848
2849    NameBlock _.bsr.ARMA.2_1 = [[
2850\end_layout
2851
2852\begin_layout Standard
2853
2854      Text _.dating.name = DatingName(Y);
2855\end_layout
2856
2857\begin_layout Standard
2858
2859      _.first = First(Y);
2860\end_layout
2861
2862\begin_layout Standard
2863
2864      _.last = Last(Y),
2865\end_layout
2866
2867\begin_layout Standard
2868
2869      Matrix _.Y = SerMat(Y);
2870\end_layout
2871
2872\begin_layout Standard
2873
2874      Matrix _.X = SerSetMat(X);
2875\end_layout
2876
2877\begin_layout Standard
2878
2879      Set _.beta.ini = [[beta1, beta2]];
2880\end_layout
2881
2882\begin_layout Standard
2883
2884\end_layout
2885
2886\begin_layout Standard
2887
2888      Text Get.Name(Real void)
2889\end_layout
2890
2891\begin_layout Standard
2892
2893      {
2894\end_layout
2895
2896\begin_layout Standard
2897
2898        Text "ObsY"
2899\end_layout
2900
2901\begin_layout Standard
2902
2903      };
2904\end_layout
2905
2906\begin_layout Standard
2907
2908\end_layout
2909
2910\begin_layout Standard
2911
2912      Text Get.Sigma2(Real void)
2913\end_layout
2914
2915\begin_layout Standard
2916
2917      {
2918\end_layout
2919
2920\begin_layout Standard
2921
2922        Text "sigma2"
2923\end_layout
2924
2925\begin_layout Standard
2926
2927      };
2928\end_layout
2929
2930\begin_layout Standard
2931
2932\end_layout
2933
2934\begin_layout Standard
2935
2936      Set Get.TimeInfo(Real void)
2937\end_layout
2938
2939\begin_layout Standard
2940
2941      {
2942\end_layout
2943
2944\begin_layout Standard
2945
2946        Set BSR.NoiseTimeInfo(TimeSet Eval(_.dating.name), _.first, _.last)
2947\end_layout
2948
2949\begin_layout Standard
2950
2951      };
2952\end_layout
2953
2954\begin_layout Standard
2955
2956\end_layout
2957
2958\begin_layout Standard
2959
2960      Real Get.ARIMA.Size(Real void)
2961\end_layout
2962
2963\begin_layout Standard
2964
2965      {
2966\end_layout
2967
2968\begin_layout Standard
2969
2970        Real 1
2971\end_layout
2972
2973\begin_layout Standard
2974
2975      };
2976\end_layout
2977
2978\begin_layout Standard
2979
2980\end_layout
2981
2982\begin_layout Standard
2983
2984      Set Get.ARIMA.Factor(Real f)
2985\end_layout
2986
2987\begin_layout Standard
2988
2989      {
2990\end_layout
2991
2992\begin_layout Standard
2993
2994        Set ARIMAStruct(1, 1-0.1*B-0.1*B^2, 1-0.1*B, 1)
2995\end_layout
2996
2997\begin_layout Standard
2998
2999      };
3000\end_layout
3001
3002\begin_layout Standard
3003
3004\end_layout
3005
3006\begin_layout Standard
3007
3008      Real Get.Param.Size(Real void)
3009\end_layout
3010
3011\begin_layout Standard
3012
3013      {
3014\end_layout
3015
3016\begin_layout Standard
3017
3018        Real Rows(_.X)
3019\end_layout
3020
3021\begin_layout Standard
3022
3023      };
3024\end_layout
3025
3026\begin_layout Standard
3027
3028\end_layout
3029
3030\begin_layout Standard
3031
3032      Set Get.Param(Real iP)
3033\end_layout
3034
3035\begin_layout Standard
3036
3037      {
3038\end_layout
3039
3040\begin_layout Standard
3041
3042        Real value = If(iP>2,Real Rand(-1,1),_.beta.ini[iP]);
3043\end_layout
3044
3045\begin_layout Standard
3046
3047        Set Bsr.Param.Info("beta_"+IntText(iP), value, -1/0, 1/0)
3048\end_layout
3049
3050\begin_layout Standard
3051
3052      };
3053\end_layout
3054
3055\begin_layout Standard
3056
3057\end_layout
3058
3059\begin_layout Standard
3060
3061      Real Get.Missing.Size(Real void)
3062\end_layout
3063
3064\begin_layout Standard
3065
3066      {
3067\end_layout
3068
3069\begin_layout Standard
3070
3071        Real 0
3072\end_layout
3073
3074\begin_layout Standard
3075
3076      };
3077\end_layout
3078
3079\begin_layout Standard
3080
3081\end_layout
3082
3083\begin_layout Standard
3084
3085      Set Get.Missing(Real iP)
3086\end_layout
3087
3088\begin_layout Standard
3089
3090      {
3091\end_layout
3092
3093\begin_layout Standard
3094
3095        Set Empty
3096\end_layout
3097
3098\begin_layout Standard
3099
3100      };
3101\end_layout
3102
3103\begin_layout Standard
3104
3105\end_layout
3106
3107\begin_layout Standard
3108
3109      Real Get.Equation.Size(Real void)
3110\end_layout
3111
3112\begin_layout Standard
3113
3114      {
3115\end_layout
3116
3117\begin_layout Standard
3118
3119        // _.X e _.Y están dispuestas por filas
3120\end_layout
3121
3122\begin_layout Standard
3123
3124        Real Columns(_.X)
3125\end_layout
3126
3127\begin_layout Standard
3128
3129      };
3130\end_layout
3131
3132\begin_layout Standard
3133
3134\end_layout
3135
3136\begin_layout Standard
3137
3138      Real Get.Equation.Output(Real iE)
3139\end_layout
3140
3141\begin_layout Standard
3142
3143      {
3144\end_layout
3145
3146\begin_layout Standard
3147
3148        Real MatDat(_.Y,1,iE)
3149\end_layout
3150
3151\begin_layout Standard
3152
3153      };
3154\end_layout
3155
3156\begin_layout Standard
3157
3158\end_layout
3159
3160\begin_layout Standard
3161
3162      Real Get.Equation.Input.Size(Real iE)
3163\end_layout
3164
3165\begin_layout Standard
3166
3167      {
3168\end_layout
3169
3170\begin_layout Standard
3171
3172        Real Rows(_.X)
3173\end_layout
3174
3175\begin_layout Standard
3176
3177      };
3178\end_layout
3179
3180\begin_layout Standard
3181
3182\end_layout
3183
3184\begin_layout Standard
3185
3186      Real Get.Equation.Input.Coef(Real iE, Real iT)
3187\end_layout
3188
3189\begin_layout Standard
3190
3191      {
3192\end_layout
3193
3194\begin_layout Standard
3195
3196        Real MatDat(_.X, iT,iE)
3197\end_layout
3198
3199\begin_layout Standard
3200
3201      };
3202\end_layout
3203
3204\begin_layout Standard
3205
3206\end_layout
3207
3208\begin_layout Standard
3209
3210      Text Get.Equation.Input.Param(Real iE, Real iT)
3211\end_layout
3212
3213\begin_layout Standard
3214
3215      {
3216\end_layout
3217
3218\begin_layout Standard
3219
3220        Text "beta_"+IntText(iT)
3221\end_layout
3222
3223\begin_layout Standard
3224
3225      };
3226\end_layout
3227
3228\begin_layout Standard
3229
3230\end_layout
3231
3232\begin_layout Standard
3233
3234      NameBlock Get.Constraints.Handler(Real void)
3235\end_layout
3236
3237\begin_layout Standard
3238
3239      {
3240\end_layout
3241
3242\begin_layout Standard
3243
3244        NameBlock BysMcmc::Bsr::Import::Explicit.Constraints([["0>=-beta1+beta2"]
3245])
3246\end_layout
3247
3248\begin_layout Standard
3249
3250      }
3251\end_layout
3252
3253\begin_layout Standard
3254
3255    ]];
3256\end_layout
3257
3258\begin_layout Standard
3259
3260\end_layout
3261
3262\begin_layout Standard
3263
3264    Text Get.Doc.Model.Name(Real void)
3265\end_layout
3266
3267\begin_layout Standard
3268
3269    {
3270\end_layout
3271
3272\begin_layout Standard
3273
3274      Text "BSRExample"
3275\end_layout
3276
3277\begin_layout Standard
3278
3279    };
3280\end_layout
3281
3282\begin_layout Standard
3283
3284\end_layout
3285
3286\begin_layout Standard
3287
3288    Text Get.Doc.Model.Description(Real void)
3289\end_layout
3290
3291\begin_layout Standard
3292
3293    {
3294\end_layout
3295
3296\begin_layout Standard
3297
3298      Text "Modelo simple ARMA(2,1)"
3299\end_layout
3300
3301\begin_layout Standard
3302
3303    };
3304\end_layout
3305
3306\begin_layout Standard
3307
3308\end_layout
3309
3310\begin_layout Standard
3311
3312    Text Get.Doc.Session.Name(Real void)
3313\end_layout
3314
3315\begin_layout Standard
3316
3317    {
3318\end_layout
3319
3320\begin_layout Standard
3321
3322      Text _.session.id
3323\end_layout
3324
3325\begin_layout Standard
3326
3327    };
3328\end_layout
3329
3330\begin_layout Standard
3331
3332\end_layout
3333
3334\begin_layout Standard
3335
3336    Text Get.Doc.Session.Description(Real void)
3337\end_layout
3338
3339\begin_layout Standard
3340
3341    {
3342\end_layout
3343
3344\begin_layout Standard
3345
3346      Text "Session "+_.session.id+" para el modelo: " +
3347\end_layout
3348
3349\begin_layout Standard
3350
3351           Get.Doc.Model.Name(0) + " " + Get.Doc.Model.Description(0)
3352\end_layout
3353
3354\begin_layout Standard
3355
3356    };
3357\end_layout
3358
3359\begin_layout Standard
3360
3361\end_layout
3362
3363\begin_layout Standard
3364
3365    Text Get.Doc.Session.Authors(Real void)
3366\end_layout
3367
3368\begin_layout Standard
3369
3370    {
3371\end_layout
3372
3373\begin_layout Standard
3374
3375      Text "user@bayesforecast.com"
3376\end_layout
3377
3378\begin_layout Standard
3379
3380    };
3381\end_layout
3382
3383\begin_layout Standard
3384
3385\end_layout
3386
3387\begin_layout Standard
3388
3389    Text Get.Doc.Path(Real void)
3390\end_layout
3391
3392\begin_layout Standard
3393
3394    {
3395\end_layout
3396
3397\begin_layout Standard
3398
3399      Text _.path.out
3400\end_layout
3401
3402\begin_layout Standard
3403
3404    };
3405\end_layout
3406
3407\begin_layout Standard
3408
3409\end_layout
3410
3411\begin_layout Standard
3412
3413    Real Get.LinReg.Size(Real void)
3414\end_layout
3415
3416\begin_layout Standard
3417
3418    {
3419\end_layout
3420
3421\begin_layout Standard
3422
3423      // para el ejemplo actual solo tenemos un segmento de regresión
3424\end_layout
3425
3426\begin_layout Standard
3427
3428      Real 1
3429\end_layout
3430
3431\begin_layout Standard
3432
3433    };
3434\end_layout
3435
3436\begin_layout Standard
3437
3438\end_layout
3439
3440\begin_layout Standard
3441
3442    NameBlock Get.LinReg.Segment(Real iS)
3443\end_layout
3444
3445\begin_layout Standard
3446
3447    {
3448\end_layout
3449
3450\begin_layout Standard
3451
3452      // en este caso retornamos el NameBlock para el único segmento
3453\end_layout
3454
3455\begin_layout Standard
3456
3457      // que se modela para mas de un segmento de regresión se suele
3458\end_layout
3459
3460\begin_layout Standard
3461
3462      // usar un Set que es indexado por iS: _bsr.blocks[iS]
3463\end_layout
3464
3465\begin_layout Standard
3466
3467      NameBlock _.bsr.ARMA.2_1
3468\end_layout
3469
3470\begin_layout Standard
3471
3472    };
3473\end_layout
3474
3475\begin_layout Standard
3476
3477\end_layout
3478
3479\begin_layout Standard
3480
3481    NameBlock Get.Constraints.Handler(Real void)
3482\end_layout
3483
3484\begin_layout Standard
3485
3486    {
3487\end_layout
3488
3489\begin_layout Standard
3490
3491      // retornamos un NameBlock predefinido para el caso
3492\end_layout
3493
3494\begin_layout Standard
3495
3496      // no restringido
3497\end_layout
3498
3499\begin_layout Standard
3500
3501      NameBlock BysMcmc::Bsr::Import::Unconstrained(0)
3502\end_layout
3503
3504\begin_layout Standard
3505
3506    }
3507\end_layout
3508
3509\begin_layout Standard
3510
3511  ]]
3512\end_layout
3513
3514\begin_layout Standard
3515
3516};
3517\end_layout
3518
3519\end_inset
3520
3521
3522\end_layout
3523
3524\end_body
3525\end_document
Note: See TracBrowser for help on using the repository browser.