APEMoST
|
00001 /* 00002 APEMoST - Automated Parameter Estimation and Model Selection Toolkit 00003 Copyright (C) 2009 Johannes Buchner 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 #ifndef MCMC_GETTERSETTER_H_ 00020 #define MCMC_GETTERSETTER_H_ 00021 00022 #include "mcmc.h" 00023 00024 /* getter + setter */ 00025 const char ** get_params_descr(const mcmc * m); 00026 unsigned long get_params_accepts_global(const mcmc * m); 00027 unsigned long get_params_rejects_global(const mcmc * m); 00028 unsigned long get_params_accepts_sum(const mcmc * m); 00029 unsigned long get_params_rejects_sum(const mcmc * m); 00030 gsl_vector * get_accept_rate(const mcmc * m); 00031 double get_accept_rate_for(const mcmc * m, const unsigned int i); 00032 double get_accept_rate_global(const mcmc * m); 00033 unsigned long get_params_accepts_for(const mcmc * m, const unsigned int i); 00034 unsigned long get_params_rejects_for(const mcmc * m, const unsigned int i); 00035 gsl_vector * get_params(const mcmc * m); 00036 double get_params_for(const mcmc * m, const unsigned int i); 00037 gsl_vector * get_params_min(const mcmc * m); 00038 double get_params_min_for(const mcmc * m, const unsigned int i); 00039 gsl_vector * get_params_max(const mcmc * m); 00040 double get_params_max_for(const mcmc * m, const unsigned int i); 00041 gsl_vector * get_params_best(const mcmc * m); 00042 double get_params_best_for(const mcmc * m, const unsigned int i); 00043 #ifdef N_PARAMETERS 00044 #define get_n_par(m) N_PARAMETERS 00045 #else 00046 unsigned int get_n_par(const mcmc * m); 00047 #endif 00048 gsl_rng * get_random(const mcmc * m); 00049 double get_prob(const mcmc * m); 00050 double get_prior(const mcmc * m); 00051 double get_prob_best(const mcmc * m); 00052 gsl_vector * get_steps(const mcmc * m); 00053 double get_steps_for(const mcmc * m, const unsigned int i); 00054 double get_steps_for_normalized(const mcmc * m, const unsigned int i); 00055 00056 00057 void set_prob(mcmc * m, const double new_prob); 00058 void set_prob_best(mcmc * m, const double new_prob_best); 00059 void set_minmax_for(mcmc * m, const double new_min, const double new_max, 00060 const unsigned int i); 00061 void set_model(mcmc * m, gsl_vector * new_model); 00062 void set_n_par(mcmc * m, const int new_n_par); 00063 void set_params_best(mcmc * m, const gsl_vector * new_params_best); 00064 void set_params_for(mcmc * m, const double new_param, const unsigned int i); 00065 void set_params(mcmc * m, gsl_vector * new_params); 00066 void set_params_descr_all(mcmc * m, const char ** new_par_descr); 00067 void set_params_descr_for(mcmc * m, const char * new_par_descr, 00068 const unsigned int i); 00069 void set_random(mcmc * m, gsl_rng * newrandom); 00070 void set_prob(mcmc * m, const double new_prob); 00071 void set_prior(mcmc * m, const double new_prior); 00072 void set_data(mcmc * m, const gsl_matrix * new_data); 00073 void set_steps_for(mcmc * m, const double new_steps, const unsigned int i); 00074 void set_steps_for_normalized(mcmc * m, const double new_step, 00075 const unsigned int i); 00076 void set_steps_all(mcmc * m, const double * new_steps); 00077 void set_params_accepts_for(mcmc * m, const long new_params_accept, 00078 const unsigned int i); 00079 void set_params_rejects_for(mcmc * m, const long new_params_reject, 00080 const unsigned int i); 00081 00082 void inc_params_accepts_for(mcmc * m, const unsigned int i); 00083 void inc_params_rejects_for(mcmc * m, const unsigned int i); 00084 void inc_params_accepts(mcmc * m); 00085 void inc_params_rejects(mcmc * m); 00089 void reset_accept_rejects(mcmc * m); 00090 00091 00095 double get_next_uniform_random(const mcmc * m); 00099 double get_next_uniform_plusminus_random(const mcmc * m); 00100 00104 double get_next_alog_urandom(const mcmc * m); 00105 00109 double get_next_random_jump(const mcmc * m, const double sigma); 00110 00111 #endif /* MCMC_GETTERSETTER_H_ */