Dear Rcpp developers, I wrote seq(from, to, by) function for Rcpp::sugar. It worked for me to generate numerical sequence in ascending/descending order and absolute value of the common difference is smaller than 1
It is great pleasure if you consider the function is correct and it could be integrated into Rcpp package. Best regards, Masaki Tsuda ======== namespace Rcpp{ namespace sugar{ class Seq : public VectorBase< REALSXP,false,Seq > { public: Seq( double from_, double to_ , double by_ = 1.0) : from(from_), by(by_), len(((to_-from_)/by_)+1) { if(from_ <= to_){ if(by_ < 0.0) stop("'by' shuld be positive when 'to' is greater than 'from'."); } else { if(by_ == 1.0) by = -1.0; else if(by_ > 0.0) stop("'by' shuld be negative when 'from' is greater than 'to'."); len = (((to_-from_)/by_)+1); } } inline double operator[]( R_xlen_t i ) const { return from + i*by ; } inline R_xlen_t size() const { return len ; } private: double from ; double by ; R_xlen_t len ; } ; } // sugar inline sugar::Seq seq( const double from, const double to , const double by){ return sugar::Seq( from, to, by ) ; } } // Rcpp ======== \
_______________________________________________ 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