22 #ifndef Rcpp__sugar__minus_h
23 #define Rcpp__sugar__minus_h
28 template <
int RTYPE,
bool LHS_NA,
typename LHS_T,
bool RHS_NA,
typename RHS_T >
30 public Rcpp::VectorBase<RTYPE,true, Minus_Vector_Vector<RTYPE,LHS_NA,LHS_T,RHS_NA,RHS_T> > {
43 if( Rcpp::traits::is_na<RTYPE>( x ) )
return x ;
45 return Rcpp::traits::is_na<RTYPE>(
y ) ? y : ( x - y ) ;
48 inline int size()
const {
return lhs.size() ; }
55 template <
bool LHS_NA,
typename LHS_T,
bool RHS_NA,
typename RHS_T >
57 public Rcpp::VectorBase<REALSXP,true, Minus_Vector_Vector<REALSXP,LHS_NA,LHS_T,RHS_NA,RHS_T> > {
71 inline int size()
const {
return lhs.size() ; }
79 template <
int RTYPE,
typename LHS_T,
bool RHS_NA,
typename RHS_T >
80 class Minus_Vector_Vector<RTYPE,false,LHS_T,RHS_NA,RHS_T> :
public Rcpp::VectorBase<RTYPE,true, Minus_Vector_Vector<RTYPE,false,LHS_T,RHS_NA,RHS_T> > {
93 if( Rcpp::traits::is_na<RTYPE>( y ) )
return y ;
97 inline int size()
const {
return lhs.size() ; }
104 template <
typename LHS_T,
bool RHS_NA,
typename RHS_T >
106 public Rcpp::VectorBase<REALSXP,true, Minus_Vector_Vector<REALSXP,false,LHS_T,RHS_NA,RHS_T> > {
120 inline int size()
const {
return lhs.size() ; }
128 template <
int RTYPE,
bool LHS_NA,
typename LHS_T,
typename RHS_T >
129 class Minus_Vector_Vector<RTYPE,LHS_NA,LHS_T,false,RHS_T> :
public Rcpp::VectorBase<RTYPE,true, Minus_Vector_Vector<RTYPE,LHS_NA,LHS_T,false,RHS_T> > {
142 if( Rcpp::traits::is_na<RTYPE>( x ) )
return x ;
146 inline int size()
const {
return lhs.size() ; }
153 template <
bool LHS_NA,
typename LHS_T,
typename RHS_T >
155 public Rcpp::VectorBase<REALSXP,true, Minus_Vector_Vector<REALSXP,LHS_NA,LHS_T,false,RHS_T> > {
169 inline int size()
const {
return lhs.size() ; }
177 template <
int RTYPE,
typename LHS_T,
typename RHS_T >
179 public Rcpp::VectorBase<RTYPE,false, Minus_Vector_Vector<RTYPE,false,LHS_T,false,RHS_T> > {
194 inline int size()
const {
return lhs.size() ; }
200 template <
typename LHS_T,
typename RHS_T >
202 public Rcpp::VectorBase<REALSXP,false, Minus_Vector_Vector<REALSXP,false,LHS_T,false,RHS_T> > {
216 inline int size()
const {
return lhs.size() ; }
227 template <
int RTYPE,
bool NA,
typename T>
241 return Rcpp::traits::is_na<RTYPE>(
x) ? x : (x -
rhs) ;
244 inline int size()
const {
return lhs.size() ; }
251 template <
bool NA,
typename T>
253 public Rcpp::VectorBase<REALSXP,true, Minus_Vector_Primitive<REALSXP,NA,T> > {
265 inline int size()
const {
return lhs.size() ; }
273 template <
int RTYPE,
typename T>
275 public Rcpp::VectorBase<RTYPE,true, Minus_Vector_Primitive<RTYPE,false,T> > {
287 return Rcpp::traits::is_na<RTYPE>(
x) ? x : (x -
rhs) ;
290 inline int size()
const {
return lhs.size() ; }
297 template <
typename T>
299 public Rcpp::VectorBase<REALSXP,true, Minus_Vector_Primitive<REALSXP,false,T> > {
311 inline int size()
const {
return lhs.size() ; }
323 template <
int RTYPE,
bool NA,
typename T>
338 inline int size()
const {
return rhs.size() ; }
345 template <
bool NA,
typename T>
347 public Rcpp::VectorBase<REALSXP,true, Minus_Primitive_Vector<REALSXP,NA,T> > {
358 inline int size()
const {
return rhs.size() ; }
367 template <
int RTYPE,
typename T>
369 public Rcpp::VectorBase<RTYPE,true, Minus_Primitive_Vector<RTYPE,false,T> > {
383 inline int size()
const {
return rhs.size() ; }
391 template <
typename T>
393 public Rcpp::VectorBase<REALSXP,true, Minus_Primitive_Vector<REALSXP,false,T> > {
405 inline int size()
const {
return rhs.size() ; }
416 template <
int RTYPE,
bool NA,
typename T>
426 template <
int RTYPE,
bool NA,
typename T>
435 template <
int RTYPE,
bool LHS_NA,
typename LHS_T,
bool RHS_NA,
typename RHS_T>