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

// Different
bool Different(const std::string& seq1, const std::string& seq2, bool skip_missing, bool nucleic_acid);
RcppExport SEXP _orthologr_Different(SEXP seq1SEXP, SEXP seq2SEXP, SEXP skip_missingSEXP, SEXP nucleic_acidSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type seq1(seq1SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type seq2(seq2SEXP);
    Rcpp::traits::input_parameter< bool >::type skip_missing(skip_missingSEXP);
    Rcpp::traits::input_parameter< bool >::type nucleic_acid(nucleic_acidSEXP);
    rcpp_result_gen = Rcpp::wrap(Different(seq1, seq2, skip_missing, nucleic_acid));
    return rcpp_result_gen;
END_RCPP
}
// NumDiffs
unsigned NumDiffs(const std::string& seq1, const std::string& seq2, bool skip_missing, bool nucleic_acid);
RcppExport SEXP _orthologr_NumDiffs(SEXP seq1SEXP, SEXP seq2SEXP, SEXP skip_missingSEXP, SEXP nucleic_acidSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type seq1(seq1SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type seq2(seq2SEXP);
    Rcpp::traits::input_parameter< bool >::type skip_missing(skip_missingSEXP);
    Rcpp::traits::input_parameter< bool >::type nucleic_acid(nucleic_acidSEXP);
    rcpp_result_gen = Rcpp::wrap(NumDiffs(seq1, seq2, skip_missing, nucleic_acid));
    return rcpp_result_gen;
END_RCPP
}
// toChar
char toChar(int x);
RcppExport SEXP _orthologr_toChar(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(toChar(x));
    return rcpp_result_gen;
END_RCPP
}
// TsTv
std::string TsTv(int i, int j);
RcppExport SEXP _orthologr_TsTv(SEXP iSEXP, SEXP jSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type i(iSEXP);
    Rcpp::traits::input_parameter< int >::type j(jSEXP);
    rcpp_result_gen = Rcpp::wrap(TsTv(i, j));
    return rcpp_result_gen;
END_RCPP
}
// NotAGap
bool NotAGap(char c);
RcppExport SEXP _orthologr_NotAGap(SEXP cSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< char >::type c(cSEXP);
    rcpp_result_gen = Rcpp::wrap(NotAGap(c));
    return rcpp_result_gen;
END_RCPP
}
// ambigousNucleotides
bool ambigousNucleotides(const std::string& codon);
RcppExport SEXP _orthologr_ambigousNucleotides(SEXP codonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type codon(codonSEXP);
    rcpp_result_gen = Rcpp::wrap(ambigousNucleotides(codon));
    return rcpp_result_gen;
END_RCPP
}
// codonPrecondition
bool codonPrecondition(const std::string& codon);
RcppExport SEXP _orthologr_codonPrecondition(SEXP codonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type codon(codonSEXP);
    rcpp_result_gen = Rcpp::wrap(codonPrecondition(codon));
    return rcpp_result_gen;
END_RCPP
}
// intToNuc
char intToNuc(int i);
RcppExport SEXP _orthologr_intToNuc(SEXP iSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type i(iSEXP);
    rcpp_result_gen = Rcpp::wrap(intToNuc(i));
    return rcpp_result_gen;
END_RCPP
}
// nucToInt
int nucToInt(char c);
RcppExport SEXP _orthologr_nucToInt(SEXP cSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< char >::type c(cSEXP);
    rcpp_result_gen = Rcpp::wrap(nucToInt(c));
    return rcpp_result_gen;
END_RCPP
}
// Universal
char Universal(std::string codon);
RcppExport SEXP _orthologr_Universal(SEXP codonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type codon(codonSEXP);
    rcpp_result_gen = Rcpp::wrap(Universal(codon));
    return rcpp_result_gen;
END_RCPP
}
// TranslateCodon
std::string TranslateCodon(std::string codon);
RcppExport SEXP _orthologr_TranslateCodon(SEXP codonSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type codon(codonSEXP);
    rcpp_result_gen = Rcpp::wrap(TranslateCodon(codon));
    return rcpp_result_gen;
END_RCPP
}
// gestimator
void gestimator(std::string file, std::string file_out, int maxHits, bool verbose, bool remove_all_gaps);
RcppExport SEXP _orthologr_gestimator(SEXP fileSEXP, SEXP file_outSEXP, SEXP maxHitsSEXP, SEXP verboseSEXP, SEXP remove_all_gapsSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type file(fileSEXP);
    Rcpp::traits::input_parameter< std::string >::type file_out(file_outSEXP);
    Rcpp::traits::input_parameter< int >::type maxHits(maxHitsSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< bool >::type remove_all_gaps(remove_all_gapsSEXP);
    gestimator(file, file_out, maxHits, verbose, remove_all_gaps);
    return R_NilValue;
END_RCPP
}
