BitCal is a header-only C++17 bit manipulation library focused on a small, credible contract: compile-time SIMD dispatch, portable fallbacks, and documentation that matches the code that still matters.
cp -r include/bitcal /your/project/
#include <bitcal/bitcal.hpp>
int main() {
bitcal::bit256 lhs(0xDEADBEEF);
bitcal::bit256 rhs(0xCAFEBABE);
auto masked = lhs.andnot(rhs);
auto ones = masked.popcount();
return static_cast<int>(ones);
}
Compile-time SIMD dispatch delivers significant speedups on supported hardware.
Benchmarks run on 256-bit vectors. Results vary by CPU, compiler, and workload.
All configurations tested in CI with sanitizers enabled.
| Platform | Compiler | CI Status |
|---|---|---|
| Linux x64 | GCC 7+ | Tested |
| Linux x64 | Clang 6+ | Tested |
| Windows x64 | MSVC 2017+ | Tested |
| macOS ARM64 | AppleClang | Tested |
| Linux ARM64 | Cross-compile | Verified |
* AVX-512 support is partial. Scalar fallback ensures portability everywhere.
A smaller contract, a cleaner repository, and fewer moving parts.
One include tree, no runtime dependency graph, and a release model aligned with what the project actually ships.
SSE2/AVX2 on x86 and NEON on ARM, with scalar fallback kept as the portability floor.
OpenSpec-driven changes, reduced workflow sprawl, and documentation that aims to stay synchronized with the retained contract.
Only claims with a maintained validation path should survive.
C++17 minimum, CMake-driven verification for tests and examples.
bit64, bit128, bit256, bit512, bit1024, plus custom multiples of 64.
The repository is being normalized for long-term stability and clean handoff, not for indefinite feature expansion.
Use the site for orientation, and GitHub-rendered Markdown for deep reference.
Start with installation, quick start, architecture, and maintenance status.
Repository-facing overview and minimal entry path.
Canonical release history now lives at the repository root.
Read the authoritative API and project requirements directly from the active spec source.