22#ifndef Rcpp__sugar__not_h
23#define Rcpp__sugar__not_h
28 template <
int RTYPE,
bool NA>
41 return x ? FALSE : TRUE ;
47 inline int apply(
double x )
const {
54 inline int apply(
double x )
const {
55 return ( x == 0.0 ? FALSE : TRUE ) ;
61 inline int apply( Rcomplex x )
const {
68 inline int apply( Rcomplex x )
const {
69 return ((x.r == 0.0) & (x.i == 0.0) ) ? FALSE : TRUE ;
75 template <
int RTYPE,
bool NA,
typename T>
86 return op.apply(
lhs[i] ) ;
89 inline R_xlen_t
size()
const {
return lhs.size() ; }
99template <
int RTYPE,
bool NA,
typename T>
STORAGE operator[](R_xlen_t i) const
not_< RTYPE, NA > OPERATOR
traits::storage_type< RTYPE >::type STORAGE
Not_Vector(const VEC_TYPE &lhs_)
Rcpp::VectorBase< RTYPE, NA, T > VEC_TYPE
int apply(Rcomplex x) const
int apply(Rcomplex x) const
int apply(double x) const
int apply(double x) const
int apply(STORAGE x) const
Rcpp::traits::storage_type< RTYPE >::type STORAGE
int apply(STORAGE x) const
traits::storage_type< RTYPE >::type STORAGE
Rcpp::sugar::Negate_SingleLogicalResult< NA, T > operator!(const Rcpp::sugar::SingleLogicalResult< NA, T > &x)
bool is_na(typename storage_type< RTYPE >::type)
bool is_na< REALSXP >(double x)
bool is_na< CPLXSXP >(Rcomplex x)