std::array<const unsigned char, 256>
revcomp_4NT;
44 externstd::array<const char, 4>
bin2NT;
50 inline staticu_int64_t
oahash64(u_int64_t elem)
52u_int64_t
code= elem;
99 static bool first=
true;
124 intsizeKmer = kmer.size();
125 for(
int i= 0;
i< sizeKmer;
i++) {
131 template<
typenameT>
133 for(
T i=
a;
i<
b; ++
i) {
185 if(coeff == 2 || coeff == 4)
197printf(
"unsupported LargeInt multiplication: %d\n",coeff);
221 for(
intj = 1; j >= 0; --j)
223u_int64_t
n= (
r<< 32) | ((this->
value[
i] >> (32*j)) & mask32bits );
224 result.value[
i] =
result.value[
i] | (((
n/ divisor) & mask32bits) << (32*j));
243 for(
intj = 1; j >= 0; --j)
245u_int64_t
n= (
r<< 32) | ((this->
value[
i] >> (32*j)) & mask32bits );
315 result.value[
i] = ~this->value[
i];
330 intlarge_shift = coeff / 64;
331 intsmall_shift = coeff % 64;
337 if(small_shift == 0)
343 result.value[
i+1] = this->
value[
i-large_shift] >> (64 - small_shift);
362 intlarge_shift = coeff / 64;
363 intsmall_shift = coeff % 64;
365 result.value[0] = (this->
value[large_shift] >> small_shift);
369 result.value[
i] = (this->
value[
i+large_shift] >> small_shift);
370 if(small_shift == 0)
376 result.value[
i-1] =
result.value[
i-1] | (this->
value[
i+large_shift] << (64 - small_shift));
439*
this= *
this+ other;
483*(
this) = (*
this) << coeff;
return*
this;
493*(
this) = (*
this) >> coeff;
return*
this;
513 for( ;
i>=0 ;
i--) { s <<
l.value[
i];
if(
i>=1) { s <<
"."; } }
529 template<
typenameMap>
533 for(
size_t i=0;
i<
size; ++
i) { res = res * 4 + fct(
data[
i]); }
545 for(
size_t i=0;
i<sizeKmer;
i++) { seq[sizeKmer-
i-1] =
bin2NT[(*this)[
i]]; }
556u_int8_t
operator[](
size_tidx)
const{
return(this->
value[idx/32] >> (2*idx%64)) & 3; }
563chunk = (intermediate &
mask).
value[0];
564intermediate = intermediate >> 64;
582 unsigned char* kmerrev = (
unsigned char*) (&(res.
value[0]));
583 unsigned char* kmer = (
unsigned char*) (&(x.
value[0]));
590 return(res >> (2*( 32*
precision- sizeKmer)) ) ;
std::array< const unsigned char, 256 > revcomp_4NT
std::array< const char, 4 > bin2NT
ncbi::TMaskedQueryRegions mask
LargeInt & operator+=(const LargeInt &other)
Operator +=.
LargeInt operator-(const LargeInt &other) const
Operator -.
LargeInt operator|(const LargeInt &other) const
Operator |.
LargeInt(const std::string &kmer)
LargeInt operator/(const uint32_t &divisor) const
Operator /.
LargeInt & operator>>=(const int &coeff)
Operator >>=.
friend std::ostream & operator<<(std::ostream &s, const LargeInt< precision > &l)
Output stream operator for the IntegerTemplate class.
LargeInt operator&(const char &other) const
Operator &.
LargeInt & operator|=(const LargeInt &other)
Operator |=.
bool operator<(const LargeInt &c) const
Operator <.
u_int64_t value[precision]
bool operator==(const LargeInt &c) const
Operator ==.
LargeInt & operator&=(const LargeInt &other)
Operator &=.
LargeInt(const T &a, const T &b)
LargeInt operator&(const LargeInt &other) const
Operator &.
u_int64_t getVal() const
Get the 64 less significant bits of the LargeInt object as a native integer type.
std::string toString(size_t sizeKmer) const
Print corresponding kmer in ASCII.
bool operator<=(const LargeInt &c) const
Operator <=.
static const size_t getSize()
Get the size of an instance of the class.
LargeInt(const u_int64_t &val=0)
Constructor.
LargeInt operator>>(const int &coeff) const
Operator >>.
bool operator!=(const LargeInt &c) const
Operator !=.
LargeInt operator~() const
Operator ~.
static const char * getName()
Get the name of the class used by the variant (ie.
LargeInt & operator<<=(const int &coeff)
Operator <<=.
LargeInt & operator^=(const LargeInt &other)
Operator ^=.
uint32_t operator%(const uint32_t &divisor) const
Operator %.
LargeInt operator^(const LargeInt &other) const
Operator ^.
u_int8_t operator[](size_t idx) const
Operator[] access the ith nucleotide in the given integer.
friend LargeInt< T > revcomp(const LargeInt< T > &i, size_t sizeKmer)
static LargeInt polynom(const char *data, size_t size, Map fct)
Computes a kmer value as polynom.
LargeInt operator<<(const int &coeff) const
Operator <<.
LargeInt operator+(const LargeInt &other) const
Operator +.
LargeInt operator*(const int &coeff) const
Operator *.
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
CRange< Position > Map(const CRange< Position > &target, const CRange< Position > &range)
static void hex(unsigned char c)
static u_int64_t oahash64(u_int64_t elem)
LargeInt< precision > revcomp(const LargeInt< precision > &x, size_t sizeKmer)
const struct ncbi::grid::netcache::search::fields::SIZE size
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4