Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-06 10:32:36

0001 /* file automatically generated by unuran/scripts/merge_h.pl                 */
0002 
0003 /*****************************************************************************
0004  *                                                                           *
0005  *          UNU.RAN -- Universal Non-Uniform Random number generator         *
0006  *                                                                           *
0007  *****************************************************************************
0008  *                                                                           *
0009  *   FILE: unuran.h                                                          *
0010  *                                                                           *
0011  *****************************************************************************
0012  *                                                                           *
0013  *   Copyright (c) 2000-2006 Wolfgang Hoermann and Josef Leydold             *
0014  *   Dept. for Statistics, University of Economics, Vienna, Austria          *
0015  *                                                                           *
0016  *   This program is free software; you can redistribute it and/or modify    *
0017  *   it under the terms of the GNU General Public License as published by    *
0018  *   the Free Software Foundation; either version 2 of the License, or       *
0019  *   (at your option) any later version.                                     *
0020  *                                                                           *
0021  *   This program is distributed in the hope that it will be useful,         *
0022  *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
0023  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
0024  *   GNU General Public License for more details.                            *
0025  *                                                                           *
0026  *   You should have received a copy of the GNU General Public License       *
0027  *   along with this program; if not, write to the                           *
0028  *   Free Software Foundation, Inc.,                                         *
0029  *   59 Temple Place, Suite 330, Boston, MA 02111-1307, USA                  *
0030  *                                                                           *
0031  *****************************************************************************/
0032 
0033 #undef __BEGIN_DECLS
0034 #undef __END_DECLS
0035 #ifdef __cplusplus
0036 #  define __BEGIN_DECLS extern "C" {
0037 #  define __END_DECLS }
0038 #else
0039 #  define __BEGIN_DECLS /* empty */
0040 #  define __END_DECLS /* empty */
0041 #endif
0042 
0043 __BEGIN_DECLS
0044 
0045 
0046 #ifndef UNURAN_H_IN_SEEN
0047 #define UNURAN_H_IN_SEEN
0048 
0049 #include <limits.h>
0050 
0051 
0052 #include <stdio.h>
0053 
0054 
0055 #include <stdlib.h>
0056 
0057 /*-----*/
0058 /* <1> `unur_typedefs.h' */
0059 #ifndef UNUR_TYPEDEFS_H_SEEN
0060 #define UNUR_TYPEDEFS_H_SEEN
0061 struct unur_distr;                       
0062 typedef struct unur_distr UNUR_DISTR;
0063 struct unur_par;                         
0064 typedef struct unur_par   UNUR_PAR;
0065 struct unur_gen;                         
0066 typedef struct unur_gen   UNUR_GEN;
0067 struct unur_urng;                        
0068 typedef struct unur_urng  UNUR_URNG;
0069 #define UNUR_URNG_UNURAN 1
0070 typedef double UNUR_FUNCT_CONT  (double x, const struct unur_distr *distr);
0071 typedef double UNUR_FUNCT_DISCR (int x, const struct unur_distr *distr);
0072 typedef int    UNUR_IFUNCT_DISCR(double x, const struct unur_distr *distr);
0073 typedef double UNUR_FUNCT_CVEC (const double *x, struct unur_distr *distr);
0074 typedef int    UNUR_VFUNCT_CVEC(double *result, const double *x, struct unur_distr *distr);
0075 typedef double UNUR_FUNCTD_CVEC(const double *x, int coord, struct unur_distr *distr);
0076 struct unur_slist;         
0077 typedef void UNUR_ERROR_HANDLER( const char *objid, const char *file, int line, 
0078                  const char *errortype, int unur_errno, const char *reason );
0079 #endif  
0080 /* end of `unur_typedefs.h' */
0081 /*-----*/
0082 /*-----*/
0083 /* <1> `urng.h' */
0084 #ifndef URNG_H_SEEN
0085 #define URNG_H_SEEN
0086 UNUR_URNG *unur_get_default_urng( void );
0087 UNUR_URNG *unur_set_default_urng( UNUR_URNG *urng_new );
0088 UNUR_URNG *unur_set_default_urng_aux( UNUR_URNG *urng_new );
0089 UNUR_URNG *unur_get_default_urng_aux( void );
0090 int unur_set_urng( UNUR_PAR *parameters, UNUR_URNG *urng );
0091 UNUR_URNG *unur_chg_urng( UNUR_GEN *generator, UNUR_URNG *urng );
0092 UNUR_URNG *unur_get_urng( UNUR_GEN *generator );
0093 int unur_set_urng_aux( UNUR_PAR *parameters, UNUR_URNG *urng_aux );
0094 int unur_use_urng_aux_default( UNUR_PAR *parameters );
0095 int unur_chgto_urng_aux_default( UNUR_GEN *generator );
0096 UNUR_URNG *unur_chg_urng_aux( UNUR_GEN *generator, UNUR_URNG *urng_aux );
0097 UNUR_URNG *unur_get_urng_aux( UNUR_GEN *generator );
0098 double unur_urng_sample (UNUR_URNG *urng);
0099 double unur_sample_urng (UNUR_GEN *gen);
0100 int unur_urng_sample_array (UNUR_URNG *urng, double *X, int dim);
0101 int unur_urng_reset (UNUR_URNG *urng);
0102 #ifdef UNUR_URNG_UNURAN
0103 int unur_urng_sync (UNUR_URNG *urng);
0104 int unur_urng_seed (UNUR_URNG *urng, unsigned long seed);
0105 int unur_urng_anti (UNUR_URNG *urng, int anti);
0106 int unur_urng_nextsub (UNUR_URNG *urng);
0107 int unur_urng_resetsub (UNUR_URNG *urng);
0108 int unur_gen_sync (UNUR_GEN *generator);
0109 int unur_gen_seed (UNUR_GEN *generator, unsigned long seed);
0110 int unur_gen_anti (UNUR_GEN *generator, int anti);
0111 int unur_gen_reset (UNUR_GEN *generator);
0112 int unur_gen_nextsub (UNUR_GEN *generator);
0113 int unur_gen_resetsub (UNUR_GEN *generator);
0114 UNUR_URNG *unur_urng_new( double (*sampleunif)(void *state), void *state );
0115 void unur_urng_free (UNUR_URNG *urng);
0116 int unur_urng_set_sample_array( UNUR_URNG *urng, unsigned int (*samplearray)(void *state, double *X, int dim) );
0117 int unur_urng_set_sync( UNUR_URNG *urng, void (*sync)(void *state) );
0118 int unur_urng_set_seed( UNUR_URNG *urng, void (*setseed)(void *state, unsigned long seed) );
0119 int unur_urng_set_anti( UNUR_URNG *urng, void (*setanti)(void *state, int anti) );
0120 int unur_urng_set_reset( UNUR_URNG *urng, void (*reset)(void *state) );
0121 int unur_urng_set_nextsub( UNUR_URNG *urng, void (*nextsub)(void *state) );
0122 int unur_urng_set_resetsub( UNUR_URNG *urng, void (*resetsub)(void *state) );
0123 int unur_urng_set_delete( UNUR_URNG *urng, void (*fpdelete)(void *state) );
0124 #endif   
0125 #endif  
0126 /* end of `urng.h' */
0127 /*-----*/
0128 /*-----*/
0129 /* <1> `urng_builtin.h' */
0130 #ifndef URNG_BUILTIN_H_SEEN
0131 #define URNG_BUILTIN_H_SEEN
0132 double unur_urng_MRG31k3p (void *dummy);
0133 void unur_urng_MRG31k3p_seed (void *dummy, unsigned long seed);
0134 void unur_urng_MRG31k3p_reset (void *dummy);
0135 double unur_urng_fish (void *dummy);
0136 void unur_urng_fish_seed (void *dummy, unsigned long seed);
0137 void unur_urng_fish_reset (void *dummy);
0138 double unur_urng_mstd (void *dummy);
0139 void unur_urng_mstd_seed (void *dummy, unsigned long seed);
0140 void unur_urng_mstd_reset (void *dummy);
0141 UNUR_URNG *unur_urng_builtin( void );
0142 UNUR_URNG *unur_urng_builtin_aux( void );
0143 #endif  
0144 /* end of `urng_builtin.h' */
0145 /*-----*/
0146 /*-----*/
0147 /* <1> `urng_fvoid.h' */
0148 #ifndef URNG_FVOID_H_SEEN
0149 #define URNG_FVOID_H_SEEN
0150 UNUR_URNG *unur_urng_fvoid_new( double (*urand)(void *state), void (*reset)(void *state) );
0151 #endif  
0152 /* end of `urng_fvoid.h' */
0153 /*-----*/
0154 /*-----*/
0155 /* <1> `urng_randomshift.h' */
0156 #ifndef URNG_RANDOMSHIFT_H_SEEN
0157 #define URNG_RANDOMSHIFT_H_SEEN
0158 UNUR_URNG *unur_urng_randomshift_new( UNUR_URNG *qrng, UNUR_URNG *srng, int dim );
0159 int unur_urng_randomshift_nextshift( UNUR_URNG *urng );
0160 #endif  
0161 /* end of `urng_randomshift.h' */
0162 /*-----*/
0163 /*-----*/
0164 /* <1> `distr.h' */
0165 enum {
0166   UNUR_DISTR_CONT  = 0x010u,      
0167   UNUR_DISTR_CEMP  = 0x011u,      
0168   UNUR_DISTR_CVEC  = 0x110u,      
0169   UNUR_DISTR_CVEMP = 0x111u,      
0170   UNUR_DISTR_MATR  = 0x210u,      
0171   UNUR_DISTR_DISCR = 0x020u       
0172 };
0173 void unur_distr_free( UNUR_DISTR *distribution );
0174 int unur_distr_set_name( UNUR_DISTR *distribution, const char *name );
0175 const char *unur_distr_get_name( const UNUR_DISTR *distribution );
0176 int unur_distr_get_dim( const UNUR_DISTR *distribution );
0177 unsigned int unur_distr_get_type( const UNUR_DISTR *distribution );
0178 int unur_distr_is_cont( const UNUR_DISTR *distribution );
0179 int unur_distr_is_cvec( const UNUR_DISTR *distribution );
0180 int unur_distr_is_cemp( const UNUR_DISTR *distribution );
0181 int unur_distr_is_cvemp( const UNUR_DISTR *distribution );
0182 int unur_distr_is_discr( const UNUR_DISTR *distribution );
0183 int unur_distr_is_matr( const UNUR_DISTR *distribution );
0184 int unur_distr_set_extobj( UNUR_DISTR *distribution, const void *extobj );
0185 const void *unur_distr_get_extobj( const UNUR_DISTR *distribution );
0186 UNUR_DISTR *unur_distr_clone( const UNUR_DISTR *distr );
0187 /* end of `distr.h' */
0188 /*-----*/
0189 /*-----*/
0190 /* <1> `cemp.h' */
0191 UNUR_DISTR *unur_distr_cemp_new( void );
0192 int unur_distr_cemp_set_data( UNUR_DISTR *distribution, const double *sample, int n_sample );
0193 int unur_distr_cemp_read_data( UNUR_DISTR *distribution, const char *filename );
0194 int unur_distr_cemp_get_data( const UNUR_DISTR *distribution, const double **sample );
0195 int unur_distr_cemp_set_hist( UNUR_DISTR *distribution, const double *prob, int n_prob, double xmin, double xmax );
0196 int unur_distr_cemp_set_hist_prob( UNUR_DISTR *distribution, const double *prob, int n_prob );
0197 int unur_distr_cemp_set_hist_domain( UNUR_DISTR *distribution, double xmin, double xmax );
0198 int unur_distr_cemp_set_hist_bins( UNUR_DISTR *distribution, const double *bins, int n_bins );
0199 /* end of `cemp.h' */
0200 /*-----*/
0201 /*-----*/
0202 /* <1> `cont.h' */
0203 UNUR_DISTR *unur_distr_cont_new( void );
0204 int unur_distr_cont_set_pdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *pdf );
0205 int unur_distr_cont_set_dpdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *dpdf );
0206 int unur_distr_cont_set_cdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *cdf );
0207 int unur_distr_cont_set_invcdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *invcdf );
0208 UNUR_FUNCT_CONT *unur_distr_cont_get_pdf( const UNUR_DISTR *distribution );
0209 UNUR_FUNCT_CONT *unur_distr_cont_get_dpdf( const UNUR_DISTR *distribution );
0210 UNUR_FUNCT_CONT *unur_distr_cont_get_cdf( const UNUR_DISTR *distribution );
0211 UNUR_FUNCT_CONT *unur_distr_cont_get_invcdf( const UNUR_DISTR *distribution );
0212 double unur_distr_cont_eval_pdf( double x, const UNUR_DISTR *distribution );
0213 double unur_distr_cont_eval_dpdf( double x, const UNUR_DISTR *distribution );
0214 double unur_distr_cont_eval_cdf( double x, const UNUR_DISTR *distribution );
0215 double unur_distr_cont_eval_invcdf( double u, const UNUR_DISTR *distribution );
0216 int unur_distr_cont_set_logpdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *logpdf );
0217 int unur_distr_cont_set_dlogpdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *dlogpdf );
0218 int unur_distr_cont_set_logcdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *logcdf );
0219 UNUR_FUNCT_CONT *unur_distr_cont_get_logpdf( const UNUR_DISTR *distribution );
0220 UNUR_FUNCT_CONT *unur_distr_cont_get_dlogpdf( const UNUR_DISTR *distribution );
0221 UNUR_FUNCT_CONT *unur_distr_cont_get_logcdf( const UNUR_DISTR *distribution );
0222 double unur_distr_cont_eval_logpdf( double x, const UNUR_DISTR *distribution );
0223 double unur_distr_cont_eval_dlogpdf( double x, const UNUR_DISTR *distribution );
0224 double unur_distr_cont_eval_logcdf( double x, const UNUR_DISTR *distribution );
0225 int unur_distr_cont_set_pdfstr( UNUR_DISTR *distribution, const char *pdfstr );
0226 int unur_distr_cont_set_cdfstr( UNUR_DISTR *distribution, const char *cdfstr );
0227 char *unur_distr_cont_get_pdfstr( const UNUR_DISTR *distribution );
0228 char *unur_distr_cont_get_dpdfstr( const UNUR_DISTR *distribution );
0229 char *unur_distr_cont_get_cdfstr( const UNUR_DISTR *distribution );
0230 int unur_distr_cont_set_pdfparams( UNUR_DISTR *distribution, const double *params, int n_params );
0231 int unur_distr_cont_get_pdfparams( const UNUR_DISTR *distribution, const double **params );
0232 int unur_distr_cont_set_pdfparams_vec( UNUR_DISTR *distribution, int par, const double *param_vec, int n_param_vec );
0233 int unur_distr_cont_get_pdfparams_vec( const UNUR_DISTR *distribution, int par, const double **param_vecs );
0234 int unur_distr_cont_set_logpdfstr( UNUR_DISTR *distribution, const char *logpdfstr );
0235 char *unur_distr_cont_get_logpdfstr( const UNUR_DISTR *distribution );
0236 char *unur_distr_cont_get_dlogpdfstr( const UNUR_DISTR *distribution );
0237 int unur_distr_cont_set_logcdfstr( UNUR_DISTR *distribution, const char *logcdfstr );
0238 char *unur_distr_cont_get_logcdfstr( const UNUR_DISTR *distribution );
0239 int unur_distr_cont_set_domain( UNUR_DISTR *distribution, double left, double right );
0240 int unur_distr_cont_get_domain( const UNUR_DISTR *distribution, double *left, double *right );
0241 int unur_distr_cont_get_truncated( const UNUR_DISTR *distribution, double *left, double *right );
0242 int unur_distr_cont_set_hr( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *hazard );
0243 UNUR_FUNCT_CONT *unur_distr_cont_get_hr( const UNUR_DISTR *distribution );
0244 double unur_distr_cont_eval_hr( double x, const UNUR_DISTR *distribution );
0245 int unur_distr_cont_set_hrstr( UNUR_DISTR *distribution, const char *hrstr );
0246 char *unur_distr_cont_get_hrstr( const UNUR_DISTR *distribution );
0247 int unur_distr_cont_set_mode( UNUR_DISTR *distribution, double mode );
0248 int unur_distr_cont_upd_mode( UNUR_DISTR *distribution );
0249 double unur_distr_cont_get_mode( UNUR_DISTR *distribution );
0250 int unur_distr_cont_set_center( UNUR_DISTR *distribution, double center );
0251 double unur_distr_cont_get_center( const UNUR_DISTR *distribution );
0252 int unur_distr_cont_set_pdfarea( UNUR_DISTR *distribution, double area );
0253 int unur_distr_cont_upd_pdfarea( UNUR_DISTR *distribution );
0254 double unur_distr_cont_get_pdfarea( UNUR_DISTR *distribution );
0255 /* end of `cont.h' */
0256 /*-----*/
0257 /*-----*/
0258 /* <1> `cxtrans.h' */
0259 UNUR_DISTR *unur_distr_cxtrans_new( const UNUR_DISTR *distribution );
0260 const UNUR_DISTR *unur_distr_cxtrans_get_distribution( const UNUR_DISTR *distribution );
0261 int unur_distr_cxtrans_set_alpha( UNUR_DISTR *distribution, double alpha );
0262 int unur_distr_cxtrans_set_rescale( UNUR_DISTR *distribution, double mu, double sigma );
0263 double unur_distr_cxtrans_get_alpha( const UNUR_DISTR *distribution );
0264 double unur_distr_cxtrans_get_mu( const UNUR_DISTR *distribution );
0265 double unur_distr_cxtrans_get_sigma( const UNUR_DISTR *distribution );
0266 int unur_distr_cxtrans_set_logpdfpole( UNUR_DISTR *distribution, double logpdfpole, double dlogpdfpole );
0267 #define unur_distr_cxtrans_get_pdf(distr)   unur_distr_cont_get_pdf((distr))
0268 #define unur_distr_cxtrans_get_dpdf(distr)  unur_distr_cont_get_dpdf((distr))
0269 #define unur_distr_cxtrans_get_cdf(distr)   unur_distr_cont_get_cdf((distr))
0270 #define unur_distr_cxtrans_eval_pdf(x,distr)  unur_distr_cont_eval_pdf((x),(distr))
0271 #define unur_distr_cxtrans_eval_dpdf(x,distr) unur_distr_cont_eval_dpdf((x),(distr))
0272 #define unur_distr_cxtrans_eval_cdf(x,distr)  unur_distr_cont_eval_cdf((x),(distr))
0273 int unur_distr_cxtrans_set_domain( UNUR_DISTR *distribution, double left, double right );
0274 #define unur_distr_cxtrans_get_domain(distr,left,right)  unur_distr_cont_get_domain((distr),(left),(right))
0275 #define unur_distr_cxtrans_get_truncated(distr,left,right)  unur_distr_cont_get_truncated((distr),(left),(right))
0276 #define unur_distr_cxtrans_set_mode(distr,mode)   unur_distr_cont_set_mode((distr),(mode))
0277 #define unur_distr_cxtrans_upd_mode(distr)   unur_distr_cont_upd_mode((distr))
0278 #define unur_distr_cxtrans_get_mode(distr)   unur_distr_cont_get_mode((distr))
0279 #define unur_distr_cxtrans_set_pdfarea(distr,area)   unur_distr_cont_set_pdfarea((distr),(area))
0280 #define unur_distr_cxtrans_upd_pdfarea(distr)   unur_distr_cont_upd_pdfarea((distr))
0281 #define unur_distr_cxtrans_get_pdfarea(distr)   unur_distr_cont_get_pdfarea((distr))
0282 /* end of `cxtrans.h' */
0283 /*-----*/
0284 /*-----*/
0285 /* <1> `corder.h' */
0286 UNUR_DISTR *unur_distr_corder_new( const UNUR_DISTR *distribution, int n, int k );
0287 const UNUR_DISTR *unur_distr_corder_get_distribution( const UNUR_DISTR *distribution );
0288 int unur_distr_corder_set_rank( UNUR_DISTR *distribution, int n, int k );
0289 int unur_distr_corder_get_rank( const UNUR_DISTR *distribution, int *n, int *k );
0290 #define unur_distr_corder_get_pdf(distr)   unur_distr_cont_get_pdf((distr))
0291 #define unur_distr_corder_get_dpdf(distr)  unur_distr_cont_get_dpdf((distr))
0292 #define unur_distr_corder_get_cdf(distr)   unur_distr_cont_get_cdf((distr))
0293 #define unur_distr_corder_eval_pdf(x,distr)  unur_distr_cont_eval_pdf((x),(distr))
0294 #define unur_distr_corder_eval_dpdf(x,distr) unur_distr_cont_eval_dpdf((x),(distr))
0295 #define unur_distr_corder_eval_cdf(x,distr)  unur_distr_cont_eval_cdf((x),(distr))
0296 #define unur_distr_corder_set_pdfparams(distr,params,n)  unur_distr_cont_set_pdfparams((distr),(params),(n))
0297 #define unur_distr_corder_get_pdfparams(distr,params)  unur_distr_cont_get_pdfparams((distr),(params))
0298 #define unur_distr_corder_set_domain(distr,left,right)  unur_distr_cont_set_domain((distr),(left),(right))
0299 #define unur_distr_corder_get_domain(distr,left,right)  unur_distr_cont_get_domain((distr),(left),(right))
0300 #define unur_distr_corder_get_truncated(distr,left,right)  unur_distr_cont_get_truncated((distr),(left),(right))
0301 #define unur_distr_corder_set_mode(distr,mode)   unur_distr_cont_set_mode((distr),(mode))
0302 #define unur_distr_corder_upd_mode(distr)   unur_distr_cont_upd_mode((distr))
0303 #define unur_distr_corder_get_mode(distr)   unur_distr_cont_get_mode((distr))
0304 #define unur_distr_corder_set_pdfarea(distr,area)   unur_distr_cont_set_pdfarea((distr),(area))
0305 #define unur_distr_corder_upd_pdfarea(distr)   unur_distr_cont_upd_pdfarea((distr))
0306 #define unur_distr_corder_get_pdfarea(distr)   unur_distr_cont_get_pdfarea((distr))
0307 /* end of `corder.h' */
0308 /*-----*/
0309 /*-----*/
0310 /* <1> `cvec.h' */
0311 UNUR_DISTR *unur_distr_cvec_new( int dim );
0312 int unur_distr_cvec_set_pdf( UNUR_DISTR *distribution, UNUR_FUNCT_CVEC *pdf );
0313 int unur_distr_cvec_set_dpdf( UNUR_DISTR *distribution, UNUR_VFUNCT_CVEC *dpdf );
0314 int unur_distr_cvec_set_pdpdf( UNUR_DISTR *distribution, UNUR_FUNCTD_CVEC *pdpdf );
0315 UNUR_FUNCT_CVEC *unur_distr_cvec_get_pdf( const UNUR_DISTR *distribution );
0316 UNUR_VFUNCT_CVEC *unur_distr_cvec_get_dpdf( const UNUR_DISTR *distribution );
0317 UNUR_FUNCTD_CVEC *unur_distr_cvec_get_pdpdf( const UNUR_DISTR *distribution );
0318 double unur_distr_cvec_eval_pdf( const double *x, UNUR_DISTR *distribution );
0319 int unur_distr_cvec_eval_dpdf( double *result, const double *x, UNUR_DISTR *distribution );
0320 double unur_distr_cvec_eval_pdpdf( const double *x, int coord, UNUR_DISTR *distribution );
0321 int unur_distr_cvec_set_logpdf( UNUR_DISTR *distribution, UNUR_FUNCT_CVEC *logpdf );
0322 int unur_distr_cvec_set_dlogpdf( UNUR_DISTR *distribution, UNUR_VFUNCT_CVEC *dlogpdf );
0323 int unur_distr_cvec_set_pdlogpdf( UNUR_DISTR *distribution, UNUR_FUNCTD_CVEC *pdlogpdf );
0324 UNUR_FUNCT_CVEC *unur_distr_cvec_get_logpdf( const UNUR_DISTR *distribution );
0325 UNUR_VFUNCT_CVEC *unur_distr_cvec_get_dlogpdf( const UNUR_DISTR *distribution );
0326 UNUR_FUNCTD_CVEC *unur_distr_cvec_get_pdlogpdf( const UNUR_DISTR *distribution );
0327 double unur_distr_cvec_eval_logpdf( const double *x, UNUR_DISTR *distribution );
0328 int unur_distr_cvec_eval_dlogpdf( double *result, const double *x, UNUR_DISTR *distribution );
0329 double unur_distr_cvec_eval_pdlogpdf( const double *x, int coord, UNUR_DISTR *distribution );
0330 int unur_distr_cvec_set_mean( UNUR_DISTR *distribution, const double *mean );
0331 const double *unur_distr_cvec_get_mean( const UNUR_DISTR *distribution );
0332 int unur_distr_cvec_set_covar( UNUR_DISTR *distribution, const double *covar );
0333 int unur_distr_cvec_set_covar_inv( UNUR_DISTR *distribution, const double *covar_inv );
0334 const double *unur_distr_cvec_get_covar( const UNUR_DISTR *distribution );
0335 const double *unur_distr_cvec_get_cholesky( const UNUR_DISTR *distribution );
0336 const double *unur_distr_cvec_get_covar_inv( UNUR_DISTR *distribution );
0337 int unur_distr_cvec_set_rankcorr( UNUR_DISTR *distribution, const double *rankcorr );
0338 const double *unur_distr_cvec_get_rankcorr( const UNUR_DISTR *distribution );
0339 const double *unur_distr_cvec_get_rk_cholesky( const UNUR_DISTR *distribution );
0340 int unur_distr_cvec_set_marginals( UNUR_DISTR *distribution, UNUR_DISTR *marginal );
0341 int unur_distr_cvec_set_marginal_array( UNUR_DISTR *distribution, UNUR_DISTR **marginals );
0342 int unur_distr_cvec_set_marginal_list( UNUR_DISTR *distribution, ... );
0343 const UNUR_DISTR *unur_distr_cvec_get_marginal( const UNUR_DISTR *distribution, int n );
0344 int unur_distr_cvec_set_pdfparams( UNUR_DISTR *distribution, const double *params, int n_params );
0345 int unur_distr_cvec_get_pdfparams( const UNUR_DISTR *distribution, const double **params );
0346 int unur_distr_cvec_set_pdfparams_vec( UNUR_DISTR *distribution, int par, const double *param_vec, int n_params );
0347 int unur_distr_cvec_get_pdfparams_vec( const UNUR_DISTR *distribution, int par, const double **param_vecs );
0348 int unur_distr_cvec_set_domain_rect( UNUR_DISTR *distribution, const double *lowerleft, const double *upperright );
0349 int unur_distr_cvec_is_indomain( const double *x, const UNUR_DISTR *distribution );
0350 int unur_distr_cvec_set_mode( UNUR_DISTR *distribution, const double *mode );
0351 int unur_distr_cvec_upd_mode( UNUR_DISTR *distribution );
0352 const double *unur_distr_cvec_get_mode( UNUR_DISTR *distribution );
0353 int unur_distr_cvec_set_center( UNUR_DISTR *distribution, const double *center );
0354 const double *unur_distr_cvec_get_center( UNUR_DISTR *distribution );
0355 int unur_distr_cvec_set_pdfvol( UNUR_DISTR *distribution, double volume );
0356 int unur_distr_cvec_upd_pdfvol( UNUR_DISTR *distribution );
0357 double unur_distr_cvec_get_pdfvol( UNUR_DISTR *distribution );
0358 /* end of `cvec.h' */
0359 /*-----*/
0360 /*-----*/
0361 /* <1> `condi.h' */
0362 UNUR_DISTR *unur_distr_condi_new( const UNUR_DISTR *distribution, const double *pos, const double *dir, int k );
0363 int unur_distr_condi_set_condition( struct unur_distr *distribution, const double *pos, const double *dir, int k );
0364 int unur_distr_condi_get_condition( struct unur_distr *distribution, const double **pos, const double **dir, int *k );
0365 const UNUR_DISTR *unur_distr_condi_get_distribution( const UNUR_DISTR *distribution );
0366 /* end of `condi.h' */
0367 /*-----*/
0368 /*-----*/
0369 /* <1> `cvemp.h' */
0370 UNUR_DISTR *unur_distr_cvemp_new( int dim ); 
0371 int unur_distr_cvemp_set_data( UNUR_DISTR *distribution, const double *sample, int n_sample );
0372 int unur_distr_cvemp_read_data( UNUR_DISTR *distribution, const char *filename );
0373 int unur_distr_cvemp_get_data( const UNUR_DISTR *distribution, const double **sample );
0374 /* end of `cvemp.h' */
0375 /*-----*/
0376 /*-----*/
0377 /* <1> `discr.h' */
0378 UNUR_DISTR *unur_distr_discr_new( void );
0379 int unur_distr_discr_set_pv( UNUR_DISTR *distribution, const double *pv, int n_pv );
0380 int unur_distr_discr_make_pv( UNUR_DISTR *distribution );
0381 int unur_distr_discr_get_pv( const UNUR_DISTR *distribution, const double **pv );
0382 int unur_distr_discr_set_pmf( UNUR_DISTR *distribution, UNUR_FUNCT_DISCR *pmf );
0383 int unur_distr_discr_set_cdf( UNUR_DISTR *distribution, UNUR_FUNCT_DISCR *cdf );
0384 int unur_distr_discr_set_invcdf( UNUR_DISTR *distribution, UNUR_IFUNCT_DISCR *invcdf );
0385 UNUR_FUNCT_DISCR *unur_distr_discr_get_pmf( const UNUR_DISTR *distribution );
0386 UNUR_FUNCT_DISCR *unur_distr_discr_get_cdf( const UNUR_DISTR *distribution );
0387 UNUR_IFUNCT_DISCR *unur_distr_discr_get_invcdf( const UNUR_DISTR *distribution );
0388 double unur_distr_discr_eval_pv(int k, const UNUR_DISTR *distribution );
0389 double unur_distr_discr_eval_pmf( int k, const UNUR_DISTR *distribution );
0390 double unur_distr_discr_eval_cdf( int k, const UNUR_DISTR *distribution );
0391 int unur_distr_discr_eval_invcdf( double u, const UNUR_DISTR *distribution );
0392 int unur_distr_discr_set_pmfstr( UNUR_DISTR *distribution, const char *pmfstr );
0393 int unur_distr_discr_set_cdfstr( UNUR_DISTR *distribution, const char *cdfstr );
0394 char *unur_distr_discr_get_pmfstr( const UNUR_DISTR *distribution );
0395 char *unur_distr_discr_get_cdfstr( const UNUR_DISTR *distribution );
0396 int unur_distr_discr_set_pmfparams( UNUR_DISTR *distribution, const double *params, int n_params );
0397 int unur_distr_discr_get_pmfparams( const UNUR_DISTR *distribution, const double **params );
0398 int unur_distr_discr_set_domain( UNUR_DISTR *distribution, int left, int right );
0399 int unur_distr_discr_get_domain( const UNUR_DISTR *distribution, int *left, int *right );
0400 int unur_distr_discr_set_mode( UNUR_DISTR *distribution, int mode );
0401 int unur_distr_discr_upd_mode( UNUR_DISTR *distribution );
0402 int unur_distr_discr_get_mode( UNUR_DISTR *distribution );
0403 int unur_distr_discr_set_pmfsum( UNUR_DISTR *distribution, double sum );
0404 int unur_distr_discr_upd_pmfsum( UNUR_DISTR *distribution );
0405 double unur_distr_discr_get_pmfsum( UNUR_DISTR *distribution );
0406 /* end of `discr.h' */
0407 /*-----*/
0408 /*-----*/
0409 /* <1> `matr.h' */
0410 UNUR_DISTR *unur_distr_matr_new( int n_rows, int n_cols );
0411 int unur_distr_matr_get_dim( const UNUR_DISTR *distribution, int *n_rows, int *n_cols );
0412 /* end of `matr.h' */
0413 /*-----*/
0414 /*-----*/
0415 /* <1> `auto.h' */
0416 UNUR_PAR *unur_auto_new( const UNUR_DISTR *distribution );
0417 int unur_auto_set_logss( UNUR_PAR *parameters, int logss );
0418 /* end of `auto.h' */
0419 /*-----*/
0420 /*-----*/
0421 /* <1> `dari.h' */
0422 UNUR_PAR *unur_dari_new( const UNUR_DISTR *distribution );
0423 int unur_dari_set_squeeze( UNUR_PAR *parameters, int squeeze );
0424 int unur_dari_set_tablesize( UNUR_PAR *parameters, int size );
0425 int unur_dari_set_cpfactor( UNUR_PAR *parameters, double cp_factor );
0426 int unur_dari_set_verify( UNUR_PAR *parameters, int verify );
0427 int unur_dari_chg_verify( UNUR_GEN *generator, int verify );
0428 /* end of `dari.h' */
0429 /*-----*/
0430 /*-----*/
0431 /* <1> `dau.h' */
0432 UNUR_PAR *unur_dau_new( const UNUR_DISTR *distribution );
0433 int unur_dau_set_urnfactor( UNUR_PAR *parameters, double factor );
0434 /* end of `dau.h' */
0435 /*-----*/
0436 /*-----*/
0437 /* <1> `dgt.h' */
0438 UNUR_PAR *unur_dgt_new( const UNUR_DISTR *distribution );
0439 int unur_dgt_set_guidefactor( UNUR_PAR *parameters, double factor );
0440 int unur_dgt_set_variant( UNUR_PAR *parameters, unsigned variant );
0441 int unur_dgt_eval_invcdf_recycle( const UNUR_GEN *generator, double u, double *recycle );
0442 int unur_dgt_eval_invcdf( const UNUR_GEN *generator, double u );
0443 /* end of `dgt.h' */
0444 /*-----*/
0445 /*-----*/
0446 /* <1> `dsrou.h' */
0447 UNUR_PAR *unur_dsrou_new( const UNUR_DISTR *distribution );
0448 int unur_dsrou_set_cdfatmode( UNUR_PAR *parameters, double Fmode );
0449 int unur_dsrou_set_verify( UNUR_PAR *parameters, int verify );
0450 int unur_dsrou_chg_verify( UNUR_GEN *generator, int verify );
0451 int unur_dsrou_chg_cdfatmode( UNUR_GEN *generator, double Fmode );
0452 /* end of `dsrou.h' */
0453 /*-----*/
0454 /*-----*/
0455 /* <1> `dss.h' */
0456 UNUR_PAR *unur_dss_new( const UNUR_DISTR *distribution );
0457 /* end of `dss.h' */
0458 /*-----*/
0459 /*-----*/
0460 /* <1> `arou.h' */
0461 UNUR_PAR *unur_arou_new( const UNUR_DISTR *distribution );
0462 int unur_arou_set_usedars( UNUR_PAR *parameters, int usedars );
0463 int unur_arou_set_darsfactor( UNUR_PAR *parameters, double factor );
0464 int unur_arou_set_max_sqhratio( UNUR_PAR *parameters, double max_ratio );
0465 double unur_arou_get_sqhratio( const UNUR_GEN *generator );
0466 double unur_arou_get_hatarea( const UNUR_GEN *generator );
0467 double unur_arou_get_squeezearea( const UNUR_GEN *generator );
0468 int unur_arou_set_max_segments( UNUR_PAR *parameters, int max_segs );
0469 int unur_arou_set_cpoints( UNUR_PAR *parameters, int n_stp, const double *stp );
0470 int unur_arou_set_usecenter( UNUR_PAR *parameters, int usecenter );
0471 int unur_arou_set_guidefactor( UNUR_PAR *parameters, double factor );
0472 int unur_arou_set_verify( UNUR_PAR *parameters, int verify );
0473 int unur_arou_chg_verify( UNUR_GEN *generator, int verify );
0474 int unur_arou_set_pedantic( UNUR_PAR *parameters, int pedantic );
0475 /* end of `arou.h' */
0476 /*-----*/
0477 /*-----*/
0478 /* <1> `ars.h' */
0479 UNUR_PAR *unur_ars_new( const UNUR_DISTR* distribution );
0480 int unur_ars_set_max_intervals( UNUR_PAR *parameters, int max_ivs );
0481 int unur_ars_set_cpoints( UNUR_PAR *parameters, int n_cpoints, const double *cpoints );
0482 int unur_ars_set_reinit_percentiles( UNUR_PAR *parameters, int n_percentiles, const double *percentiles );
0483 int unur_ars_chg_reinit_percentiles( UNUR_GEN *generator, int n_percentiles, const double *percentiles );
0484 int unur_ars_set_reinit_ncpoints( UNUR_PAR *parameters, int ncpoints );
0485 int unur_ars_chg_reinit_ncpoints( UNUR_GEN *generator, int ncpoints );
0486 int unur_ars_set_max_iter( UNUR_PAR *parameters, int max_iter );
0487 int unur_ars_set_verify( UNUR_PAR *parameters, int verify );
0488 int unur_ars_chg_verify( UNUR_GEN *generator, int verify );
0489 int unur_ars_set_pedantic( UNUR_PAR *parameters, int pedantic );
0490 double unur_ars_get_loghatarea( const UNUR_GEN *generator );
0491 double unur_ars_eval_invcdfhat( const UNUR_GEN *generator, double u );
0492 /* end of `ars.h' */
0493 /*-----*/
0494 /*-----*/
0495 /* <1> `hinv.h' */
0496 UNUR_PAR *unur_hinv_new( const UNUR_DISTR *distribution );
0497 int unur_hinv_set_order( UNUR_PAR *parameters, int order);
0498 int unur_hinv_set_u_resolution( UNUR_PAR *parameters, double u_resolution);
0499 int unur_hinv_set_cpoints( UNUR_PAR *parameters, const double *stp, int n_stp );
0500 int unur_hinv_set_boundary( UNUR_PAR *parameters, double left, double right );
0501 int unur_hinv_set_guidefactor( UNUR_PAR *parameters, double factor );
0502 int unur_hinv_set_max_intervals( UNUR_PAR *parameters, int max_ivs );
0503 int unur_hinv_get_n_intervals( const UNUR_GEN *generator );
0504 double unur_hinv_eval_approxinvcdf( const UNUR_GEN *generator, double u );
0505 int unur_hinv_chg_truncated( UNUR_GEN *generator, double left, double right );
0506 int unur_hinv_estimate_error( const UNUR_GEN *generator, int samplesize, double *max_error, double *MAE );
0507 /* end of `hinv.h' */
0508 /*-----*/
0509 /*-----*/
0510 /* <1> `hrb.h' */
0511 UNUR_PAR *unur_hrb_new( const UNUR_DISTR *distribution );
0512 int unur_hrb_set_upperbound( UNUR_PAR *parameters, double upperbound );
0513 int unur_hrb_set_verify( UNUR_PAR *parameters, int verify );
0514 int unur_hrb_chg_verify( UNUR_GEN *generator, int verify );
0515 /* end of `hrb.h' */
0516 /*-----*/
0517 /*-----*/
0518 /* <1> `hrd.h' */
0519 UNUR_PAR *unur_hrd_new( const UNUR_DISTR *distribution );
0520 int unur_hrd_set_verify( UNUR_PAR *parameters, int verify );
0521 int unur_hrd_chg_verify( UNUR_GEN *generator, int verify );
0522 /* end of `hrd.h' */
0523 /*-----*/
0524 /*-----*/
0525 /* <1> `hri.h' */
0526 UNUR_PAR *unur_hri_new( const UNUR_DISTR *distribution );
0527 int unur_hri_set_p0( UNUR_PAR *parameters, double p0 );
0528 int unur_hri_set_verify( UNUR_PAR *parameters, int verify );
0529 int unur_hri_chg_verify( UNUR_GEN *generator, int verify );
0530 /* end of `hri.h' */
0531 /*-----*/
0532 /*-----*/
0533 /* <1> `itdr.h' */
0534 UNUR_PAR *unur_itdr_new( const UNUR_DISTR *distribution );
0535 int unur_itdr_set_xi( UNUR_PAR *parameters, double xi );
0536 int unur_itdr_set_cp( UNUR_PAR *parameters, double cp );
0537 int unur_itdr_set_ct( UNUR_PAR *parameters, double ct );
0538 double unur_itdr_get_xi( UNUR_GEN *generator );
0539 double unur_itdr_get_cp( UNUR_GEN *generator );
0540 double unur_itdr_get_ct( UNUR_GEN *generator );
0541 double unur_itdr_get_area( UNUR_GEN *generator );
0542 int unur_itdr_set_verify( UNUR_PAR *parameters, int verify );
0543 int unur_itdr_chg_verify( UNUR_GEN *generator, int verify );
0544 /* end of `itdr.h' */
0545 /*-----*/
0546 /*-----*/
0547 /* <1> `mcorr.h' */
0548 UNUR_PAR *unur_mcorr_new( const UNUR_DISTR *distribution );
0549 int unur_mcorr_set_eigenvalues( UNUR_PAR *par, const double *eigenvalues );
0550 int unur_mcorr_chg_eigenvalues( UNUR_GEN *gen, const double *eigenvalues );
0551 /* end of `mcorr.h' */
0552 /*-----*/
0553 /*-----*/
0554 /* <1> `ninv.h' */
0555 UNUR_PAR *unur_ninv_new( const UNUR_DISTR *distribution );
0556 int unur_ninv_set_useregula( UNUR_PAR *parameters );
0557 int unur_ninv_set_usenewton( UNUR_PAR *parameters );
0558 int unur_ninv_set_usebisect( UNUR_PAR *parameters );
0559 int unur_ninv_set_max_iter( UNUR_PAR *parameters, int max_iter );
0560 int unur_ninv_chg_max_iter(UNUR_GEN *generator, int max_iter);
0561 int unur_ninv_set_x_resolution( UNUR_PAR *parameters, double x_resolution);
0562 int unur_ninv_chg_x_resolution(UNUR_GEN *generator, double x_resolution);
0563 int unur_ninv_set_u_resolution( UNUR_PAR *parameters, double u_resolution);
0564 int unur_ninv_chg_u_resolution(UNUR_GEN *generator, double u_resolution);
0565 int unur_ninv_set_start( UNUR_PAR *parameters, double left, double right);
0566 int unur_ninv_chg_start(UNUR_GEN *gen, double left, double right);
0567 int unur_ninv_set_table(UNUR_PAR *parameters, int no_of_points);
0568 int unur_ninv_chg_table(UNUR_GEN *gen, int no_of_points);
0569 int unur_ninv_chg_truncated(UNUR_GEN *gen, double left, double right);
0570 double unur_ninv_eval_approxinvcdf( const UNUR_GEN *generator, double u );
0571 /* end of `ninv.h' */
0572 /*-----*/
0573 /*-----*/
0574 /* <1> `nrou.h' */
0575 UNUR_PAR *unur_nrou_new( const UNUR_DISTR *distribution );
0576 int unur_nrou_set_u( UNUR_PAR *parameters, double umin, double umax );
0577 int unur_nrou_set_v( UNUR_PAR *parameters, double vmax );
0578 int unur_nrou_set_r( UNUR_PAR *parameters, double r );
0579 int unur_nrou_set_center( UNUR_PAR *parameters, double center );
0580 int unur_nrou_set_verify( UNUR_PAR *parameters, int verify );
0581 int unur_nrou_chg_verify( UNUR_GEN *generator, int verify );
0582 /* end of `nrou.h' */
0583 /*-----*/
0584 /*-----*/
0585 /* <1> `pinv.h' */
0586 UNUR_PAR *unur_pinv_new( const UNUR_DISTR *distribution );
0587 int unur_pinv_set_order( UNUR_PAR *parameters, int order);
0588 int unur_pinv_set_smoothness( UNUR_PAR *parameters, int smoothness);
0589 int unur_pinv_set_u_resolution( UNUR_PAR *parameters, double u_resolution);
0590 int unur_pinv_set_extra_testpoints( UNUR_PAR *parameters, int n_points);
0591 int unur_pinv_set_use_upoints( UNUR_PAR *parameters, int use_upoints );
0592 int unur_pinv_set_usepdf( UNUR_PAR *parameters );
0593 int unur_pinv_set_usecdf( UNUR_PAR *parameters );
0594 int unur_pinv_set_boundary( UNUR_PAR *parameters, double left, double right );
0595 int unur_pinv_set_searchboundary( UNUR_PAR *parameters, int left, int right );
0596 int unur_pinv_set_max_intervals( UNUR_PAR *parameters, int max_ivs );
0597 int unur_pinv_get_n_intervals( const UNUR_GEN *generator ); 
0598 int unur_pinv_set_keepcdf( UNUR_PAR *parameters, int keepcdf);
0599 double unur_pinv_eval_approxinvcdf( const UNUR_GEN *generator, double u );
0600 double unur_pinv_eval_approxcdf( const UNUR_GEN *generator, double x );
0601 int unur_pinv_estimate_error( const UNUR_GEN *generator, int samplesize, double *max_error, double *MAE );
0602 /* end of `pinv.h' */
0603 /*-----*/
0604 /*-----*/
0605 /* <1> `srou.h' */
0606 UNUR_PAR *unur_srou_new( const UNUR_DISTR *distribution );
0607 int unur_srou_set_r( UNUR_PAR *parameters, double r );
0608 int unur_srou_set_cdfatmode( UNUR_PAR *parameters, double Fmode );
0609 int unur_srou_set_pdfatmode( UNUR_PAR *parameters, double fmode );
0610 int unur_srou_set_usesqueeze( UNUR_PAR *parameters, int usesqueeze );
0611 int unur_srou_set_usemirror( UNUR_PAR *parameters, int usemirror );
0612 int unur_srou_set_verify( UNUR_PAR *parameters, int verify );
0613 int unur_srou_chg_verify( UNUR_GEN *generator, int verify );
0614 int unur_srou_chg_cdfatmode( UNUR_GEN *generator, double Fmode );
0615 int unur_srou_chg_pdfatmode( UNUR_GEN *generator, double fmode );
0616 /* end of `srou.h' */
0617 /*-----*/
0618 /*-----*/
0619 /* <1> `ssr.h' */
0620 UNUR_PAR *unur_ssr_new( const UNUR_DISTR *distribution );
0621 int unur_ssr_set_cdfatmode( UNUR_PAR *parameters, double Fmode );
0622 int unur_ssr_set_pdfatmode( UNUR_PAR *parameters, double fmode );
0623 int unur_ssr_set_usesqueeze( UNUR_PAR *parameters, int usesqueeze );
0624 int unur_ssr_set_verify( UNUR_PAR *parameters, int verify );
0625 int unur_ssr_chg_verify( UNUR_GEN *generator, int verify );
0626 int unur_ssr_chg_cdfatmode( UNUR_GEN *generator, double Fmode );
0627 int unur_ssr_chg_pdfatmode( UNUR_GEN *generator, double fmode );
0628 /* end of `ssr.h' */
0629 /*-----*/
0630 /*-----*/
0631 /* <1> `tabl.h' */
0632 UNUR_PAR *unur_tabl_new( const UNUR_DISTR* distribution );
0633 int unur_tabl_set_variant_ia( UNUR_PAR *parameters, int use_ia );
0634 int unur_tabl_set_cpoints( UNUR_PAR *parameters, int n_cpoints, const double *cpoints );
0635 int unur_tabl_set_nstp( UNUR_PAR *parameters, int n_stp );
0636 int unur_tabl_set_useear( UNUR_PAR *parameters, int useear );
0637 int unur_tabl_set_areafraction( UNUR_PAR *parameters, double fraction );
0638 int unur_tabl_set_usedars( UNUR_PAR *parameters, int usedars );
0639 int unur_tabl_set_darsfactor( UNUR_PAR *parameters, double factor );
0640 int unur_tabl_set_variant_splitmode( UNUR_PAR *parameters, unsigned splitmode );
0641 int unur_tabl_set_max_sqhratio( UNUR_PAR *parameters, double max_ratio );
0642 double unur_tabl_get_sqhratio( const UNUR_GEN *generator );
0643 double unur_tabl_get_hatarea( const UNUR_GEN *generator );
0644 double unur_tabl_get_squeezearea( const UNUR_GEN *generator );
0645 int unur_tabl_set_max_intervals( UNUR_PAR *parameters, int max_ivs );
0646 int unur_tabl_get_n_intervals( const UNUR_GEN *generator );
0647 int unur_tabl_set_slopes( UNUR_PAR *parameters, const double *slopes, int n_slopes );
0648 int unur_tabl_set_guidefactor( UNUR_PAR *parameters, double factor );
0649 int unur_tabl_set_boundary( UNUR_PAR *parameters, double left, double right );
0650 int unur_tabl_chg_truncated(UNUR_GEN *gen, double left, double right);
0651 int unur_tabl_set_verify( UNUR_PAR *parameters, int verify );
0652 int unur_tabl_chg_verify( UNUR_GEN *generator, int verify );
0653 int unur_tabl_set_pedantic( UNUR_PAR *parameters, int pedantic );
0654 /* end of `tabl.h' */
0655 /*-----*/
0656 /*-----*/
0657 /* <1> `tdr.h' */
0658 UNUR_PAR *unur_tdr_new( const UNUR_DISTR* distribution );
0659 int unur_tdr_set_c( UNUR_PAR *parameters, double c );
0660 int unur_tdr_set_variant_gw( UNUR_PAR *parameters );
0661 int unur_tdr_set_variant_ps( UNUR_PAR *parameters );
0662 int unur_tdr_set_variant_ia( UNUR_PAR *parameters );
0663 int unur_tdr_set_usedars( UNUR_PAR *parameters, int usedars );
0664 int unur_tdr_set_darsfactor( UNUR_PAR *parameters, double factor );
0665 int unur_tdr_set_cpoints( UNUR_PAR *parameters, int n_stp, const double *stp );
0666 int unur_tdr_set_reinit_percentiles( UNUR_PAR *parameters, int n_percentiles, const double *percentiles );
0667 int unur_tdr_chg_reinit_percentiles( UNUR_GEN *generator, int n_percentiles, const double *percentiles );
0668 int unur_tdr_set_reinit_ncpoints( UNUR_PAR *parameters, int ncpoints );
0669 int unur_tdr_chg_reinit_ncpoints( UNUR_GEN *generator, int ncpoints );
0670 int unur_tdr_chg_truncated(UNUR_GEN *gen, double left, double right);
0671 int unur_tdr_set_max_sqhratio( UNUR_PAR *parameters, double max_ratio );
0672 double unur_tdr_get_sqhratio( const UNUR_GEN *generator );
0673 double unur_tdr_get_hatarea( const UNUR_GEN *generator );
0674 double unur_tdr_get_squeezearea( const UNUR_GEN *generator );
0675 int unur_tdr_set_max_intervals( UNUR_PAR *parameters, int max_ivs );
0676 int unur_tdr_set_usecenter( UNUR_PAR *parameters, int usecenter );
0677 int unur_tdr_set_usemode( UNUR_PAR *parameters, int usemode );
0678 int unur_tdr_set_guidefactor( UNUR_PAR *parameters, double factor );
0679 int unur_tdr_set_verify( UNUR_PAR *parameters, int verify );
0680 int unur_tdr_chg_verify( UNUR_GEN *generator, int verify );
0681 int unur_tdr_set_pedantic( UNUR_PAR *parameters, int pedantic );
0682 double unur_tdr_eval_invcdfhat( const UNUR_GEN *generator, double u, 
0683                 double *hx, double *fx, double *sqx );
0684 int _unur_tdr_is_ARS_running( const UNUR_GEN *generator );
0685 /* end of `tdr.h' */
0686 /*-----*/
0687 /*-----*/
0688 /* <1> `utdr.h' */
0689 UNUR_PAR *unur_utdr_new( const UNUR_DISTR *distribution );
0690 int unur_utdr_set_pdfatmode( UNUR_PAR *parameters, double fmode );
0691 int unur_utdr_set_cpfactor( UNUR_PAR *parameters, double cp_factor );
0692 int unur_utdr_set_deltafactor( UNUR_PAR *parameters, double delta );
0693 int unur_utdr_set_verify( UNUR_PAR *parameters, int verify );
0694 int unur_utdr_chg_verify( UNUR_GEN *generator, int verify );
0695 int unur_utdr_chg_pdfatmode( UNUR_GEN *generator, double fmode );
0696 /* end of `utdr.h' */
0697 /*-----*/
0698 /*-----*/
0699 /* <1> `empk.h' */
0700 UNUR_PAR *unur_empk_new( const UNUR_DISTR *distribution );
0701 int unur_empk_set_kernel( UNUR_PAR *parameters, unsigned kernel);
0702 int unur_empk_set_kernelgen( UNUR_PAR *parameters, const UNUR_GEN *kernelgen, double alpha, double kernelvar );
0703 int unur_empk_set_beta( UNUR_PAR *parameters, double beta );
0704 int unur_empk_set_smoothing( UNUR_PAR *parameters, double smoothing );
0705 int unur_empk_chg_smoothing( UNUR_GEN *generator, double smoothing );
0706 int unur_empk_set_varcor( UNUR_PAR *parameters, int varcor );
0707 int unur_empk_chg_varcor( UNUR_GEN *generator, int varcor );
0708 int unur_empk_set_positive( UNUR_PAR *parameters, int positive );
0709 /* end of `empk.h' */
0710 /*-----*/
0711 /*-----*/
0712 /* <1> `empl.h' */
0713 UNUR_PAR *unur_empl_new( const UNUR_DISTR *distribution );
0714 /* end of `empl.h' */
0715 /*-----*/
0716 /*-----*/
0717 /* <1> `hist.h' */
0718 UNUR_PAR *unur_hist_new( const UNUR_DISTR *distribution );
0719 /* end of `hist.h' */
0720 /*-----*/
0721 /*-----*/
0722 /* <1> `mvtdr.h' */
0723 UNUR_PAR *unur_mvtdr_new( const UNUR_DISTR *distribution );
0724 int unur_mvtdr_set_stepsmin( UNUR_PAR *parameters, int stepsmin );
0725 int unur_mvtdr_set_boundsplitting( UNUR_PAR *parameters, double boundsplitting );
0726 int unur_mvtdr_set_maxcones( UNUR_PAR *parameters, int maxcones );
0727 int unur_mvtdr_get_ncones( const UNUR_GEN *generator );
0728 double unur_mvtdr_get_hatvol( const UNUR_GEN *generator );
0729 int unur_mvtdr_set_verify( UNUR_PAR *parameters, int verify );
0730 int unur_mvtdr_chg_verify( UNUR_GEN *generator, int verify );
0731 /* end of `mvtdr.h' */
0732 /*-----*/
0733 /*-----*/
0734 /* <1> `norta.h' */
0735 UNUR_PAR *unur_norta_new( const UNUR_DISTR *distribution );
0736 /* end of `norta.h' */
0737 /*-----*/
0738 /*-----*/
0739 /* <1> `vempk.h' */
0740 UNUR_PAR *unur_vempk_new( const UNUR_DISTR *distribution );
0741 int unur_vempk_set_smoothing( UNUR_PAR *parameters, double smoothing );
0742 int unur_vempk_chg_smoothing( UNUR_GEN *generator, double smoothing );
0743 int unur_vempk_set_varcor( UNUR_PAR *parameters, int varcor );
0744 int unur_vempk_chg_varcor( UNUR_GEN *generator, int varcor );
0745 /* end of `vempk.h' */
0746 /*-----*/
0747 /*-----*/
0748 /* <1> `vnrou.h' */
0749 UNUR_PAR *unur_vnrou_new( const UNUR_DISTR *distribution );
0750 int unur_vnrou_set_u( UNUR_PAR *parameters, double *umin, double *umax );
0751 int unur_vnrou_chg_u( UNUR_GEN *generator, double *umin, double *umax );
0752 int unur_vnrou_set_v( UNUR_PAR *parameters, double vmax );
0753 int unur_vnrou_chg_v( UNUR_GEN *generator, double vmax );
0754 int unur_vnrou_set_r( UNUR_PAR *parameters, double r );
0755 int unur_vnrou_set_verify( UNUR_PAR *parameters, int verify );
0756 int unur_vnrou_chg_verify( UNUR_GEN *generator, int verify );
0757 double unur_vnrou_get_volumehat( const UNUR_GEN *generator );
0758 /* end of `vnrou.h' */
0759 /*-----*/
0760 /*-----*/
0761 /* <1> `gibbs.h' */
0762 UNUR_PAR *unur_gibbs_new( const UNUR_DISTR *distribution );
0763 int unur_gibbs_set_variant_coordinate( UNUR_PAR *parameters );
0764 int unur_gibbs_set_variant_random_direction( UNUR_PAR *parameters );
0765 int unur_gibbs_set_c( UNUR_PAR *parameters, double c );
0766 int unur_gibbs_set_startingpoint( UNUR_PAR *parameters, const double *x0 );
0767 int unur_gibbs_set_thinning( UNUR_PAR *parameters, int thinning );
0768 int unur_gibbs_set_burnin( UNUR_PAR *parameters, int burnin );
0769 const double *unur_gibbs_get_state( UNUR_GEN *generator );
0770 int unur_gibbs_chg_state( UNUR_GEN *generator, const double *state );
0771 int unur_gibbs_reset_state( UNUR_GEN *generator );
0772 /* end of `gibbs.h' */
0773 /*-----*/
0774 /*-----*/
0775 /* <1> `hitro.h' */
0776 UNUR_PAR *unur_hitro_new( const UNUR_DISTR *distribution );
0777 int unur_hitro_set_variant_coordinate( UNUR_PAR *parameters );
0778 int unur_hitro_set_variant_random_direction( UNUR_PAR *parameters );
0779 int unur_hitro_set_use_adaptiveline( UNUR_PAR *parameters, int adaptive );
0780 int unur_hitro_set_use_boundingrectangle( UNUR_PAR *parameters, int rectangle );
0781 int unur_hitro_set_use_adaptiverectangle( UNUR_PAR *parameters, int adaptive );
0782 int unur_hitro_set_r( UNUR_PAR *parameters, double r );
0783 int unur_hitro_set_v( UNUR_PAR *parameters, double vmax );
0784 int unur_hitro_set_u( UNUR_PAR *parameters, const double *umin, const double *umax );
0785 int unur_hitro_set_adaptive_multiplier( UNUR_PAR *parameters, double factor );
0786 int unur_hitro_set_startingpoint( UNUR_PAR *parameters, const double *x0 );
0787 int unur_hitro_set_thinning( UNUR_PAR *parameters, int thinning );
0788 int unur_hitro_set_burnin( UNUR_PAR *parameters, int burnin );
0789 const double *unur_hitro_get_state( UNUR_GEN *generator );
0790 int unur_hitro_chg_state( UNUR_GEN *generator, const double *state );
0791 int unur_hitro_reset_state( UNUR_GEN *generator );
0792 /* end of `hitro.h' */
0793 /*-----*/
0794 /*-----*/
0795 /* <1> `cstd.h' */
0796 #define UNUR_STDGEN_DEFAULT   0        
0797 #define UNUR_STDGEN_INVERSION (~0u)    
0798 #define UNUR_STDGEN_FAST      (0)      
0799 UNUR_PAR *unur_cstd_new( const UNUR_DISTR *distribution );
0800 int unur_cstd_set_variant( UNUR_PAR *parameters, unsigned variant );
0801 int unur_cstd_chg_truncated( UNUR_GEN *generator, double left, double right );
0802 double unur_cstd_eval_invcdf( const UNUR_GEN *generator, double u );
0803 /* end of `cstd.h' */
0804 /*-----*/
0805 /*-----*/
0806 /* <1> `dstd.h' */
0807 UNUR_PAR *unur_dstd_new( const UNUR_DISTR *distribution );
0808 int unur_dstd_set_variant( UNUR_PAR *parameters, unsigned variant );
0809 int unur_dstd_chg_truncated( UNUR_GEN *generator, int left, int right );
0810 int unur_dstd_eval_invcdf( const UNUR_GEN *generator, double u );
0811 /* end of `dstd.h' */
0812 /*-----*/
0813 /*-----*/
0814 /* <1> `mvstd.h' */
0815 UNUR_PAR *unur_mvstd_new( const UNUR_DISTR *distribution );
0816 /* end of `mvstd.h' */
0817 /*-----*/
0818 /*-----*/
0819 /* <1> `mixt.h' */
0820 UNUR_PAR *unur_mixt_new( int n, const double *prob, UNUR_GEN **comp );
0821 int unur_mixt_set_useinversion( UNUR_PAR *parameters, int useinv );
0822 double unur_mixt_eval_invcdf( const UNUR_GEN *generator, double u );
0823 /* end of `mixt.h' */
0824 /*-----*/
0825 /*-----*/
0826 /* <1> `cext.h' */
0827 UNUR_PAR *unur_cext_new( const UNUR_DISTR *distribution );
0828 int unur_cext_set_init( UNUR_PAR *parameters, int (*init)(UNUR_GEN *gen) );
0829 int unur_cext_set_sample( UNUR_PAR *parameters, double (*sample)(UNUR_GEN *gen) );
0830 void *unur_cext_get_params( UNUR_GEN *generator, size_t size );
0831 double *unur_cext_get_distrparams( UNUR_GEN *generator );
0832 int unur_cext_get_ndistrparams( UNUR_GEN *generator );
0833 /* end of `cext.h' */
0834 /*-----*/
0835 /*-----*/
0836 /* <1> `dext.h' */
0837 UNUR_PAR *unur_dext_new( const UNUR_DISTR *distribution );
0838 int unur_dext_set_init( UNUR_PAR *parameters, int (*init)(UNUR_GEN *gen) );
0839 int unur_dext_set_sample( UNUR_PAR *parameters, int (*sample)(UNUR_GEN *gen) );
0840 void *unur_dext_get_params( UNUR_GEN *generator, size_t size );
0841 double *unur_dext_get_distrparams( UNUR_GEN *generator );
0842 int unur_dext_get_ndistrparams( UNUR_GEN *generator );
0843 /* end of `dext.h' */
0844 /*-----*/
0845 /*-----*/
0846 /* <1> `unif.h' */
0847 UNUR_PAR *unur_unif_new( const UNUR_DISTR *dummy );
0848 /* end of `unif.h' */
0849 /*-----*/
0850 /*-----*/
0851 /* <1> `unur_methods.h' */
0852 #ifndef UNUR_METHODS_H_SEEN
0853 #define UNUR_METHODS_H_SEEN
0854 #define UNUR_MASK_TYPE     0xff000000u   
0855 #define UNUR_METH_DISCR    0x01000000u
0856 #define UNUR_METH_DARI     0x01000001u
0857 #define UNUR_METH_DAU      0x01000002u
0858 #define UNUR_METH_DGT      0x01000003u
0859 #define UNUR_METH_DSROU    0x01000004u
0860 #define UNUR_METH_DSS      0x01000005u
0861 #define UNUR_METH_CONT     0x02000000u
0862 #define UNUR_METH_AROU     0x02000100u
0863 #define UNUR_METH_ARS      0x02000d00u
0864 #define UNUR_METH_HINV     0x02000200u
0865 #define UNUR_METH_HRB      0x02000300u
0866 #define UNUR_METH_HRD      0x02000400u
0867 #define UNUR_METH_HRI      0x02000500u
0868 #define UNUR_METH_ITDR     0x02000800u
0869 #define UNUR_METH_NINV     0x02000600u
0870 #define UNUR_METH_NROU     0x02000700u
0871 #define UNUR_METH_PINV     0x02001000u
0872 #define UNUR_METH_SROU     0x02000900u
0873 #define UNUR_METH_SSR      0x02000a00u
0874 #define UNUR_METH_TABL     0x02000b00u
0875 #define UNUR_METH_TDR      0x02000c00u
0876 #define UNUR_METH_UNIF     0x02000e00u
0877 #define UNUR_METH_UTDR     0x02000f00u
0878 #define UNUR_METH_CEMP     0x04000000u
0879 #define UNUR_METH_EMPK     0x04001100u
0880 #define UNUR_METH_EMPL     0x04001200u
0881 #define UNUR_METH_HIST     0x04001300u
0882 #define UNUR_METH_VEC      0x08000000u
0883 #define UNUR_METH_MVTDR    0x08010000u
0884 #define UNUR_METH_VMT      0x08020000u
0885 #define UNUR_METH_VNROU    0x08030000u
0886 #define UNUR_METH_VAROU    0x08040000u
0887 #define UNUR_METH_NORTA    0x08050000u
0888 #define UNUR_METH_GIBBS    0x08060000u
0889 #define UNUR_METH_HITRO    0x08070000u
0890 #define UNUR_METH_BALL     0x08080000u
0891 #define UNUR_METH_WALK     0x08090000u
0892 #define UNUR_METH_CVEMP    0x10000000u
0893 #define UNUR_METH_VEMPK    0x10010000u
0894 #define UNUR_METH_MAT      0x20000000u
0895 #define UNUR_METH_MCORR    0x20010000u
0896 #define UNUR_METH_CSTD     0x0200f100u   
0897 #define UNUR_METH_DSTD     0x0100f200u   
0898 #define UNUR_METH_MVSTD    0x0800f300u   
0899 #define UNUR_METH_MIXT     0x0200e100u   
0900 #define UNUR_METH_CEXT     0x0200f400u   
0901 #define UNUR_METH_DEXT     0x0100f500u   
0902 #define UNUR_METH_AUTO     0x00a00000u   
0903 #define UNUR_METH_UNKNOWN  0xff000000u
0904 #endif  
0905 /* end of `unur_methods.h' */
0906 /*-----*/
0907 /*-----*/
0908 /* <1> `deprecated_distr.h' */
0909 #ifndef UNUR_DEPRECATED_DISTR_H_SEEN
0910 #define UNUR_DEPRECATED_DISTR_H_SEEN
0911 int unur_distr_cvec_set_stdmarginals( UNUR_DISTR *distribution, UNUR_DISTR *marginal );
0912 int unur_distr_cvec_set_stdmarginal_array( UNUR_DISTR *distribution, UNUR_DISTR **marginals );
0913 int unur_distr_cvec_set_stdmarginal_list( UNUR_DISTR *distribution, ... );
0914 const UNUR_DISTR *unur_distr_cvec_get_stdmarginal( const UNUR_DISTR *distribution, int n );
0915 #endif  
0916 /* end of `deprecated_distr.h' */
0917 /*-----*/
0918 /*-----*/
0919 /* <1> `deprecated_methods.h' */
0920 #ifndef UNUR_DEPRECATED_METHODS_H_SEEN
0921 #define UNUR_DEPRECATED_METHODS_H_SEEN
0922 int unur_cstd_chg_pdfparams( UNUR_GEN *generator, double *params, int n_params );
0923 int unur_dari_reinit( UNUR_GEN *generator );
0924 int unur_dari_chg_pmfparams( UNUR_GEN *generator, double *params, int n_params );
0925 int unur_dari_chg_domain( UNUR_GEN *generator, int left, int right );
0926 int unur_dari_chg_mode( UNUR_GEN *generator, int mode );
0927 int unur_dari_upd_mode( UNUR_GEN *generator );
0928 int unur_dari_chg_pmfsum( UNUR_GEN *generator, double sum );
0929 int unur_dari_upd_pmfsum( UNUR_GEN *generator );
0930 int unur_dsrou_reinit( UNUR_GEN *generator );
0931 int unur_dsrou_chg_pmfparams( UNUR_GEN *generator, double *params, int n_params );
0932 int unur_dsrou_chg_domain( UNUR_GEN *generator, int left, int right );
0933 int unur_dsrou_chg_mode( UNUR_GEN *generator, int mode );
0934 int unur_dsrou_upd_mode( UNUR_GEN *generator );
0935 int unur_dsrou_chg_pmfsum( UNUR_GEN *generator, double sum );
0936 int unur_dsrou_upd_pmfsum( UNUR_GEN *generator );
0937 int unur_dstd_chg_pmfparams( UNUR_GEN *gen, double *params, int n_params );
0938 int unur_ninv_chg_pdfparams(UNUR_GEN *generator, double *params, int n_params);
0939 int unur_srou_reinit( UNUR_GEN *generator );
0940 int unur_srou_chg_pdfparams( UNUR_GEN *generator, double *params, int n_params );
0941 int unur_srou_chg_domain( UNUR_GEN *generator, double left, double right );
0942 int unur_srou_chg_mode( UNUR_GEN *generator, double mode );
0943 int unur_srou_upd_mode( UNUR_GEN *generator );
0944 int unur_srou_chg_pdfarea( UNUR_GEN *generator, double area );
0945 int unur_srou_upd_pdfarea( UNUR_GEN *generator );
0946 int unur_ssr_reinit( UNUR_GEN *generator );
0947 int unur_ssr_chg_pdfparams( UNUR_GEN *generator, double *params, int n_params );
0948 int unur_ssr_chg_domain( UNUR_GEN *generator, double left, double right );
0949 int unur_ssr_chg_mode( UNUR_GEN *generator, double mode );
0950 int unur_ssr_upd_mode( UNUR_GEN *generator );
0951 int unur_ssr_chg_pdfarea( UNUR_GEN *generator, double area );
0952 int unur_ssr_upd_pdfarea( UNUR_GEN *generator );
0953 int unur_tdr_reinit( UNUR_GEN *generator );
0954 int unur_tdrgw_reinit( UNUR_GEN *generator );
0955 int unur_utdr_reinit( UNUR_GEN *generator );
0956 int unur_utdr_chg_pdfparams( UNUR_GEN *generator, double *params, int n_params );
0957 int unur_utdr_chg_domain( UNUR_GEN *generator, double left, double right );
0958 int unur_utdr_chg_mode( UNUR_GEN *generator, double mode );
0959 int unur_utdr_upd_mode( UNUR_GEN *generator );
0960 int unur_utdr_chg_pdfarea( UNUR_GEN *generator, double area );
0961 int unur_utdr_upd_pdfarea( UNUR_GEN *generator );
0962 #endif  
0963 /* end of `deprecated_methods.h' */
0964 /*-----*/
0965 /*-----*/
0966 /* <1> `deprecated_tdrgw.h' */
0967 #define unur_tdrgw_new( distr ) \
0968    (unur_ars_new( distr ))
0969 #define unur_tdrgw_set_max_intervals( par,max_ivs ) \
0970    (unur_ars_set_max_intervals( (par),(max_ivs) ))
0971 #define unur_tdrgw_set_cpoints( par,n_cpoints,cpoints ) \
0972    (unur_ars_set_cpoints( (par),(n_cpoints),(cpoints) ))
0973 #define unur_tdrgw_set_reinit_percentiles( par,n_percentiles,percentiles ) \
0974    (unur_ars_set_reinit_percentiles( (par),(n_percentiles),(percentiles) ))
0975 #define unur_tdrgw_chg_reinit_percentiles( gen,n_percentiles,percentiles ) \
0976    (unur_ars_chg_reinit_percentiles( (gen),(n_percentiles),(percentiles) ))
0977 #define unur_tdrgw_set_reinit_ncpoints( par,ncpoints ) \
0978    (unur_ars_set_reinit_ncpoints( (par),(ncpoints) ))
0979 #define unur_tdrgw_chg_reinit_ncpoints( gen,ncpoints ) \
0980    (unur_ars_chg_reinit_ncpoints( (gen),(ncpoints) ))
0981 #define unur_tdrgw_set_verify( par,verify ) \
0982    (unur_ars_set_verify( (par),(verify) ))
0983 #define unur_tdrgw_chg_verify( gen,verify ) \
0984    (unur_ars_chg_verify( (gen),(verify) ))
0985 #define unur_tdrgw_set_pedantic( par,pedantic ) \
0986    (unur_ars_set_pedantic( (par),(pedantic) ))
0987 #define unur_tdrgw_get_loghatarea( gen ) \
0988    (unur_ars_get_loghatarea( gen ))
0989 #define unur_tdrgw_eval_invcdfhat( gen,u ) \
0990    (unur_ars_eval_invcdfhat( (gen),(u) ))
0991 /* end of `deprecated_tdrgw.h' */
0992 /*-----*/
0993 /*-----*/
0994 /* <1> `deprecated_vmt.h' */
0995 UNUR_PAR *unur_vmt_new( const UNUR_DISTR *distribution );
0996 /* end of `deprecated_vmt.h' */
0997 /*-----*/
0998 /*-----*/
0999 /* <1> `parser.h' */
1000 UNUR_GEN *unur_str2gen( const char *string );
1001 UNUR_DISTR *unur_str2distr( const char *string );
1002 UNUR_GEN *unur_makegen_ssu( const char *distrstr, const char *methodstr, UNUR_URNG *urng );
1003 UNUR_GEN *unur_makegen_dsu( const UNUR_DISTR *distribution, const char *methodstr, UNUR_URNG *urng );
1004 UNUR_PAR *_unur_str2par( const UNUR_DISTR *distribution, const char *method, struct unur_slist **mlist );
1005 /* end of `parser.h' */
1006 /*-----*/
1007 /*-----*/
1008 /* <1> `x_gen.h' */
1009 UNUR_GEN *unur_init( UNUR_PAR *parameters );
1010 int unur_reinit( UNUR_GEN *generator );
1011 int    unur_sample_discr(UNUR_GEN *generator);
1012 double unur_sample_cont(UNUR_GEN *generator);
1013 int    unur_sample_vec(UNUR_GEN *generator, double *vector);
1014 int    unur_sample_matr(UNUR_GEN *generator, double *matrix);
1015 double unur_quantile ( UNUR_GEN *generator, double U );
1016 void  unur_free( UNUR_GEN *generator );
1017 const char *unur_gen_info( UNUR_GEN *generator, int help );
1018 int unur_get_dimension( const UNUR_GEN *generator );
1019 const char *unur_get_genid( const UNUR_GEN *generator );
1020 unsigned int unur_get_method( const UNUR_GEN *generator );
1021 int unur_gen_is_inversion ( const UNUR_GEN *gen );
1022 UNUR_DISTR *unur_get_distr( const UNUR_GEN *generator );
1023 int unur_set_use_distr_privatecopy( UNUR_PAR *parameters, int use_privatecopy );
1024 UNUR_GEN *unur_gen_clone( const UNUR_GEN *gen );
1025 void unur_par_free( UNUR_PAR *par);
1026 /* end of `x_gen.h' */
1027 /*-----*/
1028 /*-----*/
1029 /* <1> `unur_distributions.h' */
1030 #ifndef UNURAN_DISTRIBUTIONS_H_SEEN
1031 #define UNURAN_DISTRIBUTIONS_H_SEEN
1032 /*-----*/
1033 /* <2> `unur_stddistr.h' */
1034 #ifndef UNUR_STDDISTR_H_SEEN
1035 #define UNUR_STDDISTR_H_SEEN
1036 #define UNUR_DISTR_STD         (0x00000001u)  
1037 enum {
1038   UNUR_DISTR_GENERIC          = 0x00000000u,
1039   UNUR_DISTR_CORDER           = 0x00000010u,  
1040   UNUR_DISTR_CXTRANS          = 0x00000020u,  
1041   UNUR_DISTR_CONDI            = 0x00000030u,  
1042   UNUR_DISTR_BETA             = 0x00000101u,  
1043   UNUR_DISTR_CAUCHY           = 0x00000201u,  
1044   UNUR_DISTR_CHI              = 0x00000301u,  
1045   UNUR_DISTR_CHISQUARE        = 0x00000401u,  
1046   UNUR_DISTR_EPANECHNIKOV     = 0x00000501u,  
1047   UNUR_DISTR_EXPONENTIAL      = 0x00000601u,  
1048   UNUR_DISTR_EXTREME_I        = 0x00000701u,  
1049   UNUR_DISTR_EXTREME_II       = 0x00000801u,  
1050   UNUR_DISTR_F                = 0x00000901u,  
1051   UNUR_DISTR_GAMMA            = 0x00000a01u,  
1052   UNUR_DISTR_GHYP             = 0x00002401u,  
1053   UNUR_DISTR_GIG              = 0x00000b01u,  
1054   UNUR_DISTR_GIG2             = 0x00002201u,  
1055   UNUR_DISTR_HYPERBOLIC       = 0x00002301u,  
1056   UNUR_DISTR_IG               = 0x00002101u,  
1057   UNUR_DISTR_LAPLACE          = 0x00000c01u,  
1058   UNUR_DISTR_LOGISTIC         = 0x00000d01u,  
1059   UNUR_DISTR_LOGNORMAL        = 0x00000e01u,  
1060   UNUR_DISTR_LOMAX            = 0x00000f01u,  
1061   UNUR_DISTR_MEIXNER          = 0x00002601u,  
1062   UNUR_DISTR_NORMAL           = 0x00001001u,  
1063    UNUR_DISTR_GAUSSIAN        = 0x00001001u,  
1064   UNUR_DISTR_PARETO           = 0x00001101u,  
1065   UNUR_DISTR_POWEREXPONENTIAL = 0x00001201u,  
1066   UNUR_DISTR_RAYLEIGH         = 0x00001301u,  
1067   UNUR_DISTR_SLASH            = 0x00001401u,  
1068   UNUR_DISTR_STUDENT          = 0x00001501u,  
1069   UNUR_DISTR_TRIANGULAR       = 0x00001601u,  
1070   UNUR_DISTR_UNIFORM          = 0x00002001u,  
1071    UNUR_DISTR_BOXCAR          = 0x00002001u,  
1072   UNUR_DISTR_VG               = 0x00002501u,  
1073   UNUR_DISTR_WEIBULL          = 0x00001801u,  
1074   UNUR_DISTR_BURR_I           = 0x0000b001u,  
1075   UNUR_DISTR_BURR_II          = 0x0000b101u,  
1076   UNUR_DISTR_BURR_III         = 0x0000b201u,  
1077   UNUR_DISTR_BURR_IV          = 0x0000b301u,  
1078   UNUR_DISTR_BURR_V           = 0x0000b401u,  
1079   UNUR_DISTR_BURR_VI          = 0x0000b501u,  
1080   UNUR_DISTR_BURR_VII         = 0x0000b601u,  
1081   UNUR_DISTR_BURR_VIII        = 0x0000b701u,  
1082   UNUR_DISTR_BURR_IX          = 0x0000b801u,  
1083   UNUR_DISTR_BURR_X           = 0x0000b901u,  
1084   UNUR_DISTR_BURR_XI          = 0x0000ba01u,  
1085   UNUR_DISTR_BURR_XII         = 0x0000bb01u,  
1086   UNUR_DISTR_BINOMIAL         = 0x00010001u,  
1087   UNUR_DISTR_GEOMETRIC        = 0x00020001u,  
1088   UNUR_DISTR_HYPERGEOMETRIC   = 0x00030001u,  
1089   UNUR_DISTR_LOGARITHMIC      = 0x00040001u,  
1090   UNUR_DISTR_NEGATIVEBINOMIAL = 0x00050001u,  
1091   UNUR_DISTR_POISSON          = 0x00060001u,  
1092   UNUR_DISTR_ZIPF             = 0x00070001u,  
1093   UNUR_DISTR_MCAUCHY          = 0x01000001u,  
1094   UNUR_DISTR_MNORMAL          = 0x02000001u,  
1095   UNUR_DISTR_MSTUDENT         = 0x03000001u,  
1096   UNUR_DISTR_MEXPONENTIAL     = 0x04000001u,  
1097   UNUR_DISTR_COPULA           = 0x05000001u,  
1098   UNUR_DISTR_MCORRELATION     = 0x10000001u   
1099 };
1100 #endif  
1101 /* end of `unur_stddistr.h' */
1102 /*-----*/
1103 UNUR_DISTR *unur_distr_beta(const double *params, int n_params);
1104 UNUR_DISTR *unur_distr_burr(const double *params, int n_params);
1105 UNUR_DISTR *unur_distr_cauchy(const double *params, int n_params);
1106 UNUR_DISTR *unur_distr_chi(const double *params, int n_params);
1107 UNUR_DISTR *unur_distr_chisquare(const double *params, int n_params);
1108 UNUR_DISTR *unur_distr_exponential(const double *params, int n_params);
1109 UNUR_DISTR *unur_distr_extremeI(const double *params, int n_params);
1110 UNUR_DISTR *unur_distr_extremeII(const double *params, int n_params);
1111 UNUR_DISTR *unur_distr_F(const double *params, int n_params);
1112 UNUR_DISTR *unur_distr_gamma(const double *params, int n_params);
1113 UNUR_DISTR *unur_distr_ghyp(const double *params, int n_params);
1114 UNUR_DISTR *unur_distr_gig(const double *params, int n_params);
1115 UNUR_DISTR *unur_distr_gig2(const double *params, int n_params);
1116 UNUR_DISTR *unur_distr_hyperbolic(const double *params, int n_params);
1117 UNUR_DISTR *unur_distr_ig(const double *params, int n_params);
1118 UNUR_DISTR *unur_distr_laplace(const double *params, int n_params);
1119 UNUR_DISTR *unur_distr_logistic(const double *params, int n_params);
1120 UNUR_DISTR *unur_distr_lognormal(const double *params, int n_params);
1121 UNUR_DISTR *unur_distr_lomax(const double *params, int n_params);
1122 UNUR_DISTR *unur_distr_meixner(const double *params, int n_params);
1123 UNUR_DISTR *unur_distr_normal( const double *params, int n_params );
1124 UNUR_DISTR *unur_distr_pareto( const double *params, int n_params );
1125 UNUR_DISTR *unur_distr_powerexponential(const double *params, int n_params);
1126 UNUR_DISTR *unur_distr_rayleigh(const double *params, int n_params);
1127 UNUR_DISTR *unur_distr_slash(const double *params, int n_params);
1128 UNUR_DISTR *unur_distr_student(const double *params, int n_params);
1129 UNUR_DISTR *unur_distr_triangular(const double *params, int n_params);
1130 UNUR_DISTR *unur_distr_uniform(const double *params, int n_params);
1131 UNUR_DISTR *unur_distr_vg(const double *params, int n_params);
1132 UNUR_DISTR *unur_distr_weibull(const double *params, int n_params);
1133 UNUR_DISTR *unur_distr_multinormal(int dim, const double *mean, const double *covar);
1134 UNUR_DISTR *unur_distr_multicauchy(int dim, const double *mean, const double *covar);
1135 UNUR_DISTR *unur_distr_multistudent(int dim, double nu, const double *mean, const double *covar);
1136 UNUR_DISTR *unur_distr_multiexponential(int dim, const double *sigma, const double *theta);
1137 UNUR_DISTR *unur_distr_copula(int dim, const double *rankcorr);
1138 UNUR_DISTR *unur_distr_correlation( int n );
1139 UNUR_DISTR *unur_distr_binomial(const double *params, int n_params);
1140 UNUR_DISTR *unur_distr_geometric(const double *params, int n_params);
1141 UNUR_DISTR *unur_distr_hypergeometric(const double *params, int n_params);
1142 UNUR_DISTR *unur_distr_logarithmic(const double *params, int n_params);
1143 UNUR_DISTR *unur_distr_negativebinomial(const double *params, int n_params);
1144 UNUR_DISTR *unur_distr_poisson(const double *params, int n_params);
1145 UNUR_DISTR *unur_distr_zipf(const double *params, int n_params);
1146 #endif  
1147 /* end of `unur_distributions.h' */
1148 /*-----*/
1149 /*-----*/
1150 /* <1> `stream.h' */
1151 FILE *unur_set_stream( FILE *new_stream );
1152 FILE *unur_get_stream( void );
1153 /* end of `stream.h' */
1154 /*-----*/
1155 /*-----*/
1156 /* <1> `debug.h' */
1157 #ifndef DEBUG_H_SEEN
1158 #define DEBUG_H_SEEN
1159 #define UNUR_DEBUG_OFF     (0u)           
1160 #define UNUR_DEBUG_ALL     (~0u)      
1161 #define UNUR_DEBUG_INIT    0x00000001u    
1162 #define UNUR_DEBUG_SETUP   0x00000fffu    
1163 #define UNUR_DEBUG_ADAPT   0x00fff000u    
1164 #define UNUR_DEBUG_SAMPLE  0xff000000u    
1165 int unur_set_debug( UNUR_PAR *parameters, unsigned debug );
1166 int unur_chg_debug( UNUR_GEN *generator, unsigned debug );
1167 int unur_set_default_debug( unsigned debug );
1168 #endif 
1169 /* end of `debug.h' */
1170 /*-----*/
1171 /*-----*/
1172 /* <1> `error.h' */
1173 extern int unur_errno;
1174 int unur_get_errno ( void );
1175 void unur_reset_errno ( void );
1176 const char *unur_get_strerror ( const int errnocode );
1177 UNUR_ERROR_HANDLER *unur_set_error_handler( UNUR_ERROR_HANDLER *new_handler );
1178 UNUR_ERROR_HANDLER *unur_set_error_handler_off( void );
1179 /* end of `error.h' */
1180 /*-----*/
1181 /*-----*/
1182 /* <1> `unur_errno.h' */
1183 #ifndef UNUR_ERRNO_H_SEEN
1184 #define UNUR_ERRNO_H_SEEN
1185 enum { 
1186   UNUR_SUCCESS            = 0x00,                               
1187   UNUR_FAILURE            = 0x01,     
1188   UNUR_ERR_DISTR_SET      = 0x11,     
1189   UNUR_ERR_DISTR_GET      = 0x12,     
1190   UNUR_ERR_DISTR_NPARAMS  = 0x13,     
1191   UNUR_ERR_DISTR_DOMAIN   = 0x14,     
1192   UNUR_ERR_DISTR_GEN      = 0x15,     
1193   UNUR_ERR_DISTR_REQUIRED = 0x16,     
1194   UNUR_ERR_DISTR_UNKNOWN  = 0x17,     
1195   UNUR_ERR_DISTR_INVALID  = 0x18,     
1196   UNUR_ERR_DISTR_DATA     = 0x19,     
1197   UNUR_ERR_DISTR_PROP     = 0x20,     
1198   UNUR_ERR_PAR_SET        = 0x21,     
1199   UNUR_ERR_PAR_VARIANT    = 0x22,     
1200   UNUR_ERR_PAR_INVALID    = 0x23,     
1201   UNUR_ERR_GEN            = 0x31,     
1202   UNUR_ERR_GEN_DATA       = 0x32,     
1203   UNUR_ERR_GEN_CONDITION  = 0x33,     
1204   UNUR_ERR_GEN_INVALID    = 0x34,     
1205   UNUR_ERR_GEN_SAMPLING   = 0x35,     
1206   UNUR_ERR_NO_REINIT      = 0x36,     
1207   UNUR_ERR_NO_QUANTILE    = 0x37,     
1208   UNUR_ERR_URNG           = 0x41,     
1209   UNUR_ERR_URNG_MISS      = 0x42,     
1210   UNUR_ERR_STR            = 0x51,     
1211   UNUR_ERR_STR_UNKNOWN    = 0x52,     
1212   UNUR_ERR_STR_SYNTAX     = 0x53,     
1213   UNUR_ERR_STR_INVALID    = 0x54,     
1214   UNUR_ERR_FSTR_SYNTAX    = 0x55,     
1215   UNUR_ERR_FSTR_DERIV     = 0x56,     
1216   UNUR_ERR_DOMAIN         = 0x61,     
1217   UNUR_ERR_ROUNDOFF       = 0x62,     
1218   UNUR_ERR_MALLOC         = 0x63,     
1219   UNUR_ERR_NULL           = 0x64,      
1220   UNUR_ERR_COOKIE         = 0x65,     
1221   UNUR_ERR_GENERIC        = 0x66,     
1222   UNUR_ERR_SILENT         = 0x67,     
1223   UNUR_ERR_INF            = 0x68,     
1224   UNUR_ERR_NAN            = 0x69,     
1225   UNUR_ERR_COMPILE        = 0xa0,     
1226   UNUR_ERR_SHOULD_NOT_HAPPEN = 0xf0  
1227 };
1228 #endif  
1229 /* end of `unur_errno.h' */
1230 /*-----*/
1231 /*-----*/
1232 /* <1> `umath.h' */
1233 #ifndef MATH_H_SEEN
1234 #define MATH_H_SEEN
1235 
1236 #include <math.h>
1237 
1238 #ifndef INFINITY
1239 extern const double INFINITY;
1240 #endif
1241 #define UNUR_INFINITY  (INFINITY)
1242 #ifndef TRUE
1243 #define TRUE   (1)
1244 #endif
1245 #ifndef FALSE
1246 #define FALSE  (0)
1247 #endif
1248 #endif  
1249 /* end of `umath.h' */
1250 /*-----*/
1251 /*-----*/
1252 /* <1> `slist.h' */
1253 #ifndef SLIST_H_SEEN
1254 #define SLIST_H_SEEN
1255 struct unur_slist *_unur_slist_new( void );
1256 int _unur_slist_append( struct unur_slist *slist, void *element );
1257 int _unur_slist_length( const struct unur_slist *slist );
1258 void *_unur_slist_get( const struct unur_slist *slist, int n );
1259 void *_unur_slist_replace( struct unur_slist *slist, int n, void *element );
1260 void _unur_slist_free( struct unur_slist *slist );
1261 #endif  
1262 /* end of `slist.h' */
1263 /*-----*/
1264 #ifndef TRUE
1265 #define TRUE   (1)
1266 #endif
1267 #ifndef FALSE
1268 #define FALSE  (0)
1269 #endif
1270 #endif  
1271 __END_DECLS