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