📄 unuran.h
字号:
/* file automatically generated by unuran/scripts/merge_h.pl *//***************************************************************************** * * * UNURAN -- Universal Non-Uniform Random number generator * * * ***************************************************************************** * * * FILE: unuran.h * * * ***************************************************************************** * * * Copyright (c) 2000 Wolfgang Hoermann and Josef Leydold * * Dept. for Statistics, University of Economics, Vienna, Austria * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA * * * *****************************************************************************/#undef __BEGIN_DECLS#undef __END_DECLS#ifdef __cplusplus# define __BEGIN_DECLS extern "C" {# define __END_DECLS }#else# define __BEGIN_DECLS /* empty */# define __END_DECLS /* empty */#endif__BEGIN_DECLS#ifndef UNURAN_H_IN_SEEN#define UNURAN_H_IN_SEEN#include <limits.h>#include <stdio.h>#include <stdlib.h>#include "unuran_config.h"/*-----*//* <1> `unur_typedefs.h' */#ifndef UNUR_TYPEDEFS_H_SEEN#define UNUR_TYPEDEFS_H_SEENstruct unur_distr; typedef struct unur_distr UNUR_DISTR;struct unur_par; typedef struct unur_par UNUR_PAR;struct unur_gen; typedef struct unur_gen UNUR_GEN;typedef double UNUR_FUNCT_CONT(double x, const struct unur_distr *distr);typedef double UNUR_FUNCT_DISCR(int x, const struct unur_distr *distr);typedef double UNUR_FUNCT_CVEC(const double *x, const struct unur_distr *distr);typedef int UNUR_VFUNCT_CVEC(double *result, const double *x, const struct unur_distr *distr);struct unur_slist; #endif /* end of `unur_typedefs.h' *//*-----*//*-----*//* <1> `unur_uniform.h' */#ifndef UNUR_UNIFORM_H_SEEN#define UNUR_UNIFORM_H_SEENdouble unur_urng_MRG31k3p (void);int unur_urng_MRG31k3p_seed (long seed);int unur_urng_MRG31k3p_reset (void);double unur_urng_fish (void);int unur_urng_fish_seed (long seed);int unur_urng_fish_reset (void);double unur_urng_mstd (void);int unur_urng_mstd_seed (long seed);int unur_urng_mstd_reset (void);#endif /* end of `unur_uniform.h' *//*-----*//*-----*//* <1> `x_urng.h' */#ifndef X_URNG_H_SEEN#define X_URNG_H_SEENUNUR_URNG *unur_get_default_urng( void );UNUR_URNG *unur_set_default_urng( UNUR_URNG *urng_new );UNUR_URNG *unur_set_default_urng_aux( UNUR_URNG *urng_new );UNUR_URNG *unur_get_default_urng_aux( void );int unur_set_urng( UNUR_PAR *parameters, UNUR_URNG *urng );UNUR_URNG *unur_chg_urng( UNUR_GEN *generator, UNUR_URNG *urng );UNUR_URNG *unur_get_urng( UNUR_GEN *generator );int unur_set_urng_aux( UNUR_PAR *parameters, UNUR_URNG *urng_aux );int unur_use_urng_aux_default( UNUR_PAR *parameters );int unur_chgto_urng_aux_default( UNUR_GEN *generator );UNUR_URNG *unur_chg_urng_aux( UNUR_GEN *generator, UNUR_URNG *urng_aux );UNUR_URNG *unur_get_urng_aux( UNUR_GEN *generator );#endif /* end of `x_urng.h' *//*-----*//*-----*//* <1> `distr.h' */enum { UNUR_DISTR_CONT = 0x010u, UNUR_DISTR_CEMP = 0x011u, UNUR_DISTR_CVEC = 0x110u, UNUR_DISTR_CVEMP = 0x111u, UNUR_DISTR_DISCR = 0x020u };void unur_distr_free( UNUR_DISTR *distribution );int unur_distr_set_name( UNUR_DISTR *distribution, const char *name );const char *unur_distr_get_name( const UNUR_DISTR *distribution );int unur_distr_get_dim( const UNUR_DISTR *distribution );unsigned int unur_distr_get_type( const UNUR_DISTR *distribution );int unur_distr_is_cont( const UNUR_DISTR *distribution );int unur_distr_is_cvec( const UNUR_DISTR *distribution );int unur_distr_is_cemp( const UNUR_DISTR *distribution );int unur_distr_is_cvemp( const UNUR_DISTR *distribution );int unur_distr_is_discr( const UNUR_DISTR *distribution );/* end of `distr.h' *//*-----*//*-----*//* <1> `cemp.h' */UNUR_DISTR *unur_distr_cemp_new( void );int unur_distr_cemp_set_data( UNUR_DISTR *distribution, const double *sample, int n_sample );int unur_distr_cemp_read_data( UNUR_DISTR *distribution, const char *filename );int unur_distr_cemp_get_data( const UNUR_DISTR *distribution, const double **sample );/* end of `cemp.h' *//*-----*//*-----*//* <1> `cont.h' */UNUR_DISTR *unur_distr_cont_new( void );int unur_distr_cont_set_pdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *pdf );int unur_distr_cont_set_dpdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *dpdf );int unur_distr_cont_set_cdf( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *cdf );UNUR_FUNCT_CONT *unur_distr_cont_get_pdf( const UNUR_DISTR *distribution );UNUR_FUNCT_CONT *unur_distr_cont_get_dpdf( const UNUR_DISTR *distribution );UNUR_FUNCT_CONT *unur_distr_cont_get_cdf( const UNUR_DISTR *distribution );double unur_distr_cont_eval_pdf( double x, const UNUR_DISTR *distribution );double unur_distr_cont_eval_dpdf( double x, const UNUR_DISTR *distribution );double unur_distr_cont_eval_cdf( double x, const UNUR_DISTR *distribution );int unur_distr_cont_set_pdfstr( UNUR_DISTR *distribution, const char *pdfstr );int unur_distr_cont_set_cdfstr( UNUR_DISTR *distribution, const char *cdfstr );char *unur_distr_cont_get_pdfstr( const UNUR_DISTR *distribution );char *unur_distr_cont_get_dpdfstr( const UNUR_DISTR *distribution );char *unur_distr_cont_get_cdfstr( const UNUR_DISTR *distribution );int unur_distr_cont_set_pdfparams( UNUR_DISTR *distribution, const double *params, int n_params );int unur_distr_cont_get_pdfparams( const UNUR_DISTR *distribution, const double **params );int unur_distr_cont_set_domain( UNUR_DISTR *distribution, double left, double right );int unur_distr_cont_get_domain( const UNUR_DISTR *distribution, double *left, double *right );int unur_distr_cont_get_truncated( const UNUR_DISTR *distribution, double *left, double *right );int unur_distr_cont_set_hr( UNUR_DISTR *distribution, UNUR_FUNCT_CONT *hazard );UNUR_FUNCT_CONT *unur_distr_cont_get_hr( const UNUR_DISTR *distribution );double unur_distr_cont_eval_hr( double x, const UNUR_DISTR *distribution );int unur_distr_cont_set_hrstr( UNUR_DISTR *distribution, const char *hrstr );char *unur_distr_cont_get_hrstr( const UNUR_DISTR *distribution );int unur_distr_cont_set_mode( UNUR_DISTR *distribution, double mode );int unur_distr_cont_upd_mode( UNUR_DISTR *distribution );double unur_distr_cont_get_mode( UNUR_DISTR *distribution );int unur_distr_cont_set_pdfarea( UNUR_DISTR *distribution, double area );int unur_distr_cont_upd_pdfarea( UNUR_DISTR *distribution );double unur_distr_cont_get_pdfarea( UNUR_DISTR *distribution );/* end of `cont.h' *//*-----*//*-----*//* <1> `corder.h' */UNUR_DISTR *unur_distr_corder_new( const UNUR_DISTR *distribution, int n, int k );const UNUR_DISTR *unur_distr_corder_get_distribution( const UNUR_DISTR *distribution );int unur_distr_corder_set_rank( UNUR_DISTR *distribution, int n, int k );int unur_distr_corder_get_rank( const UNUR_DISTR *distribution, int *n, int *k );#define unur_distr_corder_get_pdf(distr) unur_distr_cont_get_pdf((distr))#define unur_distr_corder_get_dpdf(distr) unur_distr_cont_get_dpdf((distr))#define unur_distr_corder_get_cdf(distr) unur_distr_cont_get_cdf((distr))#define unur_distr_corder_eval_pdf(x,distr) unur_distr_cont_eval_pdf((x),(distr))#define unur_distr_corder_eval_dpdf(x,distr) unur_distr_cont_eval_dpdf((x),(distr))#define unur_distr_corder_eval_cdf(x,distr) unur_distr_cont_eval_cdf((x),(distr))#define unur_distr_corder_set_pdfparams(distr,params,n) unur_distr_cont_set_pdfparams((distr),(params),(n))#define unur_distr_corder_get_pdfparams(distr,params) unur_distr_cont_get_pdfparams((distr),(params))#define unur_distr_corder_set_domain(distr,left,right) unur_distr_cont_set_domain((distr),(left),(right))#define unur_distr_corder_get_domain(distr,left,right) unur_distr_cont_get_domain((distr),(left),(right))#define unur_distr_corder_get_truncated(distr,left,right) unur_distr_cont_get_truncated((distr),(left),(right))#define unur_distr_corder_set_mode(distr,mode) unur_distr_cont_set_mode((distr),(mode))#define unur_distr_corder_upd_mode(distr) unur_distr_cont_upd_mode((distr))#define unur_distr_corder_get_mode(distr) unur_distr_cont_get_mode((distr))#define unur_distr_corder_set_pdfarea(distr,area) unur_distr_cont_set_pdfarea((distr),(area))#define unur_distr_corder_upd_pdfarea(distr) unur_distr_cont_upd_pdfarea((distr))#define unur_distr_corder_get_pdfarea(distr) unur_distr_cont_get_pdfarea((distr))/* end of `corder.h' *//*-----*//*-----*//* <1> `cvec.h' */UNUR_DISTR *unur_distr_cvec_new( int dim );int unur_distr_cvec_set_pdf( UNUR_DISTR *distribution, UNUR_FUNCT_CVEC *pdf );int unur_distr_cvec_set_dpdf( UNUR_DISTR *distribution, UNUR_VFUNCT_CVEC *dpdf );UNUR_FUNCT_CVEC *unur_distr_cvec_get_pdf( const UNUR_DISTR *distribution );UNUR_VFUNCT_CVEC *unur_distr_cvec_get_dpdf( const UNUR_DISTR *distribution );double unur_distr_cvec_eval_pdf( const double *x, const UNUR_DISTR *distribution );int unur_distr_cvec_eval_dpdf( double *result, const double *x, const UNUR_DISTR *distribution );int unur_distr_cvec_set_mean( UNUR_DISTR *distribution, const double *mean );const double *unur_distr_cvec_get_mean( const UNUR_DISTR *distribution );int unur_distr_cvec_set_covar( UNUR_DISTR *distribution, const double *covar );const double *unur_distr_cvec_get_covar( const UNUR_DISTR *distribution );int unur_distr_cvec_set_pdfparams( UNUR_DISTR *distribution, int par, const double *params, int n_params );int unur_distr_cvec_get_pdfparams( const UNUR_DISTR *distribution, int par, const double **params );int unur_distr_cvec_set_mode( UNUR_DISTR *distribution, const double *mode );const double *unur_distr_cvec_get_mode( const UNUR_DISTR *distribution );int unur_distr_cvec_set_pdfvol( UNUR_DISTR *distribution, double volume );double unur_distr_cvec_get_pdfvol( const UNUR_DISTR *distribution );/* end of `cvec.h' *//*-----*//*-----*//* <1> `cvemp.h' */UNUR_DISTR *unur_distr_cvemp_new( int dim ); int unur_distr_cvemp_set_data( UNUR_DISTR *distribution, const double *sample, int n_sample );int unur_distr_cvemp_read_data( UNUR_DISTR *distribution, const char *filename );int unur_distr_cvemp_get_data( const UNUR_DISTR *distribution, const double **sample );/* end of `cvemp.h' *//*-----*//*-----*//* <1> `discr.h' */UNUR_DISTR *unur_distr_discr_new( void );int unur_distr_discr_set_pv( UNUR_DISTR *distribution, const double *pv, int n_pv );int unur_distr_discr_make_pv( UNUR_DISTR *distribution );int unur_distr_discr_get_pv( const UNUR_DISTR *distribution, const double **pv );int unur_distr_discr_set_pmf( UNUR_DISTR *distribution, UNUR_FUNCT_DISCR *pmf );int unur_distr_discr_set_cdf( UNUR_DISTR *distribution, UNUR_FUNCT_DISCR *cdf );UNUR_FUNCT_DISCR *unur_distr_discr_get_pmf( const UNUR_DISTR *distribution );UNUR_FUNCT_DISCR *unur_distr_discr_get_cdf( const UNUR_DISTR *distribution );double unur_distr_discr_eval_pv(int k, const UNUR_DISTR *distribution );double unur_distr_discr_eval_pmf( int k, const UNUR_DISTR *distribution );double unur_distr_discr_eval_cdf( int k, const UNUR_DISTR *distribution );int unur_distr_discr_set_pmfstr( UNUR_DISTR *distribution, const char *pmfstr );int unur_distr_discr_set_cdfstr( UNUR_DISTR *distribution, const char *cdfstr );char *unur_distr_discr_get_pmfstr( const UNUR_DISTR *distribution );char *unur_distr_discr_get_cdfstr( const UNUR_DISTR *distribution );int unur_distr_discr_set_pmfparams( UNUR_DISTR *distribution, const double *params, int n_params );int unur_distr_discr_get_pmfparams( const UNUR_DISTR *distribution, const double **params );int unur_distr_discr_set_domain( UNUR_DISTR *distribution, int left, int right );int unur_distr_discr_get_domain( const UNUR_DISTR *distribution, int *left, int *right );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -