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

// goedel_tnorm
double goedel_tnorm(NumericVector vals);
RcppExport SEXP _lfl_goedel_tnorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(goedel_tnorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// pgoedel_tnorm
NumericVector pgoedel_tnorm(List list);
RcppExport SEXP _lfl_pgoedel_tnorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(pgoedel_tnorm(list));
    return rcpp_result_gen;
END_RCPP
}
// lukas_tnorm
double lukas_tnorm(NumericVector vals);
RcppExport SEXP _lfl_lukas_tnorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(lukas_tnorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// plukas_tnorm
NumericVector plukas_tnorm(List list);
RcppExport SEXP _lfl_plukas_tnorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(plukas_tnorm(list));
    return rcpp_result_gen;
END_RCPP
}
// goguen_tnorm
double goguen_tnorm(NumericVector vals);
RcppExport SEXP _lfl_goguen_tnorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(goguen_tnorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// pgoguen_tnorm
NumericVector pgoguen_tnorm(List list);
RcppExport SEXP _lfl_pgoguen_tnorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(pgoguen_tnorm(list));
    return rcpp_result_gen;
END_RCPP
}
// goedel_tconorm
double goedel_tconorm(NumericVector vals);
RcppExport SEXP _lfl_goedel_tconorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(goedel_tconorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// pgoedel_tconorm
NumericVector pgoedel_tconorm(List list);
RcppExport SEXP _lfl_pgoedel_tconorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(pgoedel_tconorm(list));
    return rcpp_result_gen;
END_RCPP
}
// lukas_tconorm
double lukas_tconorm(NumericVector vals);
RcppExport SEXP _lfl_lukas_tconorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(lukas_tconorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// plukas_tconorm
NumericVector plukas_tconorm(List list);
RcppExport SEXP _lfl_plukas_tconorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(plukas_tconorm(list));
    return rcpp_result_gen;
END_RCPP
}
// goguen_tconorm
double goguen_tconorm(NumericVector vals);
RcppExport SEXP _lfl_goguen_tconorm(SEXP valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type vals(valsSEXP);
    rcpp_result_gen = Rcpp::wrap(goguen_tconorm(vals));
    return rcpp_result_gen;
END_RCPP
}
// pgoguen_tconorm
NumericVector pgoguen_tconorm(List list);
RcppExport SEXP _lfl_pgoguen_tconorm(SEXP listSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type list(listSEXP);
    rcpp_result_gen = Rcpp::wrap(pgoguen_tconorm(list));
    return rcpp_result_gen;
END_RCPP
}
// goedel_residuum
NumericVector goedel_residuum(NumericVector x, NumericVector y);
RcppExport SEXP _lfl_goedel_residuum(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(goedel_residuum(x, y));
    return rcpp_result_gen;
END_RCPP
}
// lukas_residuum
NumericVector lukas_residuum(NumericVector x, NumericVector y);
RcppExport SEXP _lfl_lukas_residuum(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(lukas_residuum(x, y));
    return rcpp_result_gen;
END_RCPP
}
// goguen_residuum
NumericVector goguen_residuum(NumericVector x, NumericVector y);
RcppExport SEXP _lfl_goguen_residuum(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(goguen_residuum(x, y));
    return rcpp_result_gen;
END_RCPP
}
// invol_neg
NumericVector invol_neg(NumericVector x);
RcppExport SEXP _lfl_invol_neg(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(invol_neg(x));
    return rcpp_result_gen;
END_RCPP
}
// strict_neg
NumericVector strict_neg(NumericVector x);
RcppExport SEXP _lfl_strict_neg(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(strict_neg(x));
    return rcpp_result_gen;
END_RCPP
}
// triangle
NumericVector triangle(NumericVector x, NumericVector ctx);
RcppExport SEXP _lfl_triangle(SEXP xSEXP, SEXP ctxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type ctx(ctxSEXP);
    rcpp_result_gen = Rcpp::wrap(triangle(x, ctx));
    return rcpp_result_gen;
END_RCPP
}
// raisedcos
NumericVector raisedcos(NumericVector x, NumericVector ctx);
RcppExport SEXP _lfl_raisedcos(SEXP xSEXP, SEXP ctxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type ctx(ctxSEXP);
    rcpp_result_gen = Rcpp::wrap(raisedcos(x, ctx));
    return rcpp_result_gen;
END_RCPP
}
// hedge
NumericVector hedge(NumericVector x, NumericVector p);
RcppExport SEXP _lfl_hedge(SEXP xSEXP, SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(hedge(x, p));
    return rcpp_result_gen;
END_RCPP
}
// mult
RcppExport SEXP mult(NumericMatrix x, NumericMatrix y, Function f);
RcppExport SEXP _lfl_mult(SEXP xSEXP, SEXP ySEXP, SEXP fSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< Function >::type f(fSEXP);
    rcpp_result_gen = Rcpp::wrap(mult(x, y, f));
    return rcpp_result_gen;
END_RCPP
}
// reduce
NumericVector reduce(List config);
RcppExport SEXP _lfl_reduce(SEXP configSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type config(configSEXP);
    rcpp_result_gen = Rcpp::wrap(reduce(config));
    return rcpp_result_gen;
END_RCPP
}
// search
List search(NumericMatrix rcppData, List config);
RcppExport SEXP _lfl_search(SEXP rcppDataSEXP, SEXP configSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type rcppData(rcppDataSEXP);
    Rcpp::traits::input_parameter< List >::type config(configSEXP);
    rcpp_result_gen = Rcpp::wrap(search(rcppData, config));
    return rcpp_result_gen;
END_RCPP
}
// specificity
bool specificity(NumericVector x, NumericVector y, NumericVector vars, NumericMatrix specs);
RcppExport SEXP _lfl_specificity(SEXP xSEXP, SEXP ySEXP, SEXP varsSEXP, SEXP specsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type vars(varsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type specs(specsSEXP);
    rcpp_result_gen = Rcpp::wrap(specificity(x, y, vars, specs));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_lfl_goedel_tnorm", (DL_FUNC) &_lfl_goedel_tnorm, 1},
    {"_lfl_pgoedel_tnorm", (DL_FUNC) &_lfl_pgoedel_tnorm, 1},
    {"_lfl_lukas_tnorm", (DL_FUNC) &_lfl_lukas_tnorm, 1},
    {"_lfl_plukas_tnorm", (DL_FUNC) &_lfl_plukas_tnorm, 1},
    {"_lfl_goguen_tnorm", (DL_FUNC) &_lfl_goguen_tnorm, 1},
    {"_lfl_pgoguen_tnorm", (DL_FUNC) &_lfl_pgoguen_tnorm, 1},
    {"_lfl_goedel_tconorm", (DL_FUNC) &_lfl_goedel_tconorm, 1},
    {"_lfl_pgoedel_tconorm", (DL_FUNC) &_lfl_pgoedel_tconorm, 1},
    {"_lfl_lukas_tconorm", (DL_FUNC) &_lfl_lukas_tconorm, 1},
    {"_lfl_plukas_tconorm", (DL_FUNC) &_lfl_plukas_tconorm, 1},
    {"_lfl_goguen_tconorm", (DL_FUNC) &_lfl_goguen_tconorm, 1},
    {"_lfl_pgoguen_tconorm", (DL_FUNC) &_lfl_pgoguen_tconorm, 1},
    {"_lfl_goedel_residuum", (DL_FUNC) &_lfl_goedel_residuum, 2},
    {"_lfl_lukas_residuum", (DL_FUNC) &_lfl_lukas_residuum, 2},
    {"_lfl_goguen_residuum", (DL_FUNC) &_lfl_goguen_residuum, 2},
    {"_lfl_invol_neg", (DL_FUNC) &_lfl_invol_neg, 1},
    {"_lfl_strict_neg", (DL_FUNC) &_lfl_strict_neg, 1},
    {"_lfl_triangle", (DL_FUNC) &_lfl_triangle, 2},
    {"_lfl_raisedcos", (DL_FUNC) &_lfl_raisedcos, 2},
    {"_lfl_hedge", (DL_FUNC) &_lfl_hedge, 2},
    {"_lfl_mult", (DL_FUNC) &_lfl_mult, 3},
    {"_lfl_reduce", (DL_FUNC) &_lfl_reduce, 1},
    {"_lfl_search", (DL_FUNC) &_lfl_search, 2},
    {"_lfl_specificity", (DL_FUNC) &_lfl_specificity, 4},
    {NULL, NULL, 0}
};

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