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

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

// write_arrow_to_bpcells_cpp
Rcpp::List write_arrow_to_bpcells_cpp(std::string output_dir, int n_rows, int n_cols, Rcpp::NumericVector col_scale, Rcpp::Function stream_factory);
RcppExport SEXP _dbMatrix_write_arrow_to_bpcells_cpp(SEXP output_dirSEXP, SEXP n_rowsSEXP, SEXP n_colsSEXP, SEXP col_scaleSEXP, SEXP stream_factorySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::string >::type output_dir(output_dirSEXP);
    Rcpp::traits::input_parameter< int >::type n_rows(n_rowsSEXP);
    Rcpp::traits::input_parameter< int >::type n_cols(n_colsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type col_scale(col_scaleSEXP);
    Rcpp::traits::input_parameter< Rcpp::Function >::type stream_factory(stream_factorySEXP);
    rcpp_result_gen = Rcpp::wrap(write_arrow_to_bpcells_cpp(output_dir, n_rows, n_cols, col_scale, stream_factory));
    return rcpp_result_gen;
END_RCPP
}
// compute_op_svd_arrow_cpp
Rcpp::List compute_op_svd_arrow_cpp(SEXP stream_factory, int n_rows, int n_cols, Rcpp::NumericVector row_offset, Rcpp::NumericVector row_scale, Rcpp::NumericVector col_scale, int k);
RcppExport SEXP _dbMatrix_compute_op_svd_arrow_cpp(SEXP stream_factorySEXP, SEXP n_rowsSEXP, SEXP n_colsSEXP, SEXP row_offsetSEXP, SEXP row_scaleSEXP, SEXP col_scaleSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type stream_factory(stream_factorySEXP);
    Rcpp::traits::input_parameter< int >::type n_rows(n_rowsSEXP);
    Rcpp::traits::input_parameter< int >::type n_cols(n_colsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type row_offset(row_offsetSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type row_scale(row_scaleSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type col_scale(col_scaleSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(compute_op_svd_arrow_cpp(stream_factory, n_rows, n_cols, row_offset, row_scale, col_scale, k));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_dbMatrix_write_arrow_to_bpcells_cpp", (DL_FUNC) &_dbMatrix_write_arrow_to_bpcells_cpp, 5},
    {"_dbMatrix_compute_op_svd_arrow_cpp", (DL_FUNC) &_dbMatrix_compute_op_svd_arrow_cpp, 7},
    {NULL, NULL, 0}
};

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