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

#include <RcppThread.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

// rcpp_KaKs
Rcpp::List rcpp_KaKs(Rcpp::StringVector cdsstr, const std::string sgc, const std::string method, bool verbose);
RcppExport SEXP _MSA2dist_rcpp_KaKs(SEXP cdsstrSEXP, SEXP sgcSEXP, SEXP methodSEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type cdsstr(cdsstrSEXP);
    Rcpp::traits::input_parameter< const std::string >::type sgc(sgcSEXP);
    Rcpp::traits::input_parameter< const std::string >::type method(methodSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_KaKs(cdsstr, sgc, method, verbose));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_distSTRING
Rcpp::List rcpp_distSTRING(Rcpp::StringVector dnavector, Rcpp::NumericMatrix scoreMatrix, int ncores, int symmetric);
RcppExport SEXP _MSA2dist_rcpp_distSTRING(SEXP dnavectorSEXP, SEXP scoreMatrixSEXP, SEXP ncoresSEXP, SEXP symmetricSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type dnavector(dnavectorSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type scoreMatrix(scoreMatrixSEXP);
    Rcpp::traits::input_parameter< int >::type ncores(ncoresSEXP);
    Rcpp::traits::input_parameter< int >::type symmetric(symmetricSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_distSTRING(dnavector, scoreMatrix, ncores, symmetric));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_pairwiseDeletionAA
Rcpp::List rcpp_pairwiseDeletionAA(Rcpp::StringVector aavector, int ncores, int symmetric);
RcppExport SEXP _MSA2dist_rcpp_pairwiseDeletionAA(SEXP aavectorSEXP, SEXP ncoresSEXP, SEXP symmetricSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type aavector(aavectorSEXP);
    Rcpp::traits::input_parameter< int >::type ncores(ncoresSEXP);
    Rcpp::traits::input_parameter< int >::type symmetric(symmetricSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_pairwiseDeletionAA(aavector, ncores, symmetric));
    return rcpp_result_gen;
END_RCPP
}
// rcpp_pairwiseDeletionDNA
Rcpp::List rcpp_pairwiseDeletionDNA(Rcpp::StringVector dnavector, int ncores, int symmetric);
RcppExport SEXP _MSA2dist_rcpp_pairwiseDeletionDNA(SEXP dnavectorSEXP, SEXP ncoresSEXP, SEXP symmetricSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type dnavector(dnavectorSEXP);
    Rcpp::traits::input_parameter< int >::type ncores(ncoresSEXP);
    Rcpp::traits::input_parameter< int >::type symmetric(symmetricSEXP);
    rcpp_result_gen = Rcpp::wrap(rcpp_pairwiseDeletionDNA(dnavector, ncores, symmetric));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_MSA2dist_rcpp_KaKs", (DL_FUNC) &_MSA2dist_rcpp_KaKs, 4},
    {"_MSA2dist_rcpp_distSTRING", (DL_FUNC) &_MSA2dist_rcpp_distSTRING, 4},
    {"_MSA2dist_rcpp_pairwiseDeletionAA", (DL_FUNC) &_MSA2dist_rcpp_pairwiseDeletionAA, 3},
    {"_MSA2dist_rcpp_pairwiseDeletionDNA", (DL_FUNC) &_MSA2dist_rcpp_pairwiseDeletionDNA, 3},
    {NULL, NULL, 0}
};

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