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

// bicor_matrix_cpp
arma::mat bicor_matrix_cpp(const arma::mat& X, const double c_const, const double maxPOutliers, const int pearson_fallback, const int n_threads);
RcppExport SEXP _matrixCorr_bicor_matrix_cpp(SEXP XSEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_matrix_cpp(X, c_const, maxPOutliers, pearson_fallback, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// bicor_vec_cpp
double bicor_vec_cpp(const arma::vec& x, const arma::vec& y, const double c_const, const double maxPOutliers, const int pearson_fallback);
RcppExport SEXP _matrixCorr_bicor_vec_cpp(SEXP xSEXP, SEXP ySEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::vec& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_vec_cpp(x, y, c_const, maxPOutliers, pearson_fallback));
    return rcpp_result_gen;
END_RCPP
}
// bicor_matrix_pairwise_cpp
arma::mat bicor_matrix_pairwise_cpp(const arma::mat& X, const double c_const, const double maxPOutliers, const int pearson_fallback, const int min_n, const int n_threads);
RcppExport SEXP _matrixCorr_bicor_matrix_pairwise_cpp(SEXP XSEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP, SEXP min_nSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    Rcpp::traits::input_parameter< const int >::type min_n(min_nSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_matrix_pairwise_cpp(X, c_const, maxPOutliers, pearson_fallback, min_n, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// bicor_threshold_triplets_cpp
Rcpp::List bicor_threshold_triplets_cpp(const arma::mat& X, const double c_const, const double maxPOutliers, const int pearson_fallback, const double threshold, const bool diag, const int block_size, const int n_threads);
RcppExport SEXP _matrixCorr_bicor_threshold_triplets_cpp(SEXP XSEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_threshold_triplets_cpp(X, c_const, maxPOutliers, pearson_fallback, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// bicor_matrix_weighted_cpp
arma::mat bicor_matrix_weighted_cpp(const arma::mat& X, const arma::vec& w, const double c_const, const double maxPOutliers, const int pearson_fallback, const int n_threads);
RcppExport SEXP _matrixCorr_bicor_matrix_weighted_cpp(SEXP XSEXP, SEXP wSEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_matrix_weighted_cpp(X, w, c_const, maxPOutliers, pearson_fallback, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// bicor_matrix_weighted_pairwise_cpp
arma::mat bicor_matrix_weighted_pairwise_cpp(const arma::mat& X, const arma::vec& w, const double c_const, const double maxPOutliers, const int pearson_fallback, const int min_n, const int n_threads);
RcppExport SEXP _matrixCorr_bicor_matrix_weighted_pairwise_cpp(SEXP XSEXP, SEXP wSEXP, SEXP c_constSEXP, SEXP maxPOutliersSEXP, SEXP pearson_fallbackSEXP, SEXP min_nSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP);
    Rcpp::traits::input_parameter< const double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< const double >::type maxPOutliers(maxPOutliersSEXP);
    Rcpp::traits::input_parameter< const int >::type pearson_fallback(pearson_fallbackSEXP);
    Rcpp::traits::input_parameter< const int >::type min_n(min_nSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bicor_matrix_weighted_pairwise_cpp(X, w, c_const, maxPOutliers, pearson_fallback, min_n, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// bland_altman_cpp
List bland_altman_cpp(NumericVector group1, NumericVector group2, double loa_multiplier, int mode, double conf_level, int n_threads, bool include_legacy_payload);
RcppExport SEXP _matrixCorr_bland_altman_cpp(SEXP group1SEXP, SEXP group2SEXP, SEXP loa_multiplierSEXP, SEXP modeSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP, SEXP include_legacy_payloadSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type group1(group1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type group2(group2SEXP);
    Rcpp::traits::input_parameter< double >::type loa_multiplier(loa_multiplierSEXP);
    Rcpp::traits::input_parameter< int >::type mode(modeSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    Rcpp::traits::input_parameter< bool >::type include_legacy_payload(include_legacy_payloadSEXP);
    rcpp_result_gen = Rcpp::wrap(bland_altman_cpp(group1, group2, loa_multiplier, mode, conf_level, n_threads, include_legacy_payload));
    return rcpp_result_gen;
END_RCPP
}
// ba_openmp_threads
int ba_openmp_threads();
RcppExport SEXP _matrixCorr_ba_openmp_threads() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(ba_openmp_threads());
    return rcpp_result_gen;
END_RCPP
}
// ba_rm_slope_scale_cpp
Rcpp::List ba_rm_slope_scale_cpp(Rcpp::NumericVector mean_values);
RcppExport SEXP _matrixCorr_ba_rm_slope_scale_cpp(SEXP mean_valuesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type mean_values(mean_valuesSEXP);
    rcpp_result_gen = Rcpp::wrap(ba_rm_slope_scale_cpp(mean_values));
    return rcpp_result_gen;
END_RCPP
}
// ba_rm_complete_pairs_cpp
int ba_rm_complete_pairs_cpp(const NumericVector& y, const IntegerVector& subject, const IntegerVector& method, const IntegerVector& time);
RcppExport SEXP _matrixCorr_ba_rm_complete_pairs_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP timeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type method(methodSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type time(timeSEXP);
    rcpp_result_gen = Rcpp::wrap(ba_rm_complete_pairs_cpp(y, subject, method, time));
    return rcpp_result_gen;
END_RCPP
}
// bland_altman_repeated_em_ext_cpp
Rcpp::List bland_altman_repeated_em_ext_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector time, bool include_slope, bool use_ar1, double ar1_rho, int max_iter, double tol, double conf_level, double loa_multiplier_arg, bool use_cov_su_se, int n_threads);
RcppExport SEXP _matrixCorr_bland_altman_repeated_em_ext_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP timeSEXP, SEXP include_slopeSEXP, SEXP use_ar1SEXP, SEXP ar1_rhoSEXP, SEXP max_iterSEXP, SEXP tolSEXP, SEXP conf_levelSEXP, SEXP loa_multiplier_argSEXP, SEXP use_cov_su_seSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type time(timeSEXP);
    Rcpp::traits::input_parameter< bool >::type include_slope(include_slopeSEXP);
    Rcpp::traits::input_parameter< bool >::type use_ar1(use_ar1SEXP);
    Rcpp::traits::input_parameter< double >::type ar1_rho(ar1_rhoSEXP);
    Rcpp::traits::input_parameter< int >::type max_iter(max_iterSEXP);
    Rcpp::traits::input_parameter< double >::type tol(tolSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< double >::type loa_multiplier_arg(loa_multiplier_argSEXP);
    Rcpp::traits::input_parameter< bool >::type use_cov_su_se(use_cov_su_seSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(bland_altman_repeated_em_ext_cpp(y, subject, method, time, include_slope, use_ar1, ar1_rho, max_iter, tol, conf_level, loa_multiplier_arg, use_cov_su_se, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// ccc_glmm_poisson_prepare_blocks_cpp
Rcpp::List ccc_glmm_poisson_prepare_blocks_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method_code, int n_subjects);
RcppExport SEXP _matrixCorr_ccc_glmm_poisson_prepare_blocks_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP method_codeSEXP, SEXP n_subjectsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method_code(method_codeSEXP);
    Rcpp::traits::input_parameter< int >::type n_subjects(n_subjectsSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_glmm_poisson_prepare_blocks_cpp(y, subject, method_code, n_subjects));
    return rcpp_result_gen;
END_RCPP
}
// ccc_glmm_poisson_ghq_nll_blocks_cpp
double ccc_glmm_poisson_ghq_nll_blocks_cpp(Rcpp::NumericVector par, Rcpp::NumericVector y1, Rcpp::NumericVector y2, Rcpp::NumericVector n1, Rcpp::NumericVector n2, Rcpp::NumericVector log_factorial, bool include_subject_method, Rcpp::NumericVector gh_nodes, Rcpp::NumericVector gh_weights);
RcppExport SEXP _matrixCorr_ccc_glmm_poisson_ghq_nll_blocks_cpp(SEXP parSEXP, SEXP y1SEXP, SEXP y2SEXP, SEXP n1SEXP, SEXP n2SEXP, SEXP log_factorialSEXP, SEXP include_subject_methodSEXP, SEXP gh_nodesSEXP, SEXP gh_weightsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type par(parSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y1(y1SEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y2(y2SEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type n2(n2SEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type log_factorial(log_factorialSEXP);
    Rcpp::traits::input_parameter< bool >::type include_subject_method(include_subject_methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type gh_nodes(gh_nodesSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type gh_weights(gh_weightsSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_glmm_poisson_ghq_nll_blocks_cpp(par, y1, y2, n1, n2, log_factorial, include_subject_method, gh_nodes, gh_weights));
    return rcpp_result_gen;
END_RCPP
}
// ccc_glmm_poisson_ghq_nll_cpp
double ccc_glmm_poisson_ghq_nll_cpp(Rcpp::NumericVector par, Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method_code, int n_subjects, bool include_subject_method, Rcpp::NumericVector gh_nodes, Rcpp::NumericVector gh_weights);
RcppExport SEXP _matrixCorr_ccc_glmm_poisson_ghq_nll_cpp(SEXP parSEXP, SEXP ySEXP, SEXP subjectSEXP, SEXP method_codeSEXP, SEXP n_subjectsSEXP, SEXP include_subject_methodSEXP, SEXP gh_nodesSEXP, SEXP gh_weightsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type par(parSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method_code(method_codeSEXP);
    Rcpp::traits::input_parameter< int >::type n_subjects(n_subjectsSEXP);
    Rcpp::traits::input_parameter< bool >::type include_subject_method(include_subject_methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type gh_nodes(gh_nodesSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type gh_weights(gh_weightsSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_glmm_poisson_ghq_nll_cpp(par, y, subject, method_code, n_subjects, include_subject_method, gh_nodes, gh_weights));
    return rcpp_result_gen;
END_RCPP
}
// cccUst_rcpp
List cccUst_rcpp(NumericVector y_vec, IntegerVector met_vec, IntegerVector time_vec, IntegerVector subj_vec, int nmet0, int nmet1, int ntime, int ns, NumericMatrix Dmat, double delta, double cl);
RcppExport SEXP _matrixCorr_cccUst_rcpp(SEXP y_vecSEXP, SEXP met_vecSEXP, SEXP time_vecSEXP, SEXP subj_vecSEXP, SEXP nmet0SEXP, SEXP nmet1SEXP, SEXP ntimeSEXP, SEXP nsSEXP, SEXP DmatSEXP, SEXP deltaSEXP, SEXP clSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y_vec(y_vecSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type met_vec(met_vecSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type time_vec(time_vecSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type subj_vec(subj_vecSEXP);
    Rcpp::traits::input_parameter< int >::type nmet0(nmet0SEXP);
    Rcpp::traits::input_parameter< int >::type nmet1(nmet1SEXP);
    Rcpp::traits::input_parameter< int >::type ntime(ntimeSEXP);
    Rcpp::traits::input_parameter< int >::type ns(nsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type Dmat(DmatSEXP);
    Rcpp::traits::input_parameter< double >::type delta(deltaSEXP);
    Rcpp::traits::input_parameter< double >::type cl(clSEXP);
    rcpp_result_gen = Rcpp::wrap(cccUst_rcpp(y_vec, met_vec, time_vec, subj_vec, nmet0, nmet1, ntime, ns, Dmat, delta, cl));
    return rcpp_result_gen;
END_RCPP
}
// set_omp_threads
void set_omp_threads(const int n);
RcppExport SEXP _matrixCorr_set_omp_threads(SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const int >::type n(nSEXP);
    set_omp_threads(n);
    return R_NilValue;
END_RCPP
}
// get_omp_threads
int get_omp_threads();
RcppExport SEXP _matrixCorr_get_omp_threads() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(get_omp_threads());
    return rcpp_result_gen;
END_RCPP
}
// build_L_Dm_cpp
Rcpp::List build_L_Dm_cpp(Rcpp::CharacterVector colnames_X, Rcpp::Nullable<Rcpp::CharacterVector> rmet_name, Rcpp::Nullable<Rcpp::CharacterVector> rtime_name, Rcpp::CharacterVector method_levels, Rcpp::CharacterVector time_levels, bool has_interaction, Rcpp::Nullable<Rcpp::NumericMatrix> Dmat_global);
RcppExport SEXP _matrixCorr_build_L_Dm_cpp(SEXP colnames_XSEXP, SEXP rmet_nameSEXP, SEXP rtime_nameSEXP, SEXP method_levelsSEXP, SEXP time_levelsSEXP, SEXP has_interactionSEXP, SEXP Dmat_globalSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type colnames_X(colnames_XSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::CharacterVector> >::type rmet_name(rmet_nameSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::CharacterVector> >::type rtime_name(rtime_nameSEXP);
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type method_levels(method_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type time_levels(time_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type has_interaction(has_interactionSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type Dmat_global(Dmat_globalSEXP);
    rcpp_result_gen = Rcpp::wrap(build_L_Dm_cpp(colnames_X, rmet_name, rtime_name, method_levels, time_levels, has_interaction, Dmat_global));
    return rcpp_result_gen;
END_RCPP
}
// build_L_Dm_Z_cpp
Rcpp::List build_L_Dm_Z_cpp(Rcpp::CharacterVector colnames_X, Rcpp::Nullable<Rcpp::CharacterVector> rmet_name, Rcpp::Nullable<Rcpp::CharacterVector> rtime_name, Rcpp::CharacterVector method_levels, Rcpp::CharacterVector time_levels, bool has_interaction, Rcpp::Nullable<Rcpp::NumericMatrix> Dmat_global, std::string slope_mode, Rcpp::Nullable<Rcpp::NumericVector> slope_var, Rcpp::Nullable<Rcpp::IntegerVector> method_codes, bool drop_zero_cols);
RcppExport SEXP _matrixCorr_build_L_Dm_Z_cpp(SEXP colnames_XSEXP, SEXP rmet_nameSEXP, SEXP rtime_nameSEXP, SEXP method_levelsSEXP, SEXP time_levelsSEXP, SEXP has_interactionSEXP, SEXP Dmat_globalSEXP, SEXP slope_modeSEXP, SEXP slope_varSEXP, SEXP method_codesSEXP, SEXP drop_zero_colsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type colnames_X(colnames_XSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::CharacterVector> >::type rmet_name(rmet_nameSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::CharacterVector> >::type rtime_name(rtime_nameSEXP);
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type method_levels(method_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type time_levels(time_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type has_interaction(has_interactionSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type Dmat_global(Dmat_globalSEXP);
    Rcpp::traits::input_parameter< std::string >::type slope_mode(slope_modeSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericVector> >::type slope_var(slope_varSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::IntegerVector> >::type method_codes(method_codesSEXP);
    Rcpp::traits::input_parameter< bool >::type drop_zero_cols(drop_zero_colsSEXP);
    rcpp_result_gen = Rcpp::wrap(build_L_Dm_Z_cpp(colnames_X, rmet_name, rtime_name, method_levels, time_levels, has_interaction, Dmat_global, slope_mode, slope_var, method_codes, drop_zero_cols));
    return rcpp_result_gen;
END_RCPP
}
// ccc_vc_cpp
Rcpp::List ccc_vc_cpp(Rcpp::NumericMatrix Xr, Rcpp::NumericVector yr, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector time, int nm, int nt, int max_iter, double tol, double conf_level, int ci_mode, Rcpp::Nullable<Rcpp::NumericMatrix> Lr, Rcpp::Nullable<Rcpp::NumericMatrix> auxDr, Rcpp::Nullable<Rcpp::NumericMatrix> Zr, bool use_ar1, double ar1_rho, bool include_subj_method, bool include_subj_time, double sb_zero_tol, bool eval_single_visit, Rcpp::Nullable<Rcpp::NumericVector> time_weights, int metric_mode, bool ll_only, bool need_loglik);
RcppExport SEXP _matrixCorr_ccc_vc_cpp(SEXP XrSEXP, SEXP yrSEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP timeSEXP, SEXP nmSEXP, SEXP ntSEXP, SEXP max_iterSEXP, SEXP tolSEXP, SEXP conf_levelSEXP, SEXP ci_modeSEXP, SEXP LrSEXP, SEXP auxDrSEXP, SEXP ZrSEXP, SEXP use_ar1SEXP, SEXP ar1_rhoSEXP, SEXP include_subj_methodSEXP, SEXP include_subj_timeSEXP, SEXP sb_zero_tolSEXP, SEXP eval_single_visitSEXP, SEXP time_weightsSEXP, SEXP metric_modeSEXP, SEXP ll_onlySEXP, SEXP need_loglikSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type Xr(XrSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type yr(yrSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type time(timeSEXP);
    Rcpp::traits::input_parameter< int >::type nm(nmSEXP);
    Rcpp::traits::input_parameter< int >::type nt(ntSEXP);
    Rcpp::traits::input_parameter< int >::type max_iter(max_iterSEXP);
    Rcpp::traits::input_parameter< double >::type tol(tolSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type ci_mode(ci_modeSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type Lr(LrSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type auxDr(auxDrSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type Zr(ZrSEXP);
    Rcpp::traits::input_parameter< bool >::type use_ar1(use_ar1SEXP);
    Rcpp::traits::input_parameter< double >::type ar1_rho(ar1_rhoSEXP);
    Rcpp::traits::input_parameter< bool >::type include_subj_method(include_subj_methodSEXP);
    Rcpp::traits::input_parameter< bool >::type include_subj_time(include_subj_timeSEXP);
    Rcpp::traits::input_parameter< double >::type sb_zero_tol(sb_zero_tolSEXP);
    Rcpp::traits::input_parameter< bool >::type eval_single_visit(eval_single_visitSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericVector> >::type time_weights(time_weightsSEXP);
    Rcpp::traits::input_parameter< int >::type metric_mode(metric_modeSEXP);
    Rcpp::traits::input_parameter< bool >::type ll_only(ll_onlySEXP);
    Rcpp::traits::input_parameter< bool >::type need_loglik(need_loglikSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_vc_cpp(Xr, yr, subject, method, time, nm, nt, max_iter, tol, conf_level, ci_mode, Lr, auxDr, Zr, use_ar1, ar1_rho, include_subj_method, include_subj_time, sb_zero_tol, eval_single_visit, time_weights, metric_mode, ll_only, need_loglik));
    return rcpp_result_gen;
END_RCPP
}
// chatterjee_xi_vec_cpp
double chatterjee_xi_vec_cpp(Rcpp::NumericVector x, Rcpp::NumericVector y, std::string tie_method, std::string bias_correction);
RcppExport SEXP _matrixCorr_chatterjee_xi_vec_cpp(SEXP xSEXP, SEXP ySEXP, SEXP tie_methodSEXP, SEXP bias_correctionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< std::string >::type tie_method(tie_methodSEXP);
    Rcpp::traits::input_parameter< std::string >::type bias_correction(bias_correctionSEXP);
    rcpp_result_gen = Rcpp::wrap(chatterjee_xi_vec_cpp(x, y, tie_method, bias_correction));
    return rcpp_result_gen;
END_RCPP
}
// chatterjee_xi_matrix_cpp
arma::mat chatterjee_xi_matrix_cpp(const arma::mat& X, std::string tie_method, std::string bias_correction, int n_threads);
RcppExport SEXP _matrixCorr_chatterjee_xi_matrix_cpp(SEXP XSEXP, SEXP tie_methodSEXP, SEXP bias_correctionSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< std::string >::type tie_method(tie_methodSEXP);
    Rcpp::traits::input_parameter< std::string >::type bias_correction(bias_correctionSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(chatterjee_xi_matrix_cpp(X, tie_method, bias_correction, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// chatterjee_xi_matrix_pairwise_cpp
Rcpp::List chatterjee_xi_matrix_pairwise_cpp(SEXP X_, bool return_ci, double conf_level, std::string ci_method, int bootstrap_reps, Rcpp::Nullable<Rcpp::IntegerVector> m, int large_sample_cutoff, std::string tie_method, std::string bias_correction, int n_threads);
RcppExport SEXP _matrixCorr_chatterjee_xi_matrix_pairwise_cpp(SEXP X_SEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP, SEXP ci_methodSEXP, SEXP bootstrap_repsSEXP, SEXP mSEXP, SEXP large_sample_cutoffSEXP, SEXP tie_methodSEXP, SEXP bias_correctionSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< std::string >::type ci_method(ci_methodSEXP);
    Rcpp::traits::input_parameter< int >::type bootstrap_reps(bootstrap_repsSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::IntegerVector> >::type m(mSEXP);
    Rcpp::traits::input_parameter< int >::type large_sample_cutoff(large_sample_cutoffSEXP);
    Rcpp::traits::input_parameter< std::string >::type tie_method(tie_methodSEXP);
    Rcpp::traits::input_parameter< std::string >::type bias_correction(bias_correctionSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(chatterjee_xi_matrix_pairwise_cpp(X_, return_ci, conf_level, ci_method, bootstrap_reps, m, large_sample_cutoff, tie_method, bias_correction, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_moments_cpp
Rcpp::List cia_moments_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector replicate, int n_methods, int reference_method, bool has_reference, bool pairwise, int n_threads);
RcppExport SEXP _matrixCorr_cia_moments_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP replicateSEXP, SEXP n_methodsSEXP, SEXP reference_methodSEXP, SEXP has_referenceSEXP, SEXP pairwiseSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type replicate(replicateSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type reference_method(reference_methodSEXP);
    Rcpp::traits::input_parameter< bool >::type has_reference(has_referenceSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise(pairwiseSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_moments_cpp(y, subject, method, replicate, n_methods, reference_method, has_reference, pairwise, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_pairwise_stats_cpp
Rcpp::List cia_pairwise_stats_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector replicate, int n_methods, int reference_method, bool has_reference, int n_threads);
RcppExport SEXP _matrixCorr_cia_pairwise_stats_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP replicateSEXP, SEXP n_methodsSEXP, SEXP reference_methodSEXP, SEXP has_referenceSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type replicate(replicateSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type reference_method(reference_methodSEXP);
    Rcpp::traits::input_parameter< bool >::type has_reference(has_referenceSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_pairwise_stats_cpp(y, subject, method, replicate, n_methods, reference_method, has_reference, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_pairwise_bootstrap_est_cpp
Rcpp::NumericMatrix cia_pairwise_bootstrap_est_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector replicate, int n_methods, int reference_method, bool has_reference, Rcpp::IntegerVector sampled_subjects, std::string estimator, int n_threads);
RcppExport SEXP _matrixCorr_cia_pairwise_bootstrap_est_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP replicateSEXP, SEXP n_methodsSEXP, SEXP reference_methodSEXP, SEXP has_referenceSEXP, SEXP sampled_subjectsSEXP, SEXP estimatorSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type replicate(replicateSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type reference_method(reference_methodSEXP);
    Rcpp::traits::input_parameter< bool >::type has_reference(has_referenceSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type sampled_subjects(sampled_subjectsSEXP);
    Rcpp::traits::input_parameter< std::string >::type estimator(estimatorSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_pairwise_bootstrap_est_cpp(y, subject, method, replicate, n_methods, reference_method, has_reference, sampled_subjects, estimator, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_overall_balanced_cpp
Rcpp::List cia_overall_balanced_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector replicate, int n_methods, int reference_method, bool has_reference, int n_threads);
RcppExport SEXP _matrixCorr_cia_overall_balanced_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP replicateSEXP, SEXP n_methodsSEXP, SEXP reference_methodSEXP, SEXP has_referenceSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type replicate(replicateSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type reference_method(reference_methodSEXP);
    Rcpp::traits::input_parameter< bool >::type has_reference(has_referenceSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_overall_balanced_cpp(y, subject, method, replicate, n_methods, reference_method, has_reference, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_rm_anova_cpp
Rcpp::List cia_rm_anova_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector time, int n_subjects, int n_methods, int n_times, bool homogeneous, bool constrain_vc, int n_threads);
RcppExport SEXP _matrixCorr_cia_rm_anova_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP timeSEXP, SEXP n_subjectsSEXP, SEXP n_methodsSEXP, SEXP n_timesSEXP, SEXP homogeneousSEXP, SEXP constrain_vcSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type time(timeSEXP);
    Rcpp::traits::input_parameter< int >::type n_subjects(n_subjectsSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type n_times(n_timesSEXP);
    Rcpp::traits::input_parameter< bool >::type homogeneous(homogeneousSEXP);
    Rcpp::traits::input_parameter< bool >::type constrain_vc(constrain_vcSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_rm_anova_cpp(y, subject, method, time, n_subjects, n_methods, n_times, homogeneous, constrain_vc, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cia_rm_delta_cpp
Rcpp::List cia_rm_delta_cpp(Rcpp::NumericVector y, Rcpp::IntegerVector subject, Rcpp::IntegerVector method, Rcpp::IntegerVector time, int n_subjects, int n_methods, int n_times, bool homogeneous, bool constrain_vc, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_cia_rm_delta_cpp(SEXP ySEXP, SEXP subjectSEXP, SEXP methodSEXP, SEXP timeSEXP, SEXP n_subjectsSEXP, SEXP n_methodsSEXP, SEXP n_timesSEXP, SEXP homogeneousSEXP, SEXP constrain_vcSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type method(methodSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type time(timeSEXP);
    Rcpp::traits::input_parameter< int >::type n_subjects(n_subjectsSEXP);
    Rcpp::traits::input_parameter< int >::type n_methods(n_methodsSEXP);
    Rcpp::traits::input_parameter< int >::type n_times(n_timesSEXP);
    Rcpp::traits::input_parameter< bool >::type homogeneous(homogeneousSEXP);
    Rcpp::traits::input_parameter< bool >::type constrain_vc(constrain_vcSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cia_rm_delta_cpp(y, subject, method, time, n_subjects, n_methods, n_times, homogeneous, constrain_vc, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cohen_kappa_pair_cpp
Rcpp::List cohen_kappa_pair_cpp(Rcpp::IntegerVector x, Rcpp::IntegerVector y, int n_levels, bool return_inference, double conf_level);
RcppExport SEXP _matrixCorr_cohen_kappa_pair_cpp(SEXP xSEXP, SEXP ySEXP, SEXP n_levelsSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(cohen_kappa_pair_cpp(x, y, n_levels, return_inference, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// cohen_kappa_matrix_cpp
Rcpp::List cohen_kappa_matrix_cpp(Rcpp::IntegerMatrix X, int n_levels, bool pairwise_complete, bool return_inference, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_cohen_kappa_matrix_cpp(SEXP XSEXP, SEXP n_levelsSEXP, SEXP pairwise_completeSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise_complete(pairwise_completeSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cohen_kappa_matrix_cpp(X, n_levels, pairwise_complete, return_inference, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// cohen_kappa_threshold_triplets_cpp
Rcpp::List cohen_kappa_threshold_triplets_cpp(Rcpp::IntegerMatrix X, int n_levels, double threshold, bool diag, int block_size, int n_threads);
RcppExport SEXP _matrixCorr_cohen_kappa_threshold_triplets_cpp(SEXP XSEXP, SEXP n_levelsSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(cohen_kappa_threshold_triplets_cpp(X, n_levels, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// ccc_cpp
arma::mat ccc_cpp(const arma::mat& X);
RcppExport SEXP _matrixCorr_ccc_cpp(SEXP XSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_cpp(X));
    return rcpp_result_gen;
END_RCPP
}
// ccc_with_ci_cpp
List ccc_with_ci_cpp(const arma::mat& X, double conf_level);
RcppExport SEXP _matrixCorr_ccc_with_ci_cpp(SEXP XSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_with_ci_cpp(X, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// openmp_threads
int openmp_threads();
RcppExport SEXP _matrixCorr_openmp_threads() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(openmp_threads());
    return rcpp_result_gen;
END_RCPP
}
// ccc_threshold_triplets_cpp
Rcpp::List ccc_threshold_triplets_cpp(const arma::mat& X, const double threshold, const bool diag, const int block_size);
RcppExport SEXP _matrixCorr_ccc_threshold_triplets_cpp(SEXP XSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    rcpp_result_gen = Rcpp::wrap(ccc_threshold_triplets_cpp(X, threshold, diag, block_size));
    return rcpp_result_gen;
END_RCPP
}
// ustat_dcor
double ustat_dcor(const arma::vec& x, const arma::vec& y);
RcppExport SEXP _matrixCorr_ustat_dcor(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::vec& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(ustat_dcor(x, y));
    return rcpp_result_gen;
END_RCPP
}
// ustat_dcor_matrix_cpp
arma::mat ustat_dcor_matrix_cpp(const arma::mat& X);
RcppExport SEXP _matrixCorr_ustat_dcor_matrix_cpp(SEXP XSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    rcpp_result_gen = Rcpp::wrap(ustat_dcor_matrix_cpp(X));
    return rcpp_result_gen;
END_RCPP
}
// ustat_dcor_matrix_pairwise_cpp
Rcpp::List ustat_dcor_matrix_pairwise_cpp(const arma::mat& X, const bool return_inference);
RcppExport SEXP _matrixCorr_ustat_dcor_matrix_pairwise_cpp(SEXP XSEXP, SEXP return_inferenceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_inference(return_inferenceSEXP);
    rcpp_result_gen = Rcpp::wrap(ustat_dcor_matrix_pairwise_cpp(X, return_inference));
    return rcpp_result_gen;
END_RCPP
}
// robust_dcor_matrix_cpp
Rcpp::NumericMatrix robust_dcor_matrix_cpp(Rcpp::NumericMatrix X, double c_const, int n_threads);
RcppExport SEXP _matrixCorr_robust_dcor_matrix_cpp(SEXP XSEXP, SEXP c_constSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(robust_dcor_matrix_cpp(X, c_const, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// robust_dcor_matrix_pairwise_cpp
Rcpp::List robust_dcor_matrix_pairwise_cpp(Rcpp::NumericMatrix X, double c_const, bool return_inference, int n_perm, Rcpp::Nullable<Rcpp::IntegerVector> seed, int n_threads);
RcppExport SEXP _matrixCorr_robust_dcor_matrix_pairwise_cpp(SEXP XSEXP, SEXP c_constSEXP, SEXP return_inferenceSEXP, SEXP n_permSEXP, SEXP seedSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type c_const(c_constSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< int >::type n_perm(n_permSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::IntegerVector> >::type seed(seedSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(robust_dcor_matrix_pairwise_cpp(X, c_const, return_inference, n_perm, seed, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// gwet_ac_pair_cpp
Rcpp::List gwet_ac_pair_cpp(Rcpp::IntegerVector x, Rcpp::IntegerVector y, Rcpp::NumericMatrix weights, bool drop_unused_levels, bool return_inference, double conf_level);
RcppExport SEXP _matrixCorr_gwet_ac_pair_cpp(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP drop_unused_levelsSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type drop_unused_levels(drop_unused_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(gwet_ac_pair_cpp(x, y, weights, drop_unused_levels, return_inference, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// gwet_ac_matrix_cpp
Rcpp::List gwet_ac_matrix_cpp(Rcpp::IntegerMatrix X, Rcpp::NumericMatrix weights, bool drop_unused_levels, bool pairwise_complete, bool return_inference, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_gwet_ac_matrix_cpp(SEXP XSEXP, SEXP weightsSEXP, SEXP drop_unused_levelsSEXP, SEXP pairwise_completeSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type drop_unused_levels(drop_unused_levelsSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise_complete(pairwise_completeSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(gwet_ac_matrix_cpp(X, weights, drop_unused_levels, pairwise_complete, return_inference, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// gwet_ac_threshold_triplets_cpp
Rcpp::List gwet_ac_threshold_triplets_cpp(Rcpp::IntegerMatrix X, Rcpp::NumericMatrix weights, bool drop_unused_levels, double threshold, bool diag, int block_size, int n_threads);
RcppExport SEXP _matrixCorr_gwet_ac_threshold_triplets_cpp(SEXP XSEXP, SEXP weightsSEXP, SEXP drop_unused_levelsSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type drop_unused_levels(drop_unused_levelsSEXP);
    Rcpp::traits::input_parameter< double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(gwet_ac_threshold_triplets_cpp(X, weights, drop_unused_levels, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// gwet_ac_counts_cpp
Rcpp::List gwet_ac_counts_cpp(Rcpp::IntegerMatrix counts, Rcpp::NumericMatrix weights, bool by_category, int inference_code, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_gwet_ac_counts_cpp(SEXP countsSEXP, SEXP weightsSEXP, SEXP by_categorySEXP, SEXP inference_codeSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type counts(countsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type by_category(by_categorySEXP);
    Rcpp::traits::input_parameter< int >::type inference_code(inference_codeSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(gwet_ac_counts_cpp(counts, weights, by_category, inference_code, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// gwet_ac_ratings_cpp
Rcpp::List gwet_ac_ratings_cpp(Rcpp::IntegerMatrix ratings, int n_levels, Rcpp::NumericMatrix weights, int na_code, int min_raters, bool by_category, int inference_code, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_gwet_ac_ratings_cpp(SEXP ratingsSEXP, SEXP n_levelsSEXP, SEXP weightsSEXP, SEXP na_codeSEXP, SEXP min_ratersSEXP, SEXP by_categorySEXP, SEXP inference_codeSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type ratings(ratingsSEXP);
    Rcpp::traits::input_parameter< int >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< int >::type na_code(na_codeSEXP);
    Rcpp::traits::input_parameter< int >::type min_raters(min_ratersSEXP);
    Rcpp::traits::input_parameter< bool >::type by_category(by_categorySEXP);
    Rcpp::traits::input_parameter< int >::type inference_code(inference_codeSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(gwet_ac_ratings_cpp(ratings, n_levels, weights, na_code, min_raters, by_category, inference_code, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// hsic_matrix_cpp
arma::mat hsic_matrix_cpp(const arma::mat& X, int kernel_code, int bandwidth_code, bool normalise, int estimator_code);
RcppExport SEXP _matrixCorr_hsic_matrix_cpp(SEXP XSEXP, SEXP kernel_codeSEXP, SEXP bandwidth_codeSEXP, SEXP normaliseSEXP, SEXP estimator_codeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type kernel_code(kernel_codeSEXP);
    Rcpp::traits::input_parameter< int >::type bandwidth_code(bandwidth_codeSEXP);
    Rcpp::traits::input_parameter< bool >::type normalise(normaliseSEXP);
    Rcpp::traits::input_parameter< int >::type estimator_code(estimator_codeSEXP);
    rcpp_result_gen = Rcpp::wrap(hsic_matrix_cpp(X, kernel_code, bandwidth_code, normalise, estimator_code));
    return rcpp_result_gen;
END_RCPP
}
// hsic_raw_biased_matrix_object_cpp
Rcpp::NumericMatrix hsic_raw_biased_matrix_object_cpp(const arma::mat& X, int kernel_code, int bandwidth_code, std::string kernel, std::string bandwidth, Rcpp::CharacterVector names);
RcppExport SEXP _matrixCorr_hsic_raw_biased_matrix_object_cpp(SEXP XSEXP, SEXP kernel_codeSEXP, SEXP bandwidth_codeSEXP, SEXP kernelSEXP, SEXP bandwidthSEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type kernel_code(kernel_codeSEXP);
    Rcpp::traits::input_parameter< int >::type bandwidth_code(bandwidth_codeSEXP);
    Rcpp::traits::input_parameter< std::string >::type kernel(kernelSEXP);
    Rcpp::traits::input_parameter< std::string >::type bandwidth(bandwidthSEXP);
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(hsic_raw_biased_matrix_object_cpp(X, kernel_code, bandwidth_code, kernel, bandwidth, names));
    return rcpp_result_gen;
END_RCPP
}
// hsic_matrix_pairwise_cpp
Rcpp::List hsic_matrix_pairwise_cpp(const arma::mat& X, int kernel_code, int bandwidth_code, bool normalise, int estimator_code, bool return_inference, int B, Rcpp::Nullable<Rcpp::IntegerVector> seed);
RcppExport SEXP _matrixCorr_hsic_matrix_pairwise_cpp(SEXP XSEXP, SEXP kernel_codeSEXP, SEXP bandwidth_codeSEXP, SEXP normaliseSEXP, SEXP estimator_codeSEXP, SEXP return_inferenceSEXP, SEXP BSEXP, SEXP seedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type kernel_code(kernel_codeSEXP);
    Rcpp::traits::input_parameter< int >::type bandwidth_code(bandwidth_codeSEXP);
    Rcpp::traits::input_parameter< bool >::type normalise(normaliseSEXP);
    Rcpp::traits::input_parameter< int >::type estimator_code(estimator_codeSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::IntegerVector> >::type seed(seedSEXP);
    rcpp_result_gen = Rcpp::wrap(hsic_matrix_pairwise_cpp(X, kernel_code, bandwidth_code, normalise, estimator_code, return_inference, B, seed));
    return rcpp_result_gen;
END_RCPP
}
// icc_matrix_cpp
Rcpp::List icc_matrix_cpp(const arma::mat& X, const int form_code, const bool average_unit, const bool pairwise_complete, const bool return_ci, const double conf_level, const int n_threads);
RcppExport SEXP _matrixCorr_icc_matrix_cpp(SEXP XSEXP, SEXP form_codeSEXP, SEXP average_unitSEXP, SEXP pairwise_completeSEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const int >::type form_code(form_codeSEXP);
    Rcpp::traits::input_parameter< const bool >::type average_unit(average_unitSEXP);
    Rcpp::traits::input_parameter< const bool >::type pairwise_complete(pairwise_completeSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(icc_matrix_cpp(X, form_code, average_unit, pairwise_complete, return_ci, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// icc_overall_cpp
Rcpp::List icc_overall_cpp(const arma::mat& X, const bool return_ci, const double conf_level);
RcppExport SEXP _matrixCorr_icc_overall_cpp(SEXP XSEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(icc_overall_cpp(X, return_ci, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// kendall_matrix_cpp
Rcpp::NumericMatrix kendall_matrix_cpp(Rcpp::NumericMatrix mat);
RcppExport SEXP _matrixCorr_kendall_matrix_cpp(SEXP matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type mat(matSEXP);
    rcpp_result_gen = Rcpp::wrap(kendall_matrix_cpp(mat));
    return rcpp_result_gen;
END_RCPP
}
// kendall_tau2_cpp
double kendall_tau2_cpp(Rcpp::NumericVector x, Rcpp::NumericVector y);
RcppExport SEXP _matrixCorr_kendall_tau2_cpp(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(kendall_tau2_cpp(x, y));
    return rcpp_result_gen;
END_RCPP
}
// kendall_tau2_from_mat_cpp
double kendall_tau2_from_mat_cpp(Rcpp::NumericMatrix mat);
RcppExport SEXP _matrixCorr_kendall_tau2_from_mat_cpp(SEXP matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type mat(matSEXP);
    rcpp_result_gen = Rcpp::wrap(kendall_tau2_from_mat_cpp(mat));
    return rcpp_result_gen;
END_RCPP
}
// kendall_matrix_pairwise_cpp
Rcpp::List kendall_matrix_pairwise_cpp(SEXP X_, const bool return_ci, const double conf_level, const std::string ci_method);
RcppExport SEXP _matrixCorr_kendall_matrix_pairwise_cpp(SEXP X_SEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP, SEXP ci_methodSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< const std::string >::type ci_method(ci_methodSEXP);
    rcpp_result_gen = Rcpp::wrap(kendall_matrix_pairwise_cpp(X_, return_ci, conf_level, ci_method));
    return rcpp_result_gen;
END_RCPP
}
// krippendorff_alpha_core_cpp
Rcpp::List krippendorff_alpha_core_cpp(Rcpp::IntegerMatrix counts, Rcpp::NumericMatrix delta2, int method_code, bool return_matrices, int n_threads);
RcppExport SEXP _matrixCorr_krippendorff_alpha_core_cpp(SEXP countsSEXP, SEXP delta2SEXP, SEXP method_codeSEXP, SEXP return_matricesSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type counts(countsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type delta2(delta2SEXP);
    Rcpp::traits::input_parameter< int >::type method_code(method_codeSEXP);
    Rcpp::traits::input_parameter< bool >::type return_matrices(return_matricesSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(krippendorff_alpha_core_cpp(counts, delta2, method_code, return_matrices, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// multirater_kappa_counts_cpp
Rcpp::List multirater_kappa_counts_cpp(Rcpp::IntegerMatrix counts, int method_code, bool by_category, int inference_code, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_multirater_kappa_counts_cpp(SEXP countsSEXP, SEXP method_codeSEXP, SEXP by_categorySEXP, SEXP inference_codeSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type counts(countsSEXP);
    Rcpp::traits::input_parameter< int >::type method_code(method_codeSEXP);
    Rcpp::traits::input_parameter< bool >::type by_category(by_categorySEXP);
    Rcpp::traits::input_parameter< int >::type inference_code(inference_codeSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(multirater_kappa_counts_cpp(counts, method_code, by_category, inference_code, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// multirater_kappa_ratings_cpp
Rcpp::List multirater_kappa_ratings_cpp(Rcpp::IntegerMatrix ratings, int n_levels, int method_code, int na_code, int min_raters, bool by_category, int inference_code, double conf_level, int n_threads, bool exact);
RcppExport SEXP _matrixCorr_multirater_kappa_ratings_cpp(SEXP ratingsSEXP, SEXP n_levelsSEXP, SEXP method_codeSEXP, SEXP na_codeSEXP, SEXP min_ratersSEXP, SEXP by_categorySEXP, SEXP inference_codeSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP, SEXP exactSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type ratings(ratingsSEXP);
    Rcpp::traits::input_parameter< int >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< int >::type method_code(method_codeSEXP);
    Rcpp::traits::input_parameter< int >::type na_code(na_codeSEXP);
    Rcpp::traits::input_parameter< int >::type min_raters(min_ratersSEXP);
    Rcpp::traits::input_parameter< bool >::type by_category(by_categorySEXP);
    Rcpp::traits::input_parameter< int >::type inference_code(inference_codeSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    Rcpp::traits::input_parameter< bool >::type exact(exactSEXP);
    rcpp_result_gen = Rcpp::wrap(multirater_kappa_ratings_cpp(ratings, n_levels, method_code, na_code, min_raters, by_category, inference_code, conf_level, n_threads, exact));
    return rcpp_result_gen;
END_RCPP
}
// partial_correlation_cpp
Rcpp::List partial_correlation_cpp(SEXP X_, const std::string method, const double lambda, const bool return_cov_precision, const bool return_p_value);
RcppExport SEXP _matrixCorr_partial_correlation_cpp(SEXP X_SEXP, SEXP methodSEXP, SEXP lambdaSEXP, SEXP return_cov_precisionSEXP, SEXP return_p_valueSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const std::string >::type method(methodSEXP);
    Rcpp::traits::input_parameter< const double >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_cov_precision(return_cov_precisionSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_p_value(return_p_valueSEXP);
    rcpp_result_gen = Rcpp::wrap(partial_correlation_cpp(X_, method, lambda, return_cov_precision, return_p_value));
    return rcpp_result_gen;
END_RCPP
}
// pearson_matrix_cpp
arma::mat pearson_matrix_cpp(SEXP X_);
RcppExport SEXP _matrixCorr_pearson_matrix_cpp(SEXP X_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    rcpp_result_gen = Rcpp::wrap(pearson_matrix_cpp(X_));
    return rcpp_result_gen;
END_RCPP
}
// pearson_threshold_triplets_cpp
Rcpp::List pearson_threshold_triplets_cpp(SEXP X_, const double threshold, const bool diag, const int block_size);
RcppExport SEXP _matrixCorr_pearson_threshold_triplets_cpp(SEXP X_SEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    rcpp_result_gen = Rcpp::wrap(pearson_threshold_triplets_cpp(X_, threshold, diag, block_size));
    return rcpp_result_gen;
END_RCPP
}
// pearson_matrix_pairwise_cpp
Rcpp::List pearson_matrix_pairwise_cpp(SEXP X_, const bool return_ci, const double conf_level);
RcppExport SEXP _matrixCorr_pearson_matrix_pairwise_cpp(SEXP X_SEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(pearson_matrix_pairwise_cpp(X_, return_ci, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// prob_agree_fit_cpp
Rcpp::List prob_agree_fit_cpp(const Rcpp::NumericVector& response, const Rcpp::NumericVector& predictor, const Rcpp::IntegerVector& group, const Rcpp::NumericVector& eval_predictor, int link_code, const Rcpp::NumericVector& lower, const Rcpp::NumericVector& upper, bool ci, int ci_method, double conf_level, int max_iter, double tol);
RcppExport SEXP _matrixCorr_prob_agree_fit_cpp(SEXP responseSEXP, SEXP predictorSEXP, SEXP groupSEXP, SEXP eval_predictorSEXP, SEXP link_codeSEXP, SEXP lowerSEXP, SEXP upperSEXP, SEXP ciSEXP, SEXP ci_methodSEXP, SEXP conf_levelSEXP, SEXP max_iterSEXP, SEXP tolSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type response(responseSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type predictor(predictorSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type group(groupSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type eval_predictor(eval_predictorSEXP);
    Rcpp::traits::input_parameter< int >::type link_code(link_codeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type upper(upperSEXP);
    Rcpp::traits::input_parameter< bool >::type ci(ciSEXP);
    Rcpp::traits::input_parameter< int >::type ci_method(ci_methodSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type max_iter(max_iterSEXP);
    Rcpp::traits::input_parameter< double >::type tol(tolSEXP);
    rcpp_result_gen = Rcpp::wrap(prob_agree_fit_cpp(response, predictor, group, eval_predictor, link_code, lower, upper, ci, ci_method, conf_level, max_iter, tol));
    return rcpp_result_gen;
END_RCPP
}
// rmcorr_pair_cpp
List rmcorr_pair_cpp(NumericVector x, NumericVector y, IntegerVector subject, double conf_level);
RcppExport SEXP _matrixCorr_rmcorr_pair_cpp(SEXP xSEXP, SEXP ySEXP, SEXP subjectSEXP, SEXP conf_levelSEXP) {
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< IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(rmcorr_pair_cpp(x, y, subject, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// rmcorr_pair_weighted_cpp
List rmcorr_pair_weighted_cpp(NumericVector x, NumericVector y, IntegerVector subject, double conf_level);
RcppExport SEXP _matrixCorr_rmcorr_pair_weighted_cpp(SEXP xSEXP, SEXP ySEXP, SEXP subjectSEXP, SEXP conf_levelSEXP) {
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< IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(rmcorr_pair_weighted_cpp(x, y, subject, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// rmcorr_matrix_cpp
List rmcorr_matrix_cpp(NumericMatrix x, NumericMatrix y, IntegerVector subject, bool symmetric, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_rmcorr_matrix_cpp(SEXP xSEXP, SEXP ySEXP, SEXP subjectSEXP, SEXP symmetricSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
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< IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< bool >::type symmetric(symmetricSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(rmcorr_matrix_cpp(x, y, subject, symmetric, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// rmcorr_matrix_weighted_cpp
List rmcorr_matrix_weighted_cpp(NumericMatrix x, NumericMatrix y, IntegerVector subject, bool symmetric, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_rmcorr_matrix_weighted_cpp(SEXP xSEXP, SEXP ySEXP, SEXP subjectSEXP, SEXP symmetricSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
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< IntegerVector >::type subject(subjectSEXP);
    Rcpp::traits::input_parameter< bool >::type symmetric(symmetricSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(rmcorr_matrix_weighted_cpp(x, y, subject, symmetric, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// pbcor_matrix_cpp
arma::mat pbcor_matrix_cpp(const arma::mat& X, const double beta, const int n_threads);
RcppExport SEXP _matrixCorr_pbcor_matrix_cpp(SEXP XSEXP, SEXP betaSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type beta(betaSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(pbcor_matrix_cpp(X, beta, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// pbcor_threshold_triplets_cpp
Rcpp::List pbcor_threshold_triplets_cpp(const arma::mat& X, const double beta, const double threshold, const bool diag, const int block_size, const int n_threads);
RcppExport SEXP _matrixCorr_pbcor_threshold_triplets_cpp(SEXP XSEXP, SEXP betaSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type beta(betaSEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(pbcor_threshold_triplets_cpp(X, beta, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// pbcor_matrix_pairwise_cpp
arma::mat pbcor_matrix_pairwise_cpp(const arma::mat& X, const double beta, const int min_n, const int n_threads);
RcppExport SEXP _matrixCorr_pbcor_matrix_pairwise_cpp(SEXP XSEXP, SEXP betaSEXP, SEXP min_nSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type beta(betaSEXP);
    Rcpp::traits::input_parameter< const int >::type min_n(min_nSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(pbcor_matrix_pairwise_cpp(X, beta, min_n, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// wincor_matrix_cpp
arma::mat wincor_matrix_cpp(const arma::mat& X, const double tr, const int n_threads);
RcppExport SEXP _matrixCorr_wincor_matrix_cpp(SEXP XSEXP, SEXP trSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type tr(trSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(wincor_matrix_cpp(X, tr, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// wincor_threshold_triplets_cpp
Rcpp::List wincor_threshold_triplets_cpp(const arma::mat& X, const double tr, const double threshold, const bool diag, const int block_size, const int n_threads);
RcppExport SEXP _matrixCorr_wincor_threshold_triplets_cpp(SEXP XSEXP, SEXP trSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type tr(trSEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(wincor_threshold_triplets_cpp(X, tr, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// wincor_matrix_pairwise_cpp
arma::mat wincor_matrix_pairwise_cpp(const arma::mat& X, const double tr, const int min_n, const int n_threads);
RcppExport SEXP _matrixCorr_wincor_matrix_pairwise_cpp(SEXP XSEXP, SEXP trSEXP, SEXP min_nSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const double >::type tr(trSEXP);
    Rcpp::traits::input_parameter< const int >::type min_n(min_nSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(wincor_matrix_pairwise_cpp(X, tr, min_n, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// skipcor_matrix_cpp
Rcpp::List skipcor_matrix_cpp(const arma::mat& X, const int method_int, const bool stand, const bool use_mad, const double gval, const int min_n, const int n_threads, const bool return_masks, const bool return_inference, const double conf_level, const int n_boot, const int seed, const int multiple_method_int, const double fwe_level, const int n_mc);
RcppExport SEXP _matrixCorr_skipcor_matrix_cpp(SEXP XSEXP, SEXP method_intSEXP, SEXP standSEXP, SEXP use_madSEXP, SEXP gvalSEXP, SEXP min_nSEXP, SEXP n_threadsSEXP, SEXP return_masksSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP, SEXP n_bootSEXP, SEXP seedSEXP, SEXP multiple_method_intSEXP, SEXP fwe_levelSEXP, SEXP n_mcSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const int >::type method_int(method_intSEXP);
    Rcpp::traits::input_parameter< const bool >::type stand(standSEXP);
    Rcpp::traits::input_parameter< const bool >::type use_mad(use_madSEXP);
    Rcpp::traits::input_parameter< const double >::type gval(gvalSEXP);
    Rcpp::traits::input_parameter< const int >::type min_n(min_nSEXP);
    Rcpp::traits::input_parameter< const int >::type n_threads(n_threadsSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_masks(return_masksSEXP);
    Rcpp::traits::input_parameter< const bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< const int >::type n_boot(n_bootSEXP);
    Rcpp::traits::input_parameter< const int >::type seed(seedSEXP);
    Rcpp::traits::input_parameter< const int >::type multiple_method_int(multiple_method_intSEXP);
    Rcpp::traits::input_parameter< const double >::type fwe_level(fwe_levelSEXP);
    Rcpp::traits::input_parameter< const int >::type n_mc(n_mcSEXP);
    rcpp_result_gen = Rcpp::wrap(skipcor_matrix_cpp(X, method_int, stand, use_mad, gval, min_n, n_threads, return_masks, return_inference, conf_level, n_boot, seed, multiple_method_int, fwe_level, n_mc));
    return rcpp_result_gen;
END_RCPP
}
// sss_cor_cpp
arma::mat sss_cor_cpp(SEXP X_);
RcppExport SEXP _matrixCorr_sss_cor_cpp(SEXP X_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    rcpp_result_gen = Rcpp::wrap(sss_cor_cpp(X_));
    return rcpp_result_gen;
END_RCPP
}
// spearman_matrix_cpp
arma::mat spearman_matrix_cpp(SEXP X_);
RcppExport SEXP _matrixCorr_spearman_matrix_cpp(SEXP X_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    rcpp_result_gen = Rcpp::wrap(spearman_matrix_cpp(X_));
    return rcpp_result_gen;
END_RCPP
}
// spearman_matrix_pairwise_cpp
Rcpp::List spearman_matrix_pairwise_cpp(SEXP X_, const bool return_ci, const double conf_level);
RcppExport SEXP _matrixCorr_spearman_matrix_pairwise_cpp(SEXP X_SEXP, SEXP return_ciSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const bool >::type return_ci(return_ciSEXP);
    Rcpp::traits::input_parameter< const double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(spearman_matrix_pairwise_cpp(X_, return_ci, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// spearman_threshold_triplets_cpp
Rcpp::List spearman_threshold_triplets_cpp(SEXP X_, const double threshold, const bool diag, const int block_size);
RcppExport SEXP _matrixCorr_spearman_threshold_triplets_cpp(SEXP X_SEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type X_(X_SEXP);
    Rcpp::traits::input_parameter< const double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< const int >::type block_size(block_sizeSEXP);
    rcpp_result_gen = Rcpp::wrap(spearman_threshold_triplets_cpp(X_, threshold, diag, block_size));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_tetrachoric_mle_cpp
double matrixCorr_tetrachoric_mle_cpp(Rcpp::NumericMatrix tab, double correct);
RcppExport SEXP _matrixCorr_matrixCorr_tetrachoric_mle_cpp(SEXP tabSEXP, SEXP correctSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_tetrachoric_mle_cpp(tab, correct));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_tetrachoric_fixed_cpp
double matrixCorr_tetrachoric_fixed_cpp(Rcpp::NumericMatrix tab, double rc, double cc, double correct);
RcppExport SEXP _matrixCorr_matrixCorr_tetrachoric_fixed_cpp(SEXP tabSEXP, SEXP rcSEXP, SEXP ccSEXP, SEXP correctSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type rc(rcSEXP);
    Rcpp::traits::input_parameter< double >::type cc(ccSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_tetrachoric_fixed_cpp(tab, rc, cc, correct));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polychoric_mle_cpp
double matrixCorr_polychoric_mle_cpp(NumericMatrix tab, double correct);
RcppExport SEXP _matrixCorr_matrixCorr_polychoric_mle_cpp(SEXP tabSEXP, SEXP correctSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polychoric_mle_cpp(tab, correct));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polychoric_fixed_cpp
double matrixCorr_polychoric_fixed_cpp(NumericMatrix tab, NumericVector rc_in, NumericVector cc_in);
RcppExport SEXP _matrixCorr_matrixCorr_polychoric_fixed_cpp(SEXP tabSEXP, SEXP rc_inSEXP, SEXP cc_inSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type rc_in(rc_inSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type cc_in(cc_inSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polychoric_fixed_cpp(tab, rc_in, cc_in));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_tetrachoric_matrix_cpp
NumericMatrix matrixCorr_tetrachoric_matrix_cpp(IntegerMatrix x, NumericVector tau, double correct, bool pairwise_complete);
RcppExport SEXP _matrixCorr_matrixCorr_tetrachoric_matrix_cpp(SEXP xSEXP, SEXP tauSEXP, SEXP correctSEXP, SEXP pairwise_completeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise_complete(pairwise_completeSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_tetrachoric_matrix_cpp(x, tau, correct, pairwise_complete));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polychoric_matrix_cpp
NumericMatrix matrixCorr_polychoric_matrix_cpp(IntegerMatrix x, IntegerVector n_levels, NumericMatrix tau_mat, bool global_all, double correct, bool pairwise_complete);
RcppExport SEXP _matrixCorr_matrixCorr_polychoric_matrix_cpp(SEXP xSEXP, SEXP n_levelsSEXP, SEXP tau_matSEXP, SEXP global_allSEXP, SEXP correctSEXP, SEXP pairwise_completeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type n_levels(n_levelsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type tau_mat(tau_matSEXP);
    Rcpp::traits::input_parameter< bool >::type global_all(global_allSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise_complete(pairwise_completeSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polychoric_matrix_cpp(x, n_levels, tau_mat, global_all, correct, pairwise_complete));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_biserial_latent_cpp
double matrixCorr_biserial_latent_cpp(NumericVector x, LogicalVector y);
RcppExport SEXP _matrixCorr_matrixCorr_biserial_latent_cpp(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< LogicalVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_biserial_latent_cpp(x, y));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polyserial_mle_cpp
double matrixCorr_polyserial_mle_cpp(NumericVector x, IntegerVector y);
RcppExport SEXP _matrixCorr_matrixCorr_polyserial_mle_cpp(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< IntegerVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polyserial_mle_cpp(x, y));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polyserial_negloglik_cpp
double matrixCorr_polyserial_negloglik_cpp(NumericVector z, IntegerVector y, NumericVector pars, double maxcor);
RcppExport SEXP _matrixCorr_matrixCorr_polyserial_negloglik_cpp(SEXP zSEXP, SEXP ySEXP, SEXP parsSEXP, SEXP maxcorSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type z(zSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type maxcor(maxcorSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polyserial_negloglik_cpp(z, y, pars, maxcor));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_tetrachoric_inference_cpp
List matrixCorr_tetrachoric_inference_cpp(NumericMatrix tab, double correct, double conf_level);
RcppExport SEXP _matrixCorr_matrixCorr_tetrachoric_inference_cpp(SEXP tabSEXP, SEXP correctSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_tetrachoric_inference_cpp(tab, correct, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polychoric_inference_cpp
List matrixCorr_polychoric_inference_cpp(NumericMatrix tab, double correct, double conf_level);
RcppExport SEXP _matrixCorr_matrixCorr_polychoric_inference_cpp(SEXP tabSEXP, SEXP correctSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polychoric_inference_cpp(tab, correct, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polyserial_inference_cpp
List matrixCorr_polyserial_inference_cpp(NumericVector x, IntegerVector y, double conf_level);
RcppExport SEXP _matrixCorr_matrixCorr_polyserial_inference_cpp(SEXP xSEXP, SEXP ySEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polyserial_inference_cpp(x, y, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// matrixCorr_polydi_mle_cpp
double matrixCorr_polydi_mle_cpp(NumericMatrix tab, double correct);
RcppExport SEXP _matrixCorr_matrixCorr_polydi_mle_cpp(SEXP tabSEXP, SEXP correctSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type tab(tabSEXP);
    Rcpp::traits::input_parameter< double >::type correct(correctSEXP);
    rcpp_result_gen = Rcpp::wrap(matrixCorr_polydi_mle_cpp(tab, correct));
    return rcpp_result_gen;
END_RCPP
}
// validate_corr_input_cpp
Rcpp::NumericMatrix validate_corr_input_cpp(SEXP data, bool check_na);
RcppExport SEXP _matrixCorr_validate_corr_input_cpp(SEXP dataSEXP, SEXP check_naSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type data(dataSEXP);
    Rcpp::traits::input_parameter< bool >::type check_na(check_naSEXP);
    rcpp_result_gen = Rcpp::wrap(validate_corr_input_cpp(data, check_na));
    return rcpp_result_gen;
END_RCPP
}
// complete_case_matrix_cpp
Rcpp::List complete_case_matrix_cpp(Rcpp::NumericMatrix x);
RcppExport SEXP _matrixCorr_complete_case_matrix_cpp(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(complete_case_matrix_cpp(x));
    return rcpp_result_gen;
END_RCPP
}
// weighted_kappa_pair_cpp
Rcpp::List weighted_kappa_pair_cpp(Rcpp::IntegerVector x, Rcpp::IntegerVector y, Rcpp::NumericMatrix weights, bool return_inference, double conf_level);
RcppExport SEXP _matrixCorr_weighted_kappa_pair_cpp(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(weighted_kappa_pair_cpp(x, y, weights, return_inference, conf_level));
    return rcpp_result_gen;
END_RCPP
}
// weighted_kappa_matrix_cpp
Rcpp::List weighted_kappa_matrix_cpp(Rcpp::IntegerMatrix X, Rcpp::NumericMatrix weights, bool pairwise_complete, bool return_inference, double conf_level, int n_threads);
RcppExport SEXP _matrixCorr_weighted_kappa_matrix_cpp(SEXP XSEXP, SEXP weightsSEXP, SEXP pairwise_completeSEXP, SEXP return_inferenceSEXP, SEXP conf_levelSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< bool >::type pairwise_complete(pairwise_completeSEXP);
    Rcpp::traits::input_parameter< bool >::type return_inference(return_inferenceSEXP);
    Rcpp::traits::input_parameter< double >::type conf_level(conf_levelSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(weighted_kappa_matrix_cpp(X, weights, pairwise_complete, return_inference, conf_level, n_threads));
    return rcpp_result_gen;
END_RCPP
}
// weighted_kappa_threshold_triplets_cpp
Rcpp::List weighted_kappa_threshold_triplets_cpp(Rcpp::IntegerMatrix X, Rcpp::NumericMatrix weights, double threshold, bool diag, int block_size, int n_threads);
RcppExport SEXP _matrixCorr_weighted_kappa_threshold_triplets_cpp(SEXP XSEXP, SEXP weightsSEXP, SEXP thresholdSEXP, SEXP diagSEXP, SEXP block_sizeSEXP, SEXP n_threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< double >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< bool >::type diag(diagSEXP);
    Rcpp::traits::input_parameter< int >::type block_size(block_sizeSEXP);
    Rcpp::traits::input_parameter< int >::type n_threads(n_threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(weighted_kappa_threshold_triplets_cpp(X, weights, threshold, diag, block_size, n_threads));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_matrixCorr_bicor_matrix_cpp", (DL_FUNC) &_matrixCorr_bicor_matrix_cpp, 5},
    {"_matrixCorr_bicor_vec_cpp", (DL_FUNC) &_matrixCorr_bicor_vec_cpp, 5},
    {"_matrixCorr_bicor_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_bicor_matrix_pairwise_cpp, 6},
    {"_matrixCorr_bicor_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_bicor_threshold_triplets_cpp, 8},
    {"_matrixCorr_bicor_matrix_weighted_cpp", (DL_FUNC) &_matrixCorr_bicor_matrix_weighted_cpp, 6},
    {"_matrixCorr_bicor_matrix_weighted_pairwise_cpp", (DL_FUNC) &_matrixCorr_bicor_matrix_weighted_pairwise_cpp, 7},
    {"_matrixCorr_bland_altman_cpp", (DL_FUNC) &_matrixCorr_bland_altman_cpp, 7},
    {"_matrixCorr_ba_openmp_threads", (DL_FUNC) &_matrixCorr_ba_openmp_threads, 0},
    {"_matrixCorr_ba_rm_slope_scale_cpp", (DL_FUNC) &_matrixCorr_ba_rm_slope_scale_cpp, 1},
    {"_matrixCorr_ba_rm_complete_pairs_cpp", (DL_FUNC) &_matrixCorr_ba_rm_complete_pairs_cpp, 4},
    {"_matrixCorr_bland_altman_repeated_em_ext_cpp", (DL_FUNC) &_matrixCorr_bland_altman_repeated_em_ext_cpp, 13},
    {"_matrixCorr_ccc_glmm_poisson_prepare_blocks_cpp", (DL_FUNC) &_matrixCorr_ccc_glmm_poisson_prepare_blocks_cpp, 4},
    {"_matrixCorr_ccc_glmm_poisson_ghq_nll_blocks_cpp", (DL_FUNC) &_matrixCorr_ccc_glmm_poisson_ghq_nll_blocks_cpp, 9},
    {"_matrixCorr_ccc_glmm_poisson_ghq_nll_cpp", (DL_FUNC) &_matrixCorr_ccc_glmm_poisson_ghq_nll_cpp, 8},
    {"_matrixCorr_cccUst_rcpp", (DL_FUNC) &_matrixCorr_cccUst_rcpp, 11},
    {"_matrixCorr_set_omp_threads", (DL_FUNC) &_matrixCorr_set_omp_threads, 1},
    {"_matrixCorr_get_omp_threads", (DL_FUNC) &_matrixCorr_get_omp_threads, 0},
    {"_matrixCorr_build_L_Dm_cpp", (DL_FUNC) &_matrixCorr_build_L_Dm_cpp, 7},
    {"_matrixCorr_build_L_Dm_Z_cpp", (DL_FUNC) &_matrixCorr_build_L_Dm_Z_cpp, 11},
    {"_matrixCorr_ccc_vc_cpp", (DL_FUNC) &_matrixCorr_ccc_vc_cpp, 24},
    {"_matrixCorr_chatterjee_xi_vec_cpp", (DL_FUNC) &_matrixCorr_chatterjee_xi_vec_cpp, 4},
    {"_matrixCorr_chatterjee_xi_matrix_cpp", (DL_FUNC) &_matrixCorr_chatterjee_xi_matrix_cpp, 4},
    {"_matrixCorr_chatterjee_xi_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_chatterjee_xi_matrix_pairwise_cpp, 10},
    {"_matrixCorr_cia_moments_cpp", (DL_FUNC) &_matrixCorr_cia_moments_cpp, 9},
    {"_matrixCorr_cia_pairwise_stats_cpp", (DL_FUNC) &_matrixCorr_cia_pairwise_stats_cpp, 8},
    {"_matrixCorr_cia_pairwise_bootstrap_est_cpp", (DL_FUNC) &_matrixCorr_cia_pairwise_bootstrap_est_cpp, 10},
    {"_matrixCorr_cia_overall_balanced_cpp", (DL_FUNC) &_matrixCorr_cia_overall_balanced_cpp, 8},
    {"_matrixCorr_cia_rm_anova_cpp", (DL_FUNC) &_matrixCorr_cia_rm_anova_cpp, 10},
    {"_matrixCorr_cia_rm_delta_cpp", (DL_FUNC) &_matrixCorr_cia_rm_delta_cpp, 11},
    {"_matrixCorr_cohen_kappa_pair_cpp", (DL_FUNC) &_matrixCorr_cohen_kappa_pair_cpp, 5},
    {"_matrixCorr_cohen_kappa_matrix_cpp", (DL_FUNC) &_matrixCorr_cohen_kappa_matrix_cpp, 6},
    {"_matrixCorr_cohen_kappa_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_cohen_kappa_threshold_triplets_cpp, 6},
    {"_matrixCorr_ccc_cpp", (DL_FUNC) &_matrixCorr_ccc_cpp, 1},
    {"_matrixCorr_ccc_with_ci_cpp", (DL_FUNC) &_matrixCorr_ccc_with_ci_cpp, 2},
    {"_matrixCorr_openmp_threads", (DL_FUNC) &_matrixCorr_openmp_threads, 0},
    {"_matrixCorr_ccc_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_ccc_threshold_triplets_cpp, 4},
    {"_matrixCorr_ustat_dcor", (DL_FUNC) &_matrixCorr_ustat_dcor, 2},
    {"_matrixCorr_ustat_dcor_matrix_cpp", (DL_FUNC) &_matrixCorr_ustat_dcor_matrix_cpp, 1},
    {"_matrixCorr_ustat_dcor_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_ustat_dcor_matrix_pairwise_cpp, 2},
    {"_matrixCorr_robust_dcor_matrix_cpp", (DL_FUNC) &_matrixCorr_robust_dcor_matrix_cpp, 3},
    {"_matrixCorr_robust_dcor_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_robust_dcor_matrix_pairwise_cpp, 6},
    {"_matrixCorr_gwet_ac_pair_cpp", (DL_FUNC) &_matrixCorr_gwet_ac_pair_cpp, 6},
    {"_matrixCorr_gwet_ac_matrix_cpp", (DL_FUNC) &_matrixCorr_gwet_ac_matrix_cpp, 7},
    {"_matrixCorr_gwet_ac_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_gwet_ac_threshold_triplets_cpp, 7},
    {"_matrixCorr_gwet_ac_counts_cpp", (DL_FUNC) &_matrixCorr_gwet_ac_counts_cpp, 6},
    {"_matrixCorr_gwet_ac_ratings_cpp", (DL_FUNC) &_matrixCorr_gwet_ac_ratings_cpp, 9},
    {"_matrixCorr_hsic_matrix_cpp", (DL_FUNC) &_matrixCorr_hsic_matrix_cpp, 5},
    {"_matrixCorr_hsic_raw_biased_matrix_object_cpp", (DL_FUNC) &_matrixCorr_hsic_raw_biased_matrix_object_cpp, 6},
    {"_matrixCorr_hsic_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_hsic_matrix_pairwise_cpp, 8},
    {"_matrixCorr_icc_matrix_cpp", (DL_FUNC) &_matrixCorr_icc_matrix_cpp, 7},
    {"_matrixCorr_icc_overall_cpp", (DL_FUNC) &_matrixCorr_icc_overall_cpp, 3},
    {"_matrixCorr_kendall_matrix_cpp", (DL_FUNC) &_matrixCorr_kendall_matrix_cpp, 1},
    {"_matrixCorr_kendall_tau2_cpp", (DL_FUNC) &_matrixCorr_kendall_tau2_cpp, 2},
    {"_matrixCorr_kendall_tau2_from_mat_cpp", (DL_FUNC) &_matrixCorr_kendall_tau2_from_mat_cpp, 1},
    {"_matrixCorr_kendall_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_kendall_matrix_pairwise_cpp, 4},
    {"_matrixCorr_krippendorff_alpha_core_cpp", (DL_FUNC) &_matrixCorr_krippendorff_alpha_core_cpp, 5},
    {"_matrixCorr_multirater_kappa_counts_cpp", (DL_FUNC) &_matrixCorr_multirater_kappa_counts_cpp, 6},
    {"_matrixCorr_multirater_kappa_ratings_cpp", (DL_FUNC) &_matrixCorr_multirater_kappa_ratings_cpp, 10},
    {"_matrixCorr_partial_correlation_cpp", (DL_FUNC) &_matrixCorr_partial_correlation_cpp, 5},
    {"_matrixCorr_pearson_matrix_cpp", (DL_FUNC) &_matrixCorr_pearson_matrix_cpp, 1},
    {"_matrixCorr_pearson_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_pearson_threshold_triplets_cpp, 4},
    {"_matrixCorr_pearson_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_pearson_matrix_pairwise_cpp, 3},
    {"_matrixCorr_prob_agree_fit_cpp", (DL_FUNC) &_matrixCorr_prob_agree_fit_cpp, 12},
    {"_matrixCorr_rmcorr_pair_cpp", (DL_FUNC) &_matrixCorr_rmcorr_pair_cpp, 4},
    {"_matrixCorr_rmcorr_pair_weighted_cpp", (DL_FUNC) &_matrixCorr_rmcorr_pair_weighted_cpp, 4},
    {"_matrixCorr_rmcorr_matrix_cpp", (DL_FUNC) &_matrixCorr_rmcorr_matrix_cpp, 6},
    {"_matrixCorr_rmcorr_matrix_weighted_cpp", (DL_FUNC) &_matrixCorr_rmcorr_matrix_weighted_cpp, 6},
    {"_matrixCorr_pbcor_matrix_cpp", (DL_FUNC) &_matrixCorr_pbcor_matrix_cpp, 3},
    {"_matrixCorr_pbcor_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_pbcor_threshold_triplets_cpp, 6},
    {"_matrixCorr_pbcor_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_pbcor_matrix_pairwise_cpp, 4},
    {"_matrixCorr_wincor_matrix_cpp", (DL_FUNC) &_matrixCorr_wincor_matrix_cpp, 3},
    {"_matrixCorr_wincor_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_wincor_threshold_triplets_cpp, 6},
    {"_matrixCorr_wincor_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_wincor_matrix_pairwise_cpp, 4},
    {"_matrixCorr_skipcor_matrix_cpp", (DL_FUNC) &_matrixCorr_skipcor_matrix_cpp, 15},
    {"_matrixCorr_sss_cor_cpp", (DL_FUNC) &_matrixCorr_sss_cor_cpp, 1},
    {"_matrixCorr_spearman_matrix_cpp", (DL_FUNC) &_matrixCorr_spearman_matrix_cpp, 1},
    {"_matrixCorr_spearman_matrix_pairwise_cpp", (DL_FUNC) &_matrixCorr_spearman_matrix_pairwise_cpp, 3},
    {"_matrixCorr_spearman_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_spearman_threshold_triplets_cpp, 4},
    {"_matrixCorr_matrixCorr_tetrachoric_mle_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_tetrachoric_mle_cpp, 2},
    {"_matrixCorr_matrixCorr_tetrachoric_fixed_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_tetrachoric_fixed_cpp, 4},
    {"_matrixCorr_matrixCorr_polychoric_mle_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polychoric_mle_cpp, 2},
    {"_matrixCorr_matrixCorr_polychoric_fixed_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polychoric_fixed_cpp, 3},
    {"_matrixCorr_matrixCorr_tetrachoric_matrix_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_tetrachoric_matrix_cpp, 4},
    {"_matrixCorr_matrixCorr_polychoric_matrix_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polychoric_matrix_cpp, 6},
    {"_matrixCorr_matrixCorr_biserial_latent_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_biserial_latent_cpp, 2},
    {"_matrixCorr_matrixCorr_polyserial_mle_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polyserial_mle_cpp, 2},
    {"_matrixCorr_matrixCorr_polyserial_negloglik_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polyserial_negloglik_cpp, 4},
    {"_matrixCorr_matrixCorr_tetrachoric_inference_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_tetrachoric_inference_cpp, 3},
    {"_matrixCorr_matrixCorr_polychoric_inference_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polychoric_inference_cpp, 3},
    {"_matrixCorr_matrixCorr_polyserial_inference_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polyserial_inference_cpp, 3},
    {"_matrixCorr_matrixCorr_polydi_mle_cpp", (DL_FUNC) &_matrixCorr_matrixCorr_polydi_mle_cpp, 2},
    {"_matrixCorr_validate_corr_input_cpp", (DL_FUNC) &_matrixCorr_validate_corr_input_cpp, 2},
    {"_matrixCorr_complete_case_matrix_cpp", (DL_FUNC) &_matrixCorr_complete_case_matrix_cpp, 1},
    {"_matrixCorr_weighted_kappa_pair_cpp", (DL_FUNC) &_matrixCorr_weighted_kappa_pair_cpp, 5},
    {"_matrixCorr_weighted_kappa_matrix_cpp", (DL_FUNC) &_matrixCorr_weighted_kappa_matrix_cpp, 6},
    {"_matrixCorr_weighted_kappa_threshold_triplets_cpp", (DL_FUNC) &_matrixCorr_weighted_kappa_threshold_triplets_cpp, 6},
    {NULL, NULL, 0}
};

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