#############################################################################

[main]

[main - data:]

# method (for information only: the program scans the file name)
method: DISTR_CONT

[main - header:]

## we need UNUR_DISTR_MAXPARAMS for a test:
\#include<unuran_config.h>

/* prototypes */

\#define COMPARE_SAMPLE_SIZE  (500)
\#define VIOLATE_SAMPLE_SIZE   (20)

double pdf(double x, const UNUR_DISTR *distr);
double dpdf(double x, const UNUR_DISTR *distr);
double cdf(double x, const UNUR_DISTR *distr);
double invcdf(double x, const UNUR_DISTR *distr);
double hr(double x, const UNUR_DISTR *distr);

## work-around for missing functions
int unur_distr_cont_set_pedantic(UNUR_PAR *par, int pedantic);
int unur_distr_cont_chg_verify(UNUR_GEN *gen, int verify);

#############################################################################

[new]

#############################################################################

[set]

[set - invalid NULL ptr:
   distr = NULL; ]

unur_distr_cont_set_pdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_dpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_logpdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_dlogpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_cdf( distr, cdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_invcdf( distr, invcdf );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_hr( distr, hr );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfstr( distr, "pdf" );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_logpdfstr( distr, "pdf" );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_cdfstr( distr, "cdf" );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_hrstr( distr, "hr" );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfparams( distr, NULL, 0 );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfparams_vec( distr, 0, NULL, 0 );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_domain( distr, 0., 1. );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_mode( distr, 0. );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_center( distr, 0. );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfarea( distr, 1. );
        --> expected_setfailed --> UNUR_ERR_NULL


[set - invalid distribution type:
	distr = unur_distr_discr_new(); ]

unur_distr_cont_set_pdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_dpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_logpdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_dlogpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_cdf( distr, cdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_invcdf( distr, invcdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_hr( distr, hr );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_pdfstr( distr, "exp(-x)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_pdfstr( distr, "-x" );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_cdfstr( distr, "exp(-x)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_hrstr( distr, "exp(-x)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_pdfparams( distr, NULL, 0 );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_domain( distr, 0., 1. );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_mode( distr, 0. );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_center( distr, 0. );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_set_pdfarea( distr, 1. );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID


[set - invalid NULL ptr: 
   distr = unur_distr_cont_new(); ]

unur_distr_cont_set_pdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_dpdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_logpdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_dlogpdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_cdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_invcdf( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_hr( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfstr( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_logpdfstr( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_cdfstr( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_hrstr( distr, NULL );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_set_pdfparams( distr, NULL, 1 );
        --> expected_setfailed --> UNUR_ERR_NULL


[set - invalid parameters: 
   double pv[] = {1.,2.,3.};
   distr = unur_distr_cont_new(); ]

unur_distr_cont_set_pdfstr( distr, "" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_pdfstr( distr, "x * y * z" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_pdfstr( distr, "beta(2.)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_logpdfstr( distr, "" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_logpdfstr( distr, "x * y * z" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_logpdfstr( distr, "beta(2.)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_cdfstr( distr, "" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_cdfstr( distr, "beta(2.)" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_hrstr( distr, "" );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_pdfparams( distr, pv, -1 );
        --> expected_setfailed --> UNUR_ERR_DISTR_NPARAMS

unur_distr_cont_set_pdfparams( distr, pv, UNUR_DISTR_MAXPARAMS +1 );
        --> expected_setfailed --> UNUR_ERR_DISTR_NPARAMS

unur_distr_cont_set_pdfparams_vec( distr, -1, pv, 2 );
        --> expected_setfailed --> UNUR_ERR_DISTR_NPARAMS

unur_distr_cont_set_pdfparams_vec( distr, 100000, pv, 2 );
        --> expected_setfailed --> UNUR_ERR_DISTR_NPARAMS
	
unur_distr_cont_set_domain( distr, 0., -1. );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_pdfarea( distr, -1. );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET


[set - invalid set parameters: 
   distr = unur_distr_normal(NULL,0); ]

unur_distr_cont_set_pdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_dpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_logpdf( distr, pdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET

unur_distr_cont_set_dlogpdf( distr, dpdf );
        --> expected_setfailed --> UNUR_ERR_DISTR_SET



#############################################################################

[get]

[get - invalid NULL ptr: 
   double a, b;
   distr = NULL; ]

unur_distr_cont_get_pdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dpdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_logpdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dlogpdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_cdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_invcdf( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_hr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_pdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_logpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dlogpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_cdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_hrstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_pdfparams( distr, NULL );
        --> expected_zero --> UNUR_ERR_NULL

unur_distr_cont_get_pdfparams_vec( distr, 0, NULL );
        --> expected_zero --> UNUR_ERR_NULL

unur_distr_cont_get_domain( distr, &a, &b );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_get_mode( distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_get_pdfarea( distr );
        --> expected_INFINITY --> UNUR_ERR_NULL


[get - invalid distribution type:
   double a,b;
   const double *ar;
   distr = unur_distr_discr_new(); ]

unur_distr_cont_get_pdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_dpdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_logpdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_dlogpdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_cdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_invcdf( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_hr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_pdfstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_dpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_logpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_dlogpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_cdfstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_hrstr( distr );
        --> expected_NULL --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_pdfparams( distr, NULL );
        --> expected_zero --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_pdfparams_vec( distr, 0, &ar );
        --> expected_zero --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_domain( distr, &a, &b );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_mode( distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_get_pdfarea( distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID


[get - parameters not unknown:
   distr = unur_distr_cont_new(); ]

unur_distr_cont_get_pdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_logpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_dlogpdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_cdfstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_hrstr( distr );
        --> expected_NULL --> UNUR_ERR_NULL

unur_distr_cont_get_mode( distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_GET

unur_distr_cont_get_pdfarea( distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_GET


#############################################################################

[chg]

[chg - invalid NULL ptr: 
   distr = NULL; ]

unur_distr_cont_upd_mode( distr );
        --> expected_setfailed --> UNUR_ERR_NULL

unur_distr_cont_upd_pdfarea( distr );
        --> expected_setfailed --> UNUR_ERR_NULL


[chg - invalid distribution type:
   distr = unur_distr_discr_new(); ]

unur_distr_cont_upd_mode( distr );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_upd_pdfarea( distr );
        --> expected_setfailed --> UNUR_ERR_DISTR_INVALID


[chg - missing data:
   distr = unur_distr_cont_new(); ]

unur_distr_cont_upd_mode( distr );
        --> expected_setfailed --> UNUR_ERR_DISTR_DATA

unur_distr_cont_upd_pdfarea( distr );
        --> expected_setfailed --> UNUR_ERR_DISTR_DATA


##############################################################################

# [init]

#############################################################################

# [reinit]

#############################################################################

[sample]

[sample - invalid NULL ptr: 
   distr = NULL; ]

unur_distr_cont_eval_pdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_dpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_logpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_dlogpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_cdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_invcdf( 0.5, distr );
        --> expected_INFINITY --> UNUR_ERR_NULL

unur_distr_cont_eval_hr( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_NULL


[sample - invalid distribution object:
   distr = unur_distr_discr_new(); ]

unur_distr_cont_eval_pdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_dpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_logpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_dlogpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_cdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_invcdf( 0.5, distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID

unur_distr_cont_eval_hr( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_INVALID


[sample - missing data:
   distr = unur_distr_cont_new(); ]

unur_distr_cont_eval_pdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_dpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_logpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_dlogpdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_cdf( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_invcdf( 0.5, distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA

unur_distr_cont_eval_hr( 1., distr );
        --> expected_INFINITY --> UNUR_ERR_DISTR_DATA


[sample - check for memory leaks:
   double x[] = { 1., 2., 3. };
   distr = unur_distr_cont_new(); ]

unur_distr_cont_set_pdfparams_vec( distr, 0, x, 3 );
        --> none --> UNUR_SUCCESS

#############################################################################

[validate]

## test wrapper functions

[validate - generators:]

# AROU without DARS
par[0] = unur_arou_new(@distr@);
unur_arou_set_usedars(par,0);

# AROU, use dars
par[1] = unur_arou_new(@distr@);
unur_arou_set_cpoints( par, 8, NULL );
unur_arou_set_usedars(par,1);

# SROU (default)
#par[2] = unur_srou_new(@distr@);

# small squeeze / hat ratio
par[2] = unur_srou_new(@distr@);
#unur_arou_set_cpoints( par, 8, NULL );
#unur_arou_set_max_sqhratio(par,0.5);



[validate - distributions:]

## distributions where PDF is computed from logPDF

# beta  
fpm[0] = 3.;
fpm[1] = 4.;
distr[0] = unur_distr_beta_w_pdf_from_logpdf(fpm,2);

# cauchy
distr[1] = unur_distr_cauchy_w_pdf_from_logpdf(NULL,0);

# cauchy
fpm[0] = 3.;
fpm[1] = 4.;
distr[2] = unur_distr_cauchy_w_pdf_from_logpdf(fpm,2);

# exponential
distr[3] = unur_distr_exponential_w_pdf_from_logpdf(NULL,0);

# exponential
fpm[0] = 3.;
fpm[1] = 4.;
distr[4] = unur_distr_exponential_w_pdf_from_logpdf(fpm,2);

# gamma
fpm[0] = 1.;
distr[5] = unur_distr_gamma_w_pdf_from_logpdf(fpm,1);

# gamma
fpm[0] = 1.;
fpm[1] = 4.;
distr[6] = unur_distr_gamma_w_pdf_from_logpdf(fpm,2);

# gamma
fpm[0] = 3.;
distr[7] = unur_distr_gamma_w_pdf_from_logpdf(fpm,1);

# gamma
fpm[0] = 3.;
fpm[1] = 4.;
distr[8] = unur_distr_gamma_w_pdf_from_logpdf(fpm,2);

# normal
distr[9] = unur_distr_normal_w_pdf_from_logpdf(NULL,0);

# normal
fpm[0] = 3.;
fpm[1] = 4.;
distr[10] = unur_distr_normal_w_pdf_from_logpdf(fpm,2);

# powerexponential
fpm[0] = 5.;
distr[11] = unur_distr_powerexponential_w_pdf_from_logpdf(fpm,1);


# number of distributions: 12


[validate - test chi2:]

#  + ... pass test
#  0 ... fail to initialize generator
#  - ... fail test
#  . ... do not run test
#  # ... comment
#
# generators:
#   [0] AROU without DARS
#   [1] AROU with DARS
#   [2] SROU 
#
#gen	[0]	[1]	[2]	# distribution
#---------------------------------------------
## distributions where PDF is computed from logPDF
  <0>	 +	 +	 +	# beta (3,4)
  <1>	 +	 +	 +	# cauchy ()
  <2>	 +	 +	 +	# cauchy (3,4)
  <3>	 +	 +	 +	# exponential ()
  <4>	 +	 +	 +	# exponential (3,4)
x <5>	 +	 +	 +	# gamma (1)
x <6>	 +	 +	 +	# gamma (1,4)
x <7>	 +	 +	 +	# gamma (3)
  <8>	 +	 +	 +	# gamma (3,4)
  <9>	 +	 +	 +	# normal ()
 <10>	 +	 +	 +	# normal (3,4)
 <11>	 +	 +	 +	# powerexponential (5)


[validate - verify hat:]

#  + ... pass test
#  ~ ... fail in at most 1% of samples
#  0 ... fail to initialize generator
#  - ... fail test
#  . ... do not run test
#  # ... comment
#
# generators:
#   [0] AROU without DARS
#   [1] AROU with DARS
#   [2] SROU 
#
#gen	[0]	[1]	[2]	# distribution
#---------------------------------------------
## distributions where PDF is computed from logPDF
  <0>	 +	 +	 +	# beta (3,4)
  <1>	 +	 +	 +	# cauchy ()
  <2>	 +	 +	 +	# cauchy (3,4)
  <3>	 +	 +	 +	# exponential ()
  <4>	 +	 +	 +	# exponential (3,4)
x <5>	 +	 +	 +	# gamma (1)
x <6>	 +	 +	 +	# gamma (1,4)
x <7>	 +	 +	 +	# gamma (3)
  <8>	 +	 +	 +	# gamma (3,4)
  <9>	 +	 +	 +	# normal ()
 <10>	 +	 +	 +	# normal (3,4)
 <11>	 +	 +	 +	# powerexponential (5)

#############################################################################
#############################################################################

[verbatim]

double pdf(double x ATTRIBUTE__UNUSED, const UNUR_DISTR *distr ATTRIBUTE__UNUSED) { return 1.; }
double dpdf(double x ATTRIBUTE__UNUSED, const UNUR_DISTR *distr ATTRIBUTE__UNUSED) { return 1.; }
double cdf(double x ATTRIBUTE__UNUSED, const UNUR_DISTR *distr ATTRIBUTE__UNUSED) { return 1.; }
double invcdf(double x ATTRIBUTE__UNUSED, const UNUR_DISTR *distr ATTRIBUTE__UNUSED) { return 1.; }
double hr(double x ATTRIBUTE__UNUSED, const UNUR_DISTR *distr ATTRIBUTE__UNUSED) { return 1.; }

## work-around for missing functions
int unur_distr_cont_set_pedantic(UNUR_PAR *par ATTRIBUTE__UNUSED, int pedantic ATTRIBUTE__UNUSED) {
   return UNUR_FAILURE; 
}

int unur_distr_cont_chg_verify(UNUR_GEN *gen, int verify)
{
  if (unur_arou_chg_verify(gen,verify)==UNUR_SUCCESS) return UNUR_SUCCESS;
  if (unur_srou_chg_verify(gen,verify)==UNUR_SUCCESS) return UNUR_SUCCESS;
  return UNUR_FAILURE;
}	

#############################################################################
