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

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

// getcommsize
NumericVector getcommsize(NumericVector x, NumericVector ux);
RcppExport SEXP _mclustcomp_getcommsize(SEXP xSEXP, SEXP uxSEXP) {
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 ux(uxSEXP);
    rcpp_result_gen = Rcpp::wrap(getcommsize(x, ux));
    return rcpp_result_gen;
END_RCPP
}
// getpair
NumericMatrix getpair(NumericVector x, NumericVector y);
RcppExport SEXP _mclustcomp_getpair(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(getpair(x, y));
    return rcpp_result_gen;
END_RCPP
}
// getprobs
List getprobs(NumericMatrix confmat, NumericVector scx, NumericVector scy, const int n, double threps);
RcppExport SEXP _mclustcomp_getprobs(SEXP confmatSEXP, SEXP scxSEXP, SEXP scySEXP, SEXP nSEXP, SEXP threpsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type confmat(confmatSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type scx(scxSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type scy(scySEXP);
    Rcpp::traits::input_parameter< const int >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type threps(threpsSEXP);
    rcpp_result_gen = Rcpp::wrap(getprobs(confmat, scx, scy, n, threps));
    return rcpp_result_gen;
END_RCPP
}
// genconfusion
arma::mat genconfusion(arma::vec& x, arma::vec& y, arma::vec& ux, arma::vec& uy);
RcppExport SEXP _mclustcomp_genconfusion(SEXP xSEXP, SEXP ySEXP, SEXP uxSEXP, SEXP uySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::vec& >::type x(xSEXP);
    Rcpp::traits::input_parameter< arma::vec& >::type y(ySEXP);
    Rcpp::traits::input_parameter< arma::vec& >::type ux(uxSEXP);
    Rcpp::traits::input_parameter< arma::vec& >::type uy(uySEXP);
    rcpp_result_gen = Rcpp::wrap(genconfusion(x, y, ux, uy));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_mclustcomp_getcommsize", (DL_FUNC) &_mclustcomp_getcommsize, 2},
    {"_mclustcomp_getpair", (DL_FUNC) &_mclustcomp_getpair, 2},
    {"_mclustcomp_getprobs", (DL_FUNC) &_mclustcomp_getprobs, 5},
    {"_mclustcomp_genconfusion", (DL_FUNC) &_mclustcomp_genconfusion, 4},
    {NULL, NULL, 0}
};

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