Go to the documentation of this file.
22 #ifndef Rcpp__macros_unroll_h
23 #define Rcpp__macros_unroll_h
25 #define RCPP_LOOP_UNROLL_PTR(TARGET,SOURCE) \
26 R_xlen_t __trip_count = n >> 2 ; \
28 for ( ; __trip_count > 0 ; --__trip_count) { \
29 *TARGET++ = SOURCE[i++] ; \
30 *TARGET++ = SOURCE[i++] ; \
31 *TARGET++ = SOURCE[i++] ; \
32 *TARGET++ = SOURCE[i++] ; \
36 *TARGET++ = SOURCE[i++] ; \
38 *TARGET++ = SOURCE[i++] ; \
40 *TARGET++ = SOURCE[i++] ; \
47 #define RCPP_LOOP_UNROLL(TARGET,SOURCE) \
48 R_xlen_t __trip_count = n >> 2 ; \
50 for ( ; __trip_count > 0 ; --__trip_count) { \
51 TARGET[i] = SOURCE[i] ; i++ ; \
52 TARGET[i] = SOURCE[i] ; i++ ; \
53 TARGET[i] = SOURCE[i] ; i++ ; \
54 TARGET[i] = SOURCE[i] ; i++ ; \
58 TARGET[i] = SOURCE[i] ; i++ ; \
60 TARGET[i] = SOURCE[i] ; i++ ; \
62 TARGET[i] = SOURCE[i] ; i++ ; \
68 #define RCPP_LOOP_UNROLL_LHSFUN(TARGET,FUN,SOURCE) \
69 R_xlen_t __trip_count = n >> 2 ; \
71 for ( ; __trip_count > 0 ; --__trip_count) { \
72 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
73 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
74 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
75 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
79 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
81 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \
83 TARGET[FUN(i)] = SOURCE[i] ; i++ ; \