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

#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

// mboot_did
NumericVector mboot_did(NumericVector linrep, int nboot);
RcppExport SEXP _triplediff_mboot_did(SEXP linrepSEXP, SEXP nbootSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type linrep(linrepSEXP);
    Rcpp::traits::input_parameter< int >::type nboot(nbootSEXP);
    rcpp_result_gen = Rcpp::wrap(mboot_did(linrep, nboot));
    return rcpp_result_gen;
END_RCPP
}
// checkPartitionUniqueness
void checkPartitionUniqueness(DataFrame dta, String idname, String partitionName);
RcppExport SEXP _triplediff_checkPartitionUniqueness(SEXP dtaSEXP, SEXP idnameSEXP, SEXP partitionNameSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< DataFrame >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< String >::type idname(idnameSEXP);
    Rcpp::traits::input_parameter< String >::type partitionName(partitionNameSEXP);
    checkPartitionUniqueness(dta, idname, partitionName);
    return R_NilValue;
END_RCPP
}
// checkTreatmentUniqueness
void checkTreatmentUniqueness(DataFrame dta, String idname, String treatName);
RcppExport SEXP _triplediff_checkTreatmentUniqueness(SEXP dtaSEXP, SEXP idnameSEXP, SEXP treatNameSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< DataFrame >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< String >::type idname(idnameSEXP);
    Rcpp::traits::input_parameter< String >::type treatName(treatNameSEXP);
    checkTreatmentUniqueness(dta, idname, treatName);
    return R_NilValue;
END_RCPP
}
// checkWeightsUniqueness
void checkWeightsUniqueness(DataFrame dta, String idname);
RcppExport SEXP _triplediff_checkWeightsUniqueness(SEXP dtaSEXP, SEXP idnameSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< DataFrame >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< String >::type idname(idnameSEXP);
    checkWeightsUniqueness(dta, idname);
    return R_NilValue;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_triplediff_mboot_did", (DL_FUNC) &_triplediff_mboot_did, 2},
    {"_triplediff_checkPartitionUniqueness", (DL_FUNC) &_triplediff_checkPartitionUniqueness, 3},
    {"_triplediff_checkTreatmentUniqueness", (DL_FUNC) &_triplediff_checkTreatmentUniqueness, 3},
    {"_triplediff_checkWeightsUniqueness", (DL_FUNC) &_triplediff_checkWeightsUniqueness, 2},
    {NULL, NULL, 0}
};

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