#include "RcppArmadillo.h"
using namespace Rcpp;
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
List parse_sparse_csv_impl(SEXP fname) {
using namespace Rcpp;
std::string v = Rcpp::as<std::string>(fname);
arma::sp_mat D;
D.load(v, arma::csv_ascii);
return Rcpp::List::create(Rcpp::Named("sp")=D);
}
On Mon, May 10, 2021 at 11:19 PM Dirk Eddelbuettel <edd at debian.org
<mailto:edd at debian.org>> wrote:
Vincent,
In the broad terms of the question the best answer may be a simple
"sure".
More seriously, there have been many approaches. Consider for
example the
recent Rcpp Gallery post lead by Zach (with some edits by me):
https://gallery.rcpp.org/articles/sparse-matrix-class/
<https://gallery.rcpp.org/articles/sparse-matrix-class/>
It's focus on not copying <i,p,x> again if we already have them as R
vectors,
which is a fair point. If the goal is to get to SuperLU via
(Rcpp)Armadillo
then I do not think you can avoid the (internal) copies. As always, the
answer may be "it depends".
Hope this helps, happy to refine, Dirk
--
https://dirk.eddelbuettel.com <https://dirk.eddelbuettel.com> |
@eddelbuettel | edd at debian.org <mailto:edd at debian.org>
The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the
e-mail
contains patient information, please contact the Partners
Compliance HelpLine at
http://www.partners.org/complianceline
<http://www.partners.org/complianceline>Â . If the e-mail was sent to you
in error
but does not contain patient information, please contact the sender and
properly
dispose of the e-mail.