reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
95 WordRef = &b.Bits[Idx / BITWORD_SIZE]; 140 Bits = allocate(Capacity); 141 init_words(Bits, t); 149 Bits = MutableArrayRef<BitWord>(); 154 Bits = allocate(Capacity); 155 std::memcpy(Bits.data(), RHS.Bits.data(), Capacity * sizeof(BitWord)); 155 std::memcpy(Bits.data(), RHS.Bits.data(), Capacity * sizeof(BitWord)); 158 BitVector(BitVector &&RHS) : Bits(RHS.Bits), Size(RHS.Size) { 159 RHS.Bits = MutableArrayRef<BitWord>(); 163 ~BitVector() { std::free(Bits.data()); } 175 NumBits += countPopulation(Bits[i]); 182 if (Bits[i] != 0) 190 if (Bits[i] != ~0UL) 195 return Bits[Size / BITWORD_SIZE] == (1UL << Remainder) - 1; 217 BitWord Copy = Bits[i]; 247 BitWord Copy = Bits[CurrentWord]; 277 BitWord Copy = Bits[i]; 309 BitWord Copy = Bits[CurrentWord]; 373 unsigned OldCapacity = Bits.size(); 375 init_words(Bits.drop_front(OldCapacity), t); 398 init_words(Bits, true); 404 assert(Bits.data() && "Bits never allocated"); 405 Bits[Idx / BITWORD_SIZE] |= BitWord(1) << (Idx % BITWORD_SIZE); 420 Bits[I / BITWORD_SIZE] |= Mask; 425 Bits[I / BITWORD_SIZE] |= PrefixMask; 429 Bits[I / BITWORD_SIZE] = ~0UL; 433 Bits[I / BITWORD_SIZE] |= PostfixMask; 439 init_words(Bits, false); 444 Bits[Idx / BITWORD_SIZE] &= ~(BitWord(1) << (Idx % BITWORD_SIZE)); 459 Bits[I / BITWORD_SIZE] &= ~Mask; 464 Bits[I / BITWORD_SIZE] &= ~PrefixMask; 468 Bits[I / BITWORD_SIZE] = 0UL; 472 Bits[I / BITWORD_SIZE] &= ~PostfixMask; 479 Bits[i] = ~Bits[i]; 479 Bits[i] = ~Bits[i]; 485 Bits[Idx / BITWORD_SIZE] ^= BitWord(1) << (Idx % BITWORD_SIZE); 498 return (Bits[Idx / BITWORD_SIZE] & Mask) != 0; 527 if (Bits[i] & RHS.Bits[i]) 527 if (Bits[i] & RHS.Bits[i]) 538 if (Bits[i] != RHS.Bits[i]) 538 if (Bits[i] != RHS.Bits[i]) 544 if (Bits[i]) 548 if (RHS.Bits[i]) 564 Bits[i] &= RHS.Bits[i]; 564 Bits[i] &= RHS.Bits[i]; 570 Bits[i] = 0; 581 Bits[i] &= ~RHS.Bits[i]; 581 Bits[i] &= ~RHS.Bits[i]; 592 if ((Bits[i] & ~RHS.Bits[i]) != 0) 592 if ((Bits[i] & ~RHS.Bits[i]) != 0) 596 if (Bits[i] != 0) 606 Bits[i] |= RHS.Bits[i]; 606 Bits[i] |= RHS.Bits[i]; 614 Bits[i] ^= RHS.Bits[i]; 614 Bits[i] ^= RHS.Bits[i]; 658 Bits[I] >>= BitDistance; 659 Bits[I] |= (Bits[I + 1] & Mask) << LSH; 659 Bits[I] |= (Bits[I + 1] & Mask) << LSH; 662 Bits[NumWords - 1] >>= BitDistance; 708 Bits[I] <<= BitDistance; 709 Bits[I] |= (Bits[I - 1] & Mask) >> RSH; 709 Bits[I] |= (Bits[I - 1] & Mask) >> RSH; 711 Bits[0] <<= BitDistance; 725 std::memcpy(Bits.data(), RHS.Bits.data(), RHSWords * sizeof(BitWord)); 725 std::memcpy(Bits.data(), RHS.Bits.data(), RHSWords * sizeof(BitWord)); 734 std::memcpy(NewBits.data(), RHS.Bits.data(), NewCapacity * sizeof(BitWord)); 737 std::free(Bits.data()); 738 Bits = NewBits; 746 std::free(Bits.data()); 747 Bits = RHS.Bits; 747 Bits = RHS.Bits; 750 RHS.Bits = MutableArrayRef<BitWord>(); 757 std::swap(Bits, RHS.Bits); 757 std::swap(Bits, RHS.Bits); 818 auto Src = Bits.take_front(NumWords).drop_back(Count); 819 auto Dest = Bits.take_front(NumWords).drop_front(Count); 825 std::memset(Bits.data(), 0, Count * sizeof(BitWord)); 838 auto Src = Bits.take_front(NumWords).drop_front(Count); 839 auto Dest = Bits.take_front(NumWords).drop_back(Count); 865 if (Bits.size() > UsedWords) 866 init_words(Bits.drop_front(UsedWords), t); 873 Bits[UsedWords-1] |= ExtraBitMask; 875 Bits[UsedWords-1] &= ~ExtraBitMask; 885 size_t NewCapacity = std::max<size_t>(NumBitWords(NewSize), Bits.size() * 2); 888 safe_realloc(Bits.data(), NewCapacity * sizeof(BitWord))); 889 Bits = MutableArrayRef<BitWord>(NewBits, NewCapacity); 905 BitWord BW = Bits[i]; 913 Bits[i] = BW; 918 if (AddBits) Bits[i] |= BitWord(M) << b; 919 else Bits[i] &= ~(BitWord(M) << b); 927 size_t getMemorySize() const { return Bits.size() * sizeof(BitWord); } 928 size_t getBitCapacity() const { return Bits.size() * BITWORD_SIZE; }