// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include <RcppEigen.h>
#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// dldd_clogit
Eigen::RowVectorXd dldd_clogit(Eigen::Map<Eigen::MatrixXd>& designmat, Eigen::Map<Eigen::VectorXd>& RRs);
RcppExport SEXP _ameras_dldd_clogit(SEXP designmatSEXP, SEXP RRsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::MatrixXd>& >::type designmat(designmatSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type RRs(RRsSEXP);
    rcpp_result_gen = Rcpp::wrap(dldd_clogit(designmat, RRs));
    return rcpp_result_gen;
END_RCPP
}
// dldd_prophaz
Eigen::RowVectorXd dldd_prophaz(Eigen::Map<Eigen::VectorXd>& entry_t, Eigen::Map<Eigen::VectorXd>& exit_t, Eigen::Map<Eigen::VectorXi>& status_ord, Eigen::Map<Eigen::VectorXd>& RRs);
RcppExport SEXP _ameras_dldd_prophaz(SEXP entry_tSEXP, SEXP exit_tSEXP, SEXP status_ordSEXP, SEXP RRsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type entry_t(entry_tSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type exit_t(exit_tSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXi>& >::type status_ord(status_ordSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type RRs(RRsSEXP);
    rcpp_result_gen = Rcpp::wrap(dldd_prophaz(entry_t, exit_t, status_ord, RRs));
    return rcpp_result_gen;
END_RCPP
}
// compute_ERCmatrix_prophaz
Eigen::MatrixXd compute_ERCmatrix_prophaz(Eigen::Map<Eigen::VectorXd>& entry_t, Eigen::Map<Eigen::VectorXd>& exit_t, Eigen::Map<Eigen::VectorXi>& status_ord, Eigen::Map<Eigen::VectorXd>& RRs, Eigen::Map<Eigen::VectorXd>& drdd, Eigen::Map<Eigen::VectorXd>& drdd2);
RcppExport SEXP _ameras_compute_ERCmatrix_prophaz(SEXP entry_tSEXP, SEXP exit_tSEXP, SEXP status_ordSEXP, SEXP RRsSEXP, SEXP drddSEXP, SEXP drdd2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type entry_t(entry_tSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type exit_t(exit_tSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXi>& >::type status_ord(status_ordSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type RRs(RRsSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type drdd(drddSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type drdd2(drdd2SEXP);
    rcpp_result_gen = Rcpp::wrap(compute_ERCmatrix_prophaz(entry_t, exit_t, status_ord, RRs, drdd, drdd2));
    return rcpp_result_gen;
END_RCPP
}
// compute_ERCmatrix_clogit
Eigen::MatrixXd compute_ERCmatrix_clogit(Eigen::Map<Eigen::MatrixXd>& designmat, Eigen::Map<Eigen::VectorXd>& RRs, Eigen::Map<Eigen::VectorXd>& drdd, Eigen::Map<Eigen::VectorXd>& drdd2, Eigen::Map<Eigen::VectorXi>& status);
RcppExport SEXP _ameras_compute_ERCmatrix_clogit(SEXP designmatSEXP, SEXP RRsSEXP, SEXP drddSEXP, SEXP drdd2SEXP, SEXP statusSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::MatrixXd>& >::type designmat(designmatSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type RRs(RRsSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type drdd(drddSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd>& >::type drdd2(drdd2SEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXi>& >::type status(statusSEXP);
    rcpp_result_gen = Rcpp::wrap(compute_ERCmatrix_clogit(designmat, RRs, drdd, drdd2, status));
    return rcpp_result_gen;
END_RCPP
}
// loglik_prophaz_rcpp
Eigen::VectorXd loglik_prophaz_rcpp(const Eigen::VectorXd& exit_t, const Eigen::VectorXd& entry_t, const Eigen::MatrixXd& RR_entry, const Eigen::MatrixXd& RR_exit, const Eigen::VectorXi& status_ord, double loglim);
RcppExport SEXP _ameras_loglik_prophaz_rcpp(SEXP exit_tSEXP, SEXP entry_tSEXP, SEXP RR_entrySEXP, SEXP RR_exitSEXP, SEXP status_ordSEXP, SEXP loglimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Eigen::VectorXd& >::type exit_t(exit_tSEXP);
    Rcpp::traits::input_parameter< const Eigen::VectorXd& >::type entry_t(entry_tSEXP);
    Rcpp::traits::input_parameter< const Eigen::MatrixXd& >::type RR_entry(RR_entrySEXP);
    Rcpp::traits::input_parameter< const Eigen::MatrixXd& >::type RR_exit(RR_exitSEXP);
    Rcpp::traits::input_parameter< const Eigen::VectorXi& >::type status_ord(status_ordSEXP);
    Rcpp::traits::input_parameter< double >::type loglim(loglimSEXP);
    rcpp_result_gen = Rcpp::wrap(loglik_prophaz_rcpp(exit_t, entry_t, RR_entry, RR_exit, status_ord, loglim));
    return rcpp_result_gen;
END_RCPP
}
