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

#include <Rcpp.h>

using namespace Rcpp;

// Pvalue_4by3
double Pvalue_4by3(int q_p, int q_m, int q_r, int q_z, int n_p, int n_m, int n_z, int target_score, double epsilon);
RcppExport SEXP _QuaternaryProd_Pvalue_4by3(SEXP q_pSEXP, SEXP q_mSEXP, SEXP q_rSEXP, SEXP q_zSEXP, SEXP n_pSEXP, SEXP n_mSEXP, SEXP n_zSEXP, SEXP target_scoreSEXP, SEXP epsilonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type q_p(q_pSEXP);
    Rcpp::traits::input_parameter< int >::type q_m(q_mSEXP);
    Rcpp::traits::input_parameter< int >::type q_r(q_rSEXP);
    Rcpp::traits::input_parameter< int >::type q_z(q_zSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    Rcpp::traits::input_parameter< int >::type n_m(n_mSEXP);
    Rcpp::traits::input_parameter< int >::type n_z(n_zSEXP);
    Rcpp::traits::input_parameter< int >::type target_score(target_scoreSEXP);
    Rcpp::traits::input_parameter< double >::type epsilon(epsilonSEXP);
    rcpp_result_gen = Rcpp::wrap(Pvalue_4by3(q_p, q_m, q_r, q_z, n_p, n_m, n_z, target_score, epsilon));
    return rcpp_result_gen;
END_RCPP
}
// SigPvalue_4by3
double SigPvalue_4by3(int q_p, int q_m, int q_r, int q_z, int n_p, int n_m, int n_z, int target_score, double epsilon, double significance_level);
RcppExport SEXP _QuaternaryProd_SigPvalue_4by3(SEXP q_pSEXP, SEXP q_mSEXP, SEXP q_rSEXP, SEXP q_zSEXP, SEXP n_pSEXP, SEXP n_mSEXP, SEXP n_zSEXP, SEXP target_scoreSEXP, SEXP epsilonSEXP, SEXP significance_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type q_p(q_pSEXP);
    Rcpp::traits::input_parameter< int >::type q_m(q_mSEXP);
    Rcpp::traits::input_parameter< int >::type q_r(q_rSEXP);
    Rcpp::traits::input_parameter< int >::type q_z(q_zSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    Rcpp::traits::input_parameter< int >::type n_m(n_mSEXP);
    Rcpp::traits::input_parameter< int >::type n_z(n_zSEXP);
    Rcpp::traits::input_parameter< int >::type target_score(target_scoreSEXP);
    Rcpp::traits::input_parameter< double >::type epsilon(epsilonSEXP);
    Rcpp::traits::input_parameter< double >::type significance_level(significance_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(SigPvalue_4by3(q_p, q_m, q_r, q_z, n_p, n_m, n_z, target_score, epsilon, significance_level));
    return rcpp_result_gen;
END_RCPP
}
// domain_4by3
IntegerVector domain_4by3(int q_p, int q_m, int q_r, int q_z, int n_p, int n_m, int n_z);
RcppExport SEXP _QuaternaryProd_domain_4by3(SEXP q_pSEXP, SEXP q_mSEXP, SEXP q_rSEXP, SEXP q_zSEXP, SEXP n_pSEXP, SEXP n_mSEXP, SEXP n_zSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type q_p(q_pSEXP);
    Rcpp::traits::input_parameter< int >::type q_m(q_mSEXP);
    Rcpp::traits::input_parameter< int >::type q_r(q_rSEXP);
    Rcpp::traits::input_parameter< int >::type q_z(q_zSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    Rcpp::traits::input_parameter< int >::type n_m(n_mSEXP);
    Rcpp::traits::input_parameter< int >::type n_z(n_zSEXP);
    rcpp_result_gen = Rcpp::wrap(domain_4by3(q_p, q_m, q_r, q_z, n_p, n_m, n_z));
    return rcpp_result_gen;
END_RCPP
}
// pmf_4by3
NumericVector pmf_4by3(int q_p, int q_m, int q_r, int q_z, int n_p, int n_m, int n_z, double epsilon);
RcppExport SEXP _QuaternaryProd_pmf_4by3(SEXP q_pSEXP, SEXP q_mSEXP, SEXP q_rSEXP, SEXP q_zSEXP, SEXP n_pSEXP, SEXP n_mSEXP, SEXP n_zSEXP, SEXP epsilonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type q_p(q_pSEXP);
    Rcpp::traits::input_parameter< int >::type q_m(q_mSEXP);
    Rcpp::traits::input_parameter< int >::type q_r(q_rSEXP);
    Rcpp::traits::input_parameter< int >::type q_z(q_zSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    Rcpp::traits::input_parameter< int >::type n_m(n_mSEXP);
    Rcpp::traits::input_parameter< int >::type n_z(n_zSEXP);
    Rcpp::traits::input_parameter< double >::type epsilon(epsilonSEXP);
    rcpp_result_gen = Rcpp::wrap(pmf_4by3(q_p, q_m, q_r, q_z, n_p, n_m, n_z, epsilon));
    return rcpp_result_gen;
END_RCPP
}
// user_probability_of_score_4by3
double user_probability_of_score_4by3(int target_score, int q_p, int q_m, int q_r, int q_z, int n_p, int n_m, int n_z, double epsilon);
RcppExport SEXP _QuaternaryProd_user_probability_of_score_4by3(SEXP target_scoreSEXP, SEXP q_pSEXP, SEXP q_mSEXP, SEXP q_rSEXP, SEXP q_zSEXP, SEXP n_pSEXP, SEXP n_mSEXP, SEXP n_zSEXP, SEXP epsilonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type target_score(target_scoreSEXP);
    Rcpp::traits::input_parameter< int >::type q_p(q_pSEXP);
    Rcpp::traits::input_parameter< int >::type q_m(q_mSEXP);
    Rcpp::traits::input_parameter< int >::type q_r(q_rSEXP);
    Rcpp::traits::input_parameter< int >::type q_z(q_zSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    Rcpp::traits::input_parameter< int >::type n_m(n_mSEXP);
    Rcpp::traits::input_parameter< int >::type n_z(n_zSEXP);
    Rcpp::traits::input_parameter< double >::type epsilon(epsilonSEXP);
    rcpp_result_gen = Rcpp::wrap(user_probability_of_score_4by3(target_score, q_p, q_m, q_r, q_z, n_p, n_m, n_z, epsilon));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_QuaternaryProd_Pvalue_4by3", (DL_FUNC) &_QuaternaryProd_Pvalue_4by3, 9},
    {"_QuaternaryProd_SigPvalue_4by3", (DL_FUNC) &_QuaternaryProd_SigPvalue_4by3, 10},
    {"_QuaternaryProd_domain_4by3", (DL_FUNC) &_QuaternaryProd_domain_4by3, 7},
    {"_QuaternaryProd_pmf_4by3", (DL_FUNC) &_QuaternaryProd_pmf_4by3, 8},
    {"_QuaternaryProd_user_probability_of_score_4by3", (DL_FUNC) &_QuaternaryProd_user_probability_of_score_4by3, 9},
    {NULL, NULL, 0}
};

RcppExport void R_init_QuaternaryProd(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
