| 80 | } |
| 81 | |
| 82 | size_t ComputeCapacity(uint32_t bits, size_t max_elements, uint32_t fpbits) { |
| 83 | if (bits == 0) return 0; |
| 84 | uint64_t base_fpbits = BaseFPBits(bits, max_elements); |
| 85 | // The fpbits provided by the base max_elements==capacity case are sufficient. |
| 86 | if (base_fpbits >= fpbits) return max_elements; |
| 87 | // Otherwise, increment capacity by ceil(fpbits / bits) beyond that. |
| 88 | return max_elements + (fpbits - base_fpbits + bits - 1) / bits; |
| 89 | } |
| 90 | |
| 91 | size_t ComputeMaxElements(uint32_t bits, size_t capacity, uint32_t fpbits) { |
| 92 | if (bits == 0) return 0; |
no test coverage detected