Le 28/07/2017 à 13:45, Dirk Eddelbuettel a écrit :

On 27 July 2017 at 18:37, Serguei Sokol wrote:
| I can hear from here "Oh no, not again this question!" ;)

;-)

| But this time it is not a question it is a feature suggestion.
| What if we replace in RcppArmadilloWrap.h:64:
|      template <typename T> SEXP wrap( const arma::Col<T>& data ){
|          return RcppArmadillo::arma_wrap( data, Dimension( data.n_elem, 1) ) ;
|      }
| by something like:
|      template <typename T> SEXP wrap( const arma::Col<T>& data ){
| #ifdef RETURN_COLVEC_AS_VECTOR
|          return RcppArmadillo::arma_wrap( data ) ;
| #else
|          return RcppArmadillo::arma_wrap( data, Dimension( data.n_elem, 1) ) ;
| #endif
|      }
|
| In this way, a legacy code relying on one column matrix is not impacted,
| while other users can define a macro RETURN_COLVEC_AS_VECTOR
| before "#include <Rcpp>" and enjoy a more intuitive behavior.
|
| Was it already proposed and rejected?

Don't think so, but I have thought about it too, and I was planning to bring
this up.  I also find the 'always forced to be dimension one matrix' to be a
(very early) design decision I would not make again.  And I have been
thinking along similar lines---we need an option to restore it / keep it as
the defaults, and a newer alternative to let this collapse to a dimless
vector.  What you rprose could work (maybe by prefixing RCPP_ARMADILLO_ to
the #define though).
Cool. Then to be complete, we can think about a full set of options, smth. like:
RCPP_ARMADILLO_RETURN_COLVEC_AS_VECTOR
RCPP_ARMADILLO_RETURN_ROWVEC_AS_VECTOR
RCPP_ARMADILLO_RETURN_ANYVEC_AS_VECTOR

Serguei.
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to