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

// rss_rotation
Rcpp::NumericVector rss_rotation(arma::mat& x_r, arma::mat& ref_r, double ref_mid_rad);
RcppExport SEXP _lakhesis_rss_rotation(SEXP x_rSEXP, SEXP ref_rSEXP, SEXP ref_mid_radSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type x_r(x_rSEXP);
    Rcpp::traits::input_parameter< arma::mat& >::type ref_r(ref_rSEXP);
    Rcpp::traits::input_parameter< double >::type ref_mid_rad(ref_mid_radSEXP);
    rcpp_result_gen = Rcpp::wrap(rss_rotation(x_r, ref_r, ref_mid_rad));
    return rcpp_result_gen;
END_RCPP
}
// orth_proj_fit
Rcpp::NumericVector orth_proj_fit(arma::mat& x_r_rot, arma::mat& ref_r);
RcppExport SEXP _lakhesis_orth_proj_fit(SEXP x_r_rotSEXP, SEXP ref_rSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type x_r_rot(x_r_rotSEXP);
    Rcpp::traits::input_parameter< arma::mat& >::type ref_r(ref_rSEXP);
    rcpp_result_gen = Rcpp::wrap(orth_proj_fit(x_r_rot, ref_r));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_lakhesis_rss_rotation", (DL_FUNC) &_lakhesis_rss_rotation, 3},
    {"_lakhesis_orth_proj_fit", (DL_FUNC) &_lakhesis_orth_proj_fit, 2},
    {NULL, NULL, 0}
};

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