2
2
//
3
3
// unroll.h: Rcpp R/C++ interface class library -- loop unrolling macro
4
4
//
5
- // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
5
+ // Copyright (C) 2010 - 2017 Dirk Eddelbuettel and Romain Francois
6
6
//
7
7
// This file is part of Rcpp.
8
8
//
23
23
#define Rcpp__macros_unroll_h
24
24
25
25
#define RCPP_LOOP_UNROLL_PTR (TARGET,SOURCE ) \
26
- int __trip_count = n >> 2 ; \
27
- int i = 0 ; \
26
+ R_xlen_t __trip_count = n >> 2 ; \
27
+ R_xlen_t i = 0 ; \
28
28
for ( ; __trip_count > 0 ; --__trip_count) { \
29
29
*TARGET++ = SOURCE[i++] ; \
30
30
*TARGET++ = SOURCE[i++] ; \
@@ -45,8 +45,8 @@ switch (n - i){ \
45
45
46
46
47
47
#define RCPP_LOOP_UNROLL (TARGET,SOURCE ) \
48
- int __trip_count = n >> 2 ; \
49
- int i = 0 ; \
48
+ R_xlen_t __trip_count = n >> 2 ; \
49
+ R_xlen_t i = 0 ; \
50
50
for ( ; __trip_count > 0 ; --__trip_count) { \
51
51
TARGET[i] = SOURCE[i] ; i++ ; \
52
52
TARGET[i] = SOURCE[i] ; i++ ; \
@@ -65,22 +65,22 @@ switch (n - i){ \
65
65
{} \
66
66
}
67
67
68
- #define RCPP_LOOP_UNROLL_LHSFUN (TARGET,FUN,SOURCE ) \
69
- int __trip_count = n >> 2 ; \
70
- int i = 0 ; \
68
+ #define RCPP_LOOP_UNROLL_LHSFUN (TARGET,FUN,SOURCE ) \
69
+ R_xlen_t __trip_count = n >> 2 ; \
70
+ R_xlen_t i = 0 ; \
71
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++ ; \
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++ ; \
76
76
} \
77
77
switch (n - i){ \
78
78
case 3 : \
79
- TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
79
+ TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
80
80
case 2 : \
81
- TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
81
+ TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
82
82
case 1 : \
83
- TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
83
+ TARGET[FUN (i)] = SOURCE[i] ; i++ ; \
84
84
case 0 : \
85
85
default : \
86
86
{} \
0 commit comments