<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Dear Rcpp developers,</div><div class=""><br class=""></div><div class="">I wrote seq(from, to, by) function for Rcpp::sugar.</div><div class="">It worked for me to generate numerical sequence in ascending/descending order and absolute value of the common difference is smaller than 1</div><div class=""><br class=""></div><div class="">It is great pleasure if you consider the function is correct and it could be integrated into Rcpp package.</div><div class=""><br class=""></div><div class=""><div class="">Best regards,</div><div class=""><br class=""></div><div class="">Masaki Tsuda</div><div class=""><br class=""></div></div><div class=""><br class=""></div><div class="">========</div><div class=""><br class=""></div><div class=""><div class="">namespace Rcpp{</div><div class="">namespace sugar{</div><div class=""><br class=""></div><div class="">class Seq : public VectorBase< REALSXP,false,Seq > {</div><div class="">public:</div><div class="">    Seq( double from_, double to_ , double by_ = 1.0) : from(from_), by(by_), len(((to_-from_)/by_)+1) {</div><div class="">        if(from_ <= to_){</div><div class="">            if(by_ < 0.0) stop("'by' shuld be positive when 'to' is greater than 'from'.");</div><div class="">        } else {</div><div class="">            if(by_ == 1.0) by = -1.0;</div><div class="">            else if(by_ > 0.0) stop("'by' shuld be negative when 'from' is greater than 'to'.");</div><div class="">            len = (((to_-from_)/by_)+1);</div><div class="">        }</div><div class="">    }</div><div class="">    inline double operator[]( R_xlen_t i ) const {</div><div class="">        return from + i*by ;</div><div class="">    }</div><div class="">    inline R_xlen_t size() const { return len ; }</div><div class="">    </div><div class="">private:</div><div class="">    double from ;</div><div class="">    double by ;</div><div class="">    R_xlen_t len ;</div><div class="">} ;</div><div class=""><br class=""></div><div class="">} // sugar</div><div class=""><br class=""></div><div class="">inline sugar::Seq seq( const double from, const double to , const double by){</div><div class="">    return sugar::Seq( from, to, by ) ;</div><div class="">}</div><div class=""><br class=""></div><div class="">} // Rcpp</div></div><div class=""><br class=""></div><div class="">========</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><br class="">\<br class=""><div apple-content-edited="true" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>