1# $Id: t_stringparser.conf 3448 2007-02-15 21:15:05Z leydold $
2#############################################################################
3
4[main]
5
6[main - data:]
7
8# method (for information only: the program scans the file name)
9method: INFO
10
11[main - header:]
12
13/* prototypes */
14
15/* CEXT: */
16double exp1_sample(UNUR_GEN *gen);
17
18/* DEXT: */
19int geom12_sample(UNUR_GEN *gen);
20
21
22\#define COMPARE_SAMPLE_SIZE   (10000)
23\#define VIOLATE_SAMPLE_SIZE   (20)
24
25
26/* macros for running info test */
27
28\#define INFO_TEST(genstr) \
29   gen = unur_str2gen((genstr)); \
30   fprintf(TESTLOG,"GEN  = \"%s\"\n",(genstr)); \
31   fprintf(TESTLOG,"INFO = \n%s\n",unur_gen_info(gen,FALSE)); \
32   fprintf(TESTLOG,"HELP = \n%s\n",unur_gen_info(gen,TRUE)); \
33   fprintf(TESTLOG,"---------------------\n"); \
34   unur_free(gen); gen = NULL;
35
36\#define INFO_TEST_chg(genstr,run_chg) \
37   gen = unur_str2gen((genstr)); \
38   run_chg; \
39   fprintf(TESTLOG,"GEN  = \"%s\"\n",(genstr)); \
40   fprintf(TESTLOG,"INFO = \n%s\n",unur_gen_info(gen,FALSE)); \
41   fprintf(TESTLOG,"HELP = \n%s\n",unur_gen_info(gen,TRUE)); \
42   fprintf(TESTLOG,"---------------------\n"); \
43   unur_free(gen); gen = NULL;
44
45\#define METHOD(m) \
46   printf("%s ",(m)); \
47   fprintf(TESTLOG,"*********************\n"); \
48   fprintf(TESTLOG,"* %s\n",(m)); \
49   fprintf(TESTLOG,"*********************\n\n"); \
50   fflush(stdout);
51
52\#define INFO_TEST_par(genstr,gen) \
53   fprintf(TESTLOG,"GEN  = \"%s\"\n",(genstr)); \
54   fprintf(TESTLOG,"INFO = \n%s\n",unur_gen_info((gen),FALSE)); \
55   fprintf(TESTLOG,"HELP = \n%s\n",unur_gen_info((gen),TRUE)); \
56   fprintf(TESTLOG,"---------------------\n"); \
57   unur_free(gen); gen = NULL;
58
59
60#############################################################################
61
62[new]
63
64#############################################################################
65
66# [set]
67
68#############################################################################
69
70# [get]
71
72#############################################################################
73
74# [chg]
75
76#############################################################################
77
78# [init]
79
80#############################################################################
81
82# [reinit]
83
84#############################################################################
85
86[sample]
87
88[sample - set debugging flags:
89   gen = NULL; ]
90
91unur_set_default_debug(UNUR_DEBUG_INIT);
92
93#---------------------------------------------------------------------
94
95[sample - AROU:
96   gen = NULL; ]
97
98\#ifdef UNUR_ENABLE_INFO
99
100METHOD("AROU");
101
102INFO_TEST("normal & method=arou");
103INFO_TEST("normal & method=arou; max_segments=10; cpoints=3");
104INFO_TEST("cont; pdf='exp(-x^2)' & method=arou; max_segments=1000");
105INFO_TEST("cont; pdf='exp(-x^2)' & method=arou; max_segments=1000; max_sqhratio=0.90");
106
107\#endif
108
109#---------------------------------------------------------------------
110
111[sample - ARS:
112   gen = NULL; ]
113
114\#ifdef UNUR_ENABLE_INFO
115
116METHOD("ARS");
117
118INFO_TEST("normal & method=ars");
119INFO_TEST("normal & method=ars; cpoints=100");
120INFO_TEST("cont; logpdf='-x^2' & method=ars");
121
122\#endif
123
124#---------------------------------------------------------------------
125
126[sample - CEXT:
127   distr = NULL;
128   par = NULL;
129   gen = NULL; ]
130
131\#ifdef UNUR_ENABLE_INFO
132
133METHOD("CEXT");
134
135distr = unur_distr_exponential(NULL,0);
136par = unur_cext_new(distr);
137unur_cext_set_sample(par,exp1_sample);
138gen = unur_init(par);
139INFO_TEST_par("... & method=cext",gen);
140
141\#endif
142
143#---------------------------------------------------------------------
144
145[sample - CSTD:
146   gen = NULL; ]
147
148\#ifdef UNUR_ENABLE_INFO
149
150METHOD("CSTD");
151
152INFO_TEST("normal & method=cstd");
153INFO_TEST("normal & method=cstd; variant=0");
154INFO_TEST("normal & method=cstd; variant=-1");
155INFO_TEST("normal & method=cstd; variant=1");
156INFO_TEST("normal & method=cstd; variant=2");
157INFO_TEST("normal & method=cstd; variant=3");
158
159\#endif
160
161#---------------------------------------------------------------------
162
163[sample - DARI:
164   gen = NULL; ]
165
166\#ifdef UNUR_ENABLE_INFO
167
168METHOD("DARI");
169
170INFO_TEST("geometric(0.5) & method=dari");
171INFO_TEST("binomial(20,0.5) & method=dari");
172INFO_TEST("binomial(20,0.5) & method=dari;squeeze=on");
173INFO_TEST("binomial(20,0.5) & method=dari;tablesize=0");
174INFO_TEST("binomial(20,0.5) & method=dari;cpfactor=0.6");
175
176INFO_TEST("discr; pmf='0.5^x';domain=(0,inf) & method=dari");
177INFO_TEST("discr; pmf='2*0.5^x';domain=(1,inf) & method=dari");
178
179\#endif
180
181#---------------------------------------------------------------------
182
183[sample - DAU:
184   gen = NULL; ]
185
186\#ifdef UNUR_ENABLE_INFO
187
188METHOD("DAU");
189
190INFO_TEST("geometric(0.5) & method=dau");
191INFO_TEST("geometric(0.5) & method=dau;urnfactor=2");
192INFO_TEST("discr; pv=(.1,.2,.3,.4,.5,.6,.7) & method=dau");
193
194\#endif
195
196#---------------------------------------------------------------------
197
198[sample - DGT:
199   gen = NULL; ]
200
201\#ifdef UNUR_ENABLE_INFO
202
203METHOD("DGT");
204
205INFO_TEST("geometric(0.5) & method=dgt");
206INFO_TEST("geometric(0.5) & method=dgt;guidefactor=2");
207INFO_TEST("discr; pv=(.1,.2,.3,.4,.5,.6,.7) & method=dgt");
208
209\#endif
210
211#---------------------------------------------------------------------
212
213[sample - DSROU:
214   gen = NULL; ]
215
216\#ifdef UNUR_ENABLE_INFO
217
218METHOD("DSROU");
219
220INFO_TEST("geometric(0.5) & method=dsrou");
221INFO_TEST("binomial(20,0.5) & method=dsrou;cdfatmode=0.5");
222INFO_TEST("binomial(20,0.5) & method=dsrou");
223INFO_TEST("discr; pmf='0.5^x';domain=(0,inf);pmfsum=2 & method=dsrou");
224INFO_TEST("discr; pmf='2*0.5^x';domain=(1,inf);pmfsum=2 & method=dsrou");
225
226\#endif
227
228#---------------------------------------------------------------------
229
230[sample - DSS:
231   gen = NULL; ]
232
233\#ifdef UNUR_ENABLE_INFO
234
235METHOD("DSS");
236
237INFO_TEST("geometric(0.5) & method=dss");
238INFO_TEST("discr; pv=(.1,.2,.3,.4,.5,.6,.7);pmfsum=2.8 & method=dss");
239INFO_TEST("discr; cdf='1-exp(-x)';pmfsum=1 & method=dss");
240
241\#endif
242
243#---------------------------------------------------------------------
244
245[sample - DSTD:
246   gen = NULL; ]
247
248\#ifdef UNUR_ENABLE_INFO
249
250METHOD("DSTD");
251
252INFO_TEST("poisson(10) & method=dstd");
253INFO_TEST("poisson(10) & method=dstd;variant=0");
254INFO_TEST("poisson(10) & method=dstd;variant=2");
255INFO_TEST("geometric(0.5) & method=dstd");
256INFO_TEST("geometric(0.5) & method=dstd;variant=0");
257INFO_TEST("geometric(0.5) & method=dstd;variant=-1");
258
259\#endif
260
261#---------------------------------------------------------------------
262
263[sample - DEXT:
264   double fpar[1] = {0.5};
265   distr = NULL;
266   par = NULL;
267   gen = NULL; ]
268
269\#ifdef UNUR_ENABLE_INFO
270
271METHOD("DEXT");
272
273distr = unur_distr_geometric(fpar,1);
274par = unur_dext_new(distr);
275unur_dext_set_sample(par,geom12_sample);
276gen = unur_init(par);
277INFO_TEST_par("... & method=dext",gen);
278
279\#endif
280
281#---------------------------------------------------------------------
282
283[sample - EMPK:
284   gen = NULL; ]
285
286\#ifdef UNUR_ENABLE_INFO
287
288METHOD("EMPK");
289
290INFO_TEST("cemp; data=(1.,2.,3.,4.,5.,6.,7.,8.,9.) & method=empk");
291INFO_TEST("cemp; data=(1.,2.,3.,4.,5.,6.,7.,8.,9.) & method=empk\
292	;beta=1.5;positive=on;smoothing=1.2;varcor=on");
293
294\#endif
295
296#---------------------------------------------------------------------
297
298[sample - EMPL:
299   gen = NULL; ]
300
301\#ifdef UNUR_ENABLE_INFO
302
303METHOD("EMPL");
304
305INFO_TEST("cemp; data=(1.,2.,3.,4.,5.,6.,7.,8.,9.) & method = empl");
306
307\#endif
308
309#---------------------------------------------------------------------
310
311[sample - GIBBS:
312   const int dim = 3;
313   double mean[] = {1.,2.,3.};
314   double covar[] = { 2., 2., 1.,   2., 4., 3.,   1., 3., 3. };
315   double ll[] = {0.,0.,0.};
316   double ru[] = {1.,UNUR_INFINITY,UNUR_INFINITY};
317   distr = NULL;
318   par = NULL;
319   gen = NULL; ]
320
321\#ifdef UNUR_ENABLE_INFO
322
323METHOD("GIBBS");
324
325distr = unur_distr_multinormal( dim, mean, covar );
326par = unur_gibbs_new(distr);
327gen = unur_init(par);
328INFO_TEST_par("... & method=gibbs",gen);
329
330unur_distr_free(distr);unur_free(gen);
331distr = unur_distr_multinormal( dim, NULL, NULL );
332unur_distr_cvec_set_domain_rect( distr, ll, ru);
333par = unur_gibbs_new(distr);
334gen = unur_init(par);
335INFO_TEST_par("... & method=gibbs",gen);
336
337unur_distr_free(distr);unur_free(gen);
338distr = unur_distr_multinormal( dim, NULL, NULL );
339par = unur_gibbs_new(distr);
340gen = unur_init(par);
341INFO_TEST_par("... & method=gibbs",gen);
342
343unur_distr_free(distr);unur_free(gen);
344distr = unur_distr_multinormal( dim, NULL, NULL );
345par = unur_gibbs_new(distr);
346unur_gibbs_set_variant_random_direction(par);
347unur_gibbs_set_c(par,-0.5);
348unur_gibbs_set_thinning(par,3);
349unur_gibbs_set_burnin(par,1000);
350gen = unur_init(par);
351INFO_TEST_par("... & method=gibbs",gen);
352
353\#endif
354
355#---------------------------------------------------------------------
356
357[sample - HINV:
358   gen = NULL; ]
359
360\#ifdef UNUR_ENABLE_INFO
361
362METHOD("HINV");
363
364INFO_TEST("normal & method=hinv");
365INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf) & method=hinv");
366INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf) & method=hinv; order=5");
367INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf); mode=0 & method=hinv");
368INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf) & method=hinv; u_resolution=1e-16");
369INFO_TEST_chg("normal & method=hinv", unur_hinv_chg_truncated(gen,0.,1.));
370
371\#endif
372
373#---------------------------------------------------------------------
374
375[sample - HIST:
376   double hist[] = {0.1,0.2,0.3,0.4,0.5,0.4,0.3,0.2,0.1};
377   double bins[] = {1.,2.,3.,4.,5.,6.,7.,8.,9.,10.};
378   distr = NULL;
379   par = NULL;
380   gen = NULL; ]
381
382\#ifdef UNUR_ENABLE_INFO
383
384METHOD("HIST");
385
386distr = unur_distr_cemp_new();
387unur_distr_cemp_set_hist_prob(distr,hist,9);
388unur_distr_cemp_set_hist_domain(distr,1.,10.);
389par = unur_hist_new(distr);
390gen = unur_init(par);
391INFO_TEST_par("... & method=hist",gen);
392
393unur_distr_free(distr);unur_free(gen);
394distr = unur_distr_cemp_new();
395unur_distr_cemp_set_hist_prob(distr,hist,9);
396unur_distr_cemp_set_hist_bins(distr,bins,10);
397unur_distr_cemp_set_hist_domain(distr,1.,10.);
398par = unur_hist_new(distr);
399gen = unur_init(par);
400INFO_TEST_par("... & method=hist",gen);
401
402\#endif
403
404#---------------------------------------------------------------------
405
406[sample - HITRO:
407   const int dim = 3;
408   double mean[] = {1.,2.,3.};
409   double covar[] = { 2., 2., 1.,   2., 4., 3.,   1., 3., 3. };
410   double ll[] = {0.,0.,0.};
411   double ru[] = {1.,UNUR_INFINITY,UNUR_INFINITY};
412   distr = NULL;
413   par = NULL;
414   gen = NULL; ]
415
416\#ifdef UNUR_ENABLE_INFO
417
418METHOD("HITRO");
419
420distr = unur_distr_multinormal( dim, mean, covar );
421par = unur_hitro_new(distr);
422gen = unur_init(par);
423INFO_TEST_par("... & method=hitro",gen);
424
425unur_distr_free(distr);unur_free(gen);
426distr = unur_distr_multinormal( dim, NULL, NULL );
427unur_distr_cvec_set_domain_rect( distr, ll, ru);
428par = unur_hitro_new(distr);
429gen = unur_init(par);
430INFO_TEST_par("... & method=hitro",gen);
431
432unur_distr_free(distr);unur_free(gen);
433distr = unur_distr_multinormal( dim, NULL, NULL );
434par = unur_hitro_new(distr);
435gen = unur_init(par);
436INFO_TEST_par("... & method=hitro",gen);
437
438unur_distr_free(distr);unur_free(gen);
439distr = unur_distr_multinormal( dim, NULL, NULL );
440par = unur_hitro_new(distr);
441unur_hitro_set_variant_random_direction(par);
442unur_hitro_set_r(par,2.);
443unur_hitro_set_thinning(par,3);
444unur_hitro_set_burnin(par,1000);
445gen = unur_init(par);
446INFO_TEST_par("... & method=hitro",gen);
447
448\#endif
449
450#---------------------------------------------------------------------
451
452[sample - HRB:
453   gen = NULL; ]
454
455\#ifdef UNUR_ENABLE_INFO
456
457METHOD("HRB");
458
459INFO_TEST("cont; hr='1./(1.+x)' & method=hrb");
460INFO_TEST("cont; hr='1./(1.+x)' & method=hrb;upperbound=1.1");
461
462\#endif
463
464#---------------------------------------------------------------------
465
466[sample - HRD:
467   gen = NULL; ]
468
469\#ifdef UNUR_ENABLE_INFO
470
471METHOD("HRD");
472
473INFO_TEST("cont; hr='1./(1.+x)' & method=hrd");
474
475\#endif
476
477#---------------------------------------------------------------------
478
479[sample - HRI:
480   gen = NULL; ]
481
482\#ifdef UNUR_ENABLE_INFO
483
484METHOD("HRI");
485
486INFO_TEST("cont; hr='3*x*x' & method=hri");
487INFO_TEST("cont; hr='3*x*x' & method=hri;p0=0.8");
488
489\#endif
490
491#---------------------------------------------------------------------
492
493[sample - ITDR:
494   gen = NULL; ]
495
496\#ifdef UNUR_ENABLE_INFO
497
498METHOD("ITDR");
499
500INFO_TEST("gamma(0.5) & method=itdr");
501INFO_TEST("gamma(0.5) & method=itdr; cp=-0.5; ct=-0.5");
502INFO_TEST("gamma(0.5) & method=itdr; cp=-0.5; ct=-0.5; xi=0.4");
503INFO_TEST("cont; pdf='exp(-x)/sqrt(x)';mode=0;domain=(0,inf) & method=itdr");
504
505\#endif
506
507#---------------------------------------------------------------------
508
509[sample - MCORR:
510   double eigenvalues[] = {1.,2.,3.,4.};
511   distr = NULL;
512   par = NULL;
513   gen = NULL; ]
514
515\#ifdef UNUR_ENABLE_INFO
516
517METHOD("MCORR");
518
519distr = unur_distr_correlation(4);
520par = unur_mcorr_new(distr);
521gen = unur_init(par);
522INFO_TEST_par("... & method=mcorr",gen);
523
524unur_distr_free(distr);unur_free(gen);
525distr = unur_distr_correlation(4);
526par = unur_mcorr_new(distr);
527unur_mcorr_set_eigenvalues( par, eigenvalues );
528gen = unur_init(par);
529INFO_TEST_par("... & method=mcorr",gen);
530
531\#endif
532
533#---------------------------------------------------------------------
534
535[sample - MIXT:
536   UNUR_GEN *comp[3];
537   double prob[3] = {1,2,3};
538   par = NULL;
539   gen = NULL; ]
540
541\#ifdef UNUR_ENABLE_INFO
542
543METHOD("MIXT");
544
545comp[0] = unur_str2gen("normal;domain=(-inf,-1)&method=pinv");
546comp[1] = unur_str2gen("uniform(-1,1)&method=cstd");
547comp[2] = unur_str2gen("exponential;domain=(1,inf)&method=pinv");
548
549par = unur_mixt_new(3,prob,comp);
550gen = unur_init(par);
551INFO_TEST_par("... & method=mixt",gen);
552
553par = unur_mixt_new(3,prob,comp);
554unur_mixt_set_useinversion(par,TRUE);
555gen = unur_init(par);
556INFO_TEST_par("... & method=mixt; useinversion=ON",gen);
557
558unur_free(comp[0]);
559unur_free(comp[1]);
560unur_free(comp[2]);
561
562comp[0] = unur_str2gen("exponential&method=pinv");
563comp[1] = unur_str2gen("poisson(5)&method=dgt");
564
565par = unur_mixt_new(2,prob,comp);
566gen = unur_init(par);
567INFO_TEST_par("... & method=mixt",gen);
568
569unur_free(comp[0]);
570unur_free(comp[1]);
571
572comp[0] = unur_str2gen("binomial(100,0.05)&method=dgt");
573comp[1] = unur_str2gen("poisson(5)&method=dgt");
574
575par = unur_mixt_new(2,prob,comp);
576gen = unur_init(par);
577INFO_TEST_par("... & method=mixt",gen);
578
579unur_free(comp[0]);
580unur_free(comp[1]);
581
582\#endif
583
584#---------------------------------------------------------------------
585
586[sample - MVSTD:
587   const int dim = 3;
588   double mean[] = {1.,2.,3.};
589   double covar[] = { 2., 2., 1.,   2., 4., 3.,   1., 3., 3. };
590   distr = NULL;
591   par = NULL;
592   gen = NULL; ]
593
594\#ifdef UNUR_ENABLE_INFO
595
596METHOD("MVSTD");
597
598distr = unur_distr_multinormal( dim, mean, covar );
599par = unur_mvstd_new(distr);
600gen = unur_init(par);
601INFO_TEST_par("... & method=mvstd",gen);
602
603unur_distr_free(distr);unur_free(gen);
604distr = unur_distr_multinormal( dim, NULL, NULL );
605par = unur_mvstd_new(distr);
606gen = unur_init(par);
607INFO_TEST_par("... & method=mvstd",gen);
608
609\#endif
610
611#---------------------------------------------------------------------
612
613[sample - MVTDR:
614   const int dim = 3;
615   double mean[] = {1.,2.,3.};
616   double covar[] = { 2., 2., 1.,   2., 4., 3.,   1., 3., 3. };
617   double ll[] = {0.,0.,0.};
618   double ru[] = {1.,UNUR_INFINITY,UNUR_INFINITY};
619   distr = NULL;
620   par = NULL;
621   gen = NULL; ]
622
623\#ifdef UNUR_ENABLE_INFO
624
625METHOD("MVTDR");
626
627distr = unur_distr_multinormal( dim, mean, covar );
628par = unur_mvtdr_new(distr);
629gen = unur_init(par);
630INFO_TEST_par("... & method=mvtdr",gen);
631
632unur_distr_free(distr);unur_free(gen);
633distr = unur_distr_multinormal( dim, NULL, NULL );
634unur_distr_cvec_set_domain_rect( distr, ll, ru);
635par = unur_mvtdr_new(distr);
636gen = unur_init(par);
637INFO_TEST_par("... & method=mvtdr",gen);
638
639unur_distr_free(distr);unur_free(gen);
640distr = unur_distr_multinormal( dim, NULL, NULL );
641par = unur_mvtdr_new(distr);
642gen = unur_init(par);
643INFO_TEST_par("... & method=mvtdr",gen);
644
645unur_distr_free(distr);unur_free(gen);
646distr = unur_distr_multinormal( dim, NULL, NULL );
647par = unur_mvtdr_new(distr);
648unur_mvtdr_set_stepsmin( par, 7 );
649unur_mvtdr_set_boundsplitting( par, 1.2 );
650unur_mvtdr_set_maxcones( par, 9999 );
651gen = unur_init(par);
652INFO_TEST_par("... & method=mvtdr",gen);
653
654unur_distr_free(distr);unur_free(gen);
655distr = unur_distr_multinormal( dim, NULL, NULL );
656par = unur_mvtdr_new(distr);
657unur_mvtdr_set_maxcones( par, 10 );
658gen = unur_init(par);
659INFO_TEST_par("... & method=mvtdr",gen);
660
661\#endif
662
663#---------------------------------------------------------------------
664
665[sample - NINV:
666   gen = NULL; ]
667
668\#ifdef UNUR_ENABLE_INFO
669
670METHOD("NINV");
671
672INFO_TEST("normal & method=ninv");
673INFO_TEST("normal & method=ninv; usenewton");
674INFO_TEST("normal & method=ninv; usebisect");
675INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf) & method=ninv");
676INFO_TEST_chg("normal & method=ninv", unur_ninv_chg_truncated(gen,0.,1.));
677INFO_TEST("normal & method=ninv; x_resolution=1e-10");
678INFO_TEST("normal & method=ninv; u_resolution=1e-10");
679INFO_TEST("normal & method=ninv; u_resolution=1e-10; x_resolution=1e-10");
680INFO_TEST("normal & method=ninv; u_resolution=1e-10; x_resolution=-1");
681INFO_TEST("normal & method=ninv; max_iter=100");
682INFO_TEST("normal & method=ninv; start=(-1,1)");
683INFO_TEST("normal & method=ninv; table=123");
684
685\#endif
686
687#---------------------------------------------------------------------
688
689[sample - NORTA:
690   const int dim = 3;
691   double rankcorr[] = { 1., 0.5, 0.1,  0.5, 1., 0.3,  0.1, 0.3, 1. };
692   double gamma_params[] = {5.};
693   double beta_params[] = {3.,5.};
694   UNUR_DISTR *marginal = NULL;
695   distr = NULL;
696   par = NULL;
697   gen = NULL; ]
698
699\#ifdef UNUR_ENABLE_INFO
700
701METHOD("NORTA");
702
703distr = unur_distr_copula(dim, rankcorr);
704par = unur_norta_new(distr);
705gen = unur_init(par);
706INFO_TEST_par("... & method=norta",gen);
707
708unur_distr_free(distr);unur_free(gen);
709distr = unur_distr_cvec_new(dim);
710unur_distr_cvec_set_rankcorr(distr,rankcorr);
711marginal = unur_distr_gamma(gamma_params,1);
712unur_distr_cvec_set_marginals(distr,marginal);
713unur_distr_free(marginal);
714par = unur_norta_new(distr);
715gen = unur_init(par);
716INFO_TEST_par("... & method=norta",gen);
717
718unur_distr_free(distr);unur_free(gen);
719distr = unur_distr_cvec_new(dim);
720unur_distr_cvec_set_rankcorr(distr,rankcorr);
721unur_distr_cvec_set_marginal_list(distr,
722	unur_distr_cauchy(NULL,0),
723	unur_distr_gamma(gamma_params,1),
724	unur_distr_beta(beta_params,2) );
725par = unur_norta_new(distr);
726gen = unur_init(par);
727INFO_TEST_par("... & method=norta",gen);
728
729\#endif
730
731#---------------------------------------------------------------------
732
733[sample - NROU:
734   gen = NULL; ]
735
736METHOD("NROU");
737
738INFO_TEST("normal & method=nrou");
739INFO_TEST("cont; pdf='exp(-x^2)' & method=nrou");
740INFO_TEST("cont; pdf='exp(-x^2)' & method=nrou; r=2");
741INFO_TEST("cont; pdf='exp(-x^2)' & method=nrou; v=1");
742INFO_TEST("cont; pdf='exp(-x^2)' & method=nrou; u=(-0.61, 0.61)");
743INFO_TEST("cont; pdf='exp(-x^2)' & method=nrou; v=1; u=(-0.61, 0.61)");
744
745#---------------------------------------------------------------------
746
747[sample - PINV:
748   gen = NULL; ]
749
750\#ifdef UNUR_ENABLE_INFO
751
752METHOD("PINV");
753
754INFO_TEST("normal & method=pinv");
755INFO_TEST("normal & method=pinv; smoothness=1");
756INFO_TEST("normal & method=pinv; smoothness=2");
757INFO_TEST("normal & method=pinv; smoothness=1; order=6");
758INFO_TEST("normal & method=pinv; usecdf");
759INFO_TEST("normal & method=pinv; order=7; u_resolution=1e-14; use_upoints=on");
760INFO_TEST("normal & method=pinv; boundary=(-10,10); searchboundary=(1,0)");
761INFO_TEST("cont; cdf='1-exp(-x)'; domain=(0,inf) & method=pinv");
762INFO_TEST("chisquare(2) & method=pinv");
763INFO_TEST("normal & method=pinv; keepcdf=on");
764
765\#endif
766
767#---------------------------------------------------------------------
768
769[sample - SROU:
770   gen = NULL; ]
771
772METHOD("SROU");
773
774INFO_TEST("normal & method=srou");
775INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=srou");
776INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=srou; usemirror");
777INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=srou; cdfatmode=0.5; usesqueeze");
778INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=srou; r=2");
779INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=srou; r=2; cdfatmode=0.5");
780
781#---------------------------------------------------------------------
782
783[sample - SSR:
784   gen = NULL; ]
785
786METHOD("SSR");
787
788INFO_TEST("normal & method=ssr");
789INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=ssr");
790INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=ssr; cdfatmode=0.5; usesqueeze");
791INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=ssr; cdfatmode=0.5");
792INFO_TEST("cont; pdf='exp(-x^2)';domain=(0,inf);pdfarea=0.887 & method=ssr");
793
794#---------------------------------------------------------------------
795
796[sample - TABL:
797   gen = NULL; ]
798
799\#ifdef UNUR_ENABLE_INFO
800
801METHOD("TABL");
802
803INFO_TEST("normal & method=tabl");
804INFO_TEST("normal & method=tabl;variant_ia=off;max_intervals=50");
805INFO_TEST("cont; pdf='exp(-x^2)';mode=0 & method=tabl");
806INFO_TEST("cont; pdf='exp(-x^2)';mode=0  & method=tabl; max_intervals=100; max_sqhratio=0.99");
807INFO_TEST_chg("normal & method=tabl", unur_tabl_chg_truncated(gen,0.,1.));
808
809\#endif
810
811#---------------------------------------------------------------------
812
813[sample - TDR:
814   gen = NULL; ]
815
816\#ifdef UNUR_ENABLE_INFO
817
818METHOD("TDR");
819
820INFO_TEST("normal & method=tdr");
821INFO_TEST("normal & method=tdr; max_intervals=10; cpoints=3");
822INFO_TEST("cont; pdf='exp(-x^2)' & method=tdr");
823INFO_TEST("cont; pdf='exp(-x^2)' & method=tdr; c=0");
824INFO_TEST("cont; pdf='exp(-x^2)' & method=tdr; c=0; variant_ia");
825INFO_TEST("cont; pdf='exp(-x^2)' & method=tdr; c=0; variant_ia; max_intervals=1000");
826INFO_TEST("cont; pdf='exp(-x^2)' & method=tdr; c=0; variant_ia; max_intervals=1000; max_sqhratio=0.90");
827INFO_TEST_chg("normal & method=tdr", unur_tdr_chg_truncated(gen,0.,1.));
828
829\#endif
830
831#---------------------------------------------------------------------
832
833[sample - UNIF:
834   gen = NULL; ]
835
836\#ifdef UNUR_ENABLE_INFO
837
838METHOD("UNIF");
839
840INFO_TEST("uniform(0,1) & method=unif");
841
842\#endif
843
844#---------------------------------------------------------------------
845
846[sample - UTDR:
847   gen = NULL; ]
848
849\#ifdef UNUR_ENABLE_INFO
850
851METHOD("UTDR");
852
853INFO_TEST("normal & method=utdr");
854INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=utdr");
855INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=utdr;pdfatmode=1.0");
856INFO_TEST("cont; pdf='exp(-x^2)';pdfarea=1.773 & method=utdr;deltafactor=1e-8");
857
858\#endif
859
860#---------------------------------------------------------------------
861
862[sample - VEMPK:
863   double data[] = {1.,1.,-1.,1.,1.,-1.,-1.,-1. };
864   distr = NULL;
865   par = NULL;
866   gen = NULL; ]
867
868\#ifdef UNUR_ENABLE_INFO
869
870METHOD("VEMPK");
871
872distr = unur_distr_cvemp_new(2);
873unur_distr_cvemp_set_data(distr, data, 4);
874par = unur_vempk_new(distr);
875gen = unur_init(par);
876INFO_TEST_par("... & method=vempk",gen);
877
878unur_distr_free(distr);unur_free(gen);
879distr = unur_distr_cvemp_new(2);
880unur_distr_cvemp_set_data(distr, data, 4);
881par = unur_vempk_new(distr);
882unur_vempk_set_smoothing(par,1.5);
883unur_vempk_set_varcor(par,TRUE);
884gen = unur_init(par);
885INFO_TEST_par("... & method=vempk",gen);
886
887\#endif
888
889#---------------------------------------------------------------------
890
891[sample - VNROU:
892   const int dim = 3;
893   double mean[] = {1.,2.,3.};
894   double covar[] = { 2., 2., 1.,   2., 4., 3.,   1., 3., 3. };
895   double ll[] = {0.,0.,0.};
896   double ru[] = {1.,UNUR_INFINITY,UNUR_INFINITY};
897   distr = NULL;
898   par = NULL;
899   gen = NULL; ]
900
901\#ifdef UNUR_ENABLE_INFO
902
903METHOD("VNROU");
904
905distr = unur_distr_multinormal( dim, mean, covar );
906par = unur_vnrou_new(distr);
907gen = unur_init(par);
908INFO_TEST_par("... & method=vnrou",gen);
909
910unur_distr_free(distr);unur_free(gen);
911distr = unur_distr_multinormal( dim, NULL, NULL );
912unur_distr_cvec_set_domain_rect( distr, ll, ru);
913par = unur_vnrou_new(distr);
914gen = unur_init(par);
915INFO_TEST_par("... & method=vnrou",gen);
916
917unur_distr_free(distr);unur_free(gen);
918distr = unur_distr_multinormal( dim, NULL, NULL );
919par = unur_vnrou_new(distr);
920unur_vnrou_set_r(par,2.);
921gen = unur_init(par);
922INFO_TEST_par("... & method=vnrou",gen);
923
924\#endif
925
926#---------------------------------------------------------------------
927
928#############################################################################
929
930# [validate]
931
932#############################################################################
933#############################################################################
934
935[verbatim]
936
937## --------------------------------------------------------------------------
938## CEXT:
939
940double exp1_sample(UNUR_GEN *gen) {
941	double U = unur_sample_urng(gen);
942	return (-log(1. - U));
943}
944
945## --------------------------------------------------------------------------
946## DEXT:
947
948int geom12_sample(UNUR_GEN *gen) {
949	double U = unur_sample_urng(gen);
950	return ((int) (log(U) / log(0.5)));
951}
952
953#############################################################################
954