void getPattern(pattern_type & pat, uint64_t i) const { assert ( i >= FI.low && i < FI.high ); uint64_t const j = i-FI.low; uint64_t const offsetbase = longpointers [ designatorrank->rank1(j) ]; uint64_t const codepos = offsetbase + shortpointers[j]; uint8_t const * code = text.begin()+codepos; ::libmaus2::util::GetObject<uint8_t const *> G(code); ::libmaus2::parallel::SynchronousCounter<uint64_t> nextid(i); CompactFastDecoderBase::decode(pat,G,nextid); }
vr scratch() { return vr(this, nextid()); }