void BitVec_clear(BitVector *self, uint32_t tick) { if (tick >= self->cap) { return; } NumUtil_u1clear(self->bits, tick); }
static void S_write_ord(void *ords, int32_t width, int32_t doc_id, int32_t ord) { switch (width) { case 1: if (ord) { NumUtil_u1set(ords, doc_id); } else { NumUtil_u1clear(ords, doc_id); } break; case 2: NumUtil_u2set(ords, doc_id, ord); break; case 4: NumUtil_u4set(ords, doc_id, ord); break; case 8: { uint8_t *ints = (uint8_t*)ords; ints[doc_id] = ord; } break; case 16: { uint8_t *bytes = (uint8_t*)ords; bytes += doc_id * sizeof(uint16_t); NumUtil_encode_bigend_u16(ord, &bytes); } break; case 32: { uint8_t *bytes = (uint8_t*)ords; bytes += doc_id * sizeof(uint32_t); NumUtil_encode_bigend_u32(ord, &bytes); } break; default: THROW(ERR, "Invalid width: %i32", width); } }
void BitVec_Clear_IMP(BitVector *self, size_t tick) { BitVectorIVARS *const ivars = BitVec_IVARS(self); if (tick >= ivars->cap) { return; } NumUtil_u1clear(ivars->bits, tick); }