// 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

// seqEqual
bool seqEqual(std::string seq1, std::string seq2, CharacterVector ignore);
RcppExport SEXP _alakazam_seqEqual(SEXP seq1SEXP, SEXP seq2SEXP, SEXP ignoreSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type seq1(seq1SEXP);
    Rcpp::traits::input_parameter< std::string >::type seq2(seq2SEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type ignore(ignoreSEXP);
    rcpp_result_gen = Rcpp::wrap(seqEqual(seq1, seq2, ignore));
    return rcpp_result_gen;
END_RCPP
}
// pairwiseEqual
LogicalMatrix pairwiseEqual(StringVector seq);
RcppExport SEXP _alakazam_pairwiseEqual(SEXP seqSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< StringVector >::type seq(seqSEXP);
    rcpp_result_gen = Rcpp::wrap(pairwiseEqual(seq));
    return rcpp_result_gen;
END_RCPP
}
// seqDistRcpp
double seqDistRcpp(std::string seq1, std::string seq2, NumericMatrix dist_mat);
RcppExport SEXP _alakazam_seqDistRcpp(SEXP seq1SEXP, SEXP seq2SEXP, SEXP dist_matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type seq1(seq1SEXP);
    Rcpp::traits::input_parameter< std::string >::type seq2(seq2SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type dist_mat(dist_matSEXP);
    rcpp_result_gen = Rcpp::wrap(seqDistRcpp(seq1, seq2, dist_mat));
    return rcpp_result_gen;
END_RCPP
}
// pairwiseDistRcpp
NumericMatrix pairwiseDistRcpp(StringVector seq, NumericMatrix dist_mat);
RcppExport SEXP _alakazam_pairwiseDistRcpp(SEXP seqSEXP, SEXP dist_matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< StringVector >::type seq(seqSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type dist_mat(dist_matSEXP);
    rcpp_result_gen = Rcpp::wrap(pairwiseDistRcpp(seq, dist_mat));
    return rcpp_result_gen;
END_RCPP
}
// nonsquareDistRcpp
NumericMatrix nonsquareDistRcpp(StringVector seq, NumericVector indx, NumericMatrix dist_mat);
RcppExport SEXP _alakazam_nonsquareDistRcpp(SEXP seqSEXP, SEXP indxSEXP, SEXP dist_matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< StringVector >::type seq(seqSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type indx(indxSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type dist_mat(dist_matSEXP);
    rcpp_result_gen = Rcpp::wrap(nonsquareDistRcpp(seq, indx, dist_mat));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_alakazam_seqEqual", (DL_FUNC) &_alakazam_seqEqual, 3},
    {"_alakazam_pairwiseEqual", (DL_FUNC) &_alakazam_pairwiseEqual, 1},
    {"_alakazam_seqDistRcpp", (DL_FUNC) &_alakazam_seqDistRcpp, 3},
    {"_alakazam_pairwiseDistRcpp", (DL_FUNC) &_alakazam_pairwiseDistRcpp, 2},
    {"_alakazam_nonsquareDistRcpp", (DL_FUNC) &_alakazam_nonsquareDistRcpp, 3},
    {NULL, NULL, 0}
};

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