--- a +++ b/src/likelihoods.h @@ -0,0 +1,88 @@ +#ifndef OUTBREAKER2_LIKELIHOODS_H +#define OUTBREAKER2_LIKELIHOODS_H + +#include <Rcpp.h> + +// Core likelihood functions + +// [[Rcpp::export(rng = false)]] +double cpp_ll_genetic(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_function = R_NilValue); + +double cpp_ll_genetic(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_function = R_NilValue); + + + + + + +// [[Rcpp::export(rng = false)]] +double cpp_ll_timing_infections(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_function = R_NilValue); + +double cpp_ll_timing_infections(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_function = R_NilValue); + + + + + + +// [[Rcpp::export(rng = false)]] +double cpp_ll_timing_sampling(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_function = R_NilValue); + +double cpp_ll_timing_sampling(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_function = R_NilValue); + + + + + + +// [[Rcpp::export(rng = false)]] +double cpp_ll_reporting(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_function = R_NilValue); + +double cpp_ll_reporting(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_function = R_NilValue); + + + + + + +// [[Rcpp::export(rng = false)]] +double cpp_ll_contact(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_function = R_NilValue); + +double cpp_ll_contact(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_function = R_NilValue); + + + + +// Aggregated functions, i.e. summing some of the above + +// [[Rcpp::export(rng = false)]] +double cpp_ll_timing(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_functions = R_NilValue); + +double cpp_ll_timing(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_functions = R_NilValue); + + + + + + +// [[Rcpp::export(rng = false)]] +double cpp_ll_all(Rcpp::List data, Rcpp::List param, SEXP i = R_NilValue, + Rcpp::RObject custom_functions = R_NilValue); + +double cpp_ll_all(Rcpp::List data, Rcpp::List param, size_t i, + Rcpp::RObject custom_functions = R_NilValue); + + +#endif