25#ifndef RCPP__HASH__SELF_HASH_H
26#define RCPP__HASH__SELF_HASH_H
42 while(
m < desired ){
m *= 2 ;
k++ ; }
49 int* res = INTEGER(
result) ;
67 return ! internal::NAEquals<STORAGE>()(
normalize(lhs), rhs);
75 if (addr ==
static_cast<unsigned int>(
m)) addr = 0;
86 unsigned int addr =
get_addr(value) ;
88 if (
src[
data[addr] - 1] == value)
91 if (addr ==
static_cast<unsigned int>(
m)) addr = 0;
103 if (val == 0.0) val = 0.0;
104 if (internal::Rcpp_IsNA(val)) val = NA_REAL;
105 else if (internal::Rcpp_IsNaN(val)) val = R_NaN;
122 addr =
RCPP_HASH(val_u.u[0] + val_u.u[1]);
128 intptr_t val = (intptr_t) value;
130 #if (defined _LP64) || (defined __LP64__) || (defined WIN64)
131 addr =
RCPP_HASH((val & 0xffffffff) ^ (val >> 32));
STORAGE normalize(STORAGE val) const
unsigned int get_index(STORAGE value) const
IntegerVector fill_and_self_match()
unsigned int get_addr(STORAGE value) const
std::vector< int > indices
int add_value_get_index(int i)
traits::storage_type< RTYPE >::type STORAGE
bool not_equal(const STORAGE &lhs, const STORAGE &rhs)
no_init_vector no_init(R_xlen_t size)
Vector< INTSXP > IntegerVector
IntegerVector table(const VectorBase< RTYPE, NA, T > &x)