Expand description
Popcount circuit implementation for counting 1-bits in a 64-bit word.
This module implements the population count (popcount) operation using the SWAR (SIMD Within A Register) algorithm, optimized for Binius64’s constraint system.
§Example
ⓘ
use binius_core::word::Word;
use binius_frontend::crate::popcount::popcount;
use binius_frontend::compiler::CircuitBuilder;
// Build circuit
let mut builder = CircuitBuilder::new();
let input = builder.add_witness();
let output = builder.add_witness();
let computed = popcount(&mut builder, input);
builder.assert_eq("popcount_result", computed, output);
let circuit = builder.build();
// Fill witness
let mut w = circuit.new_witness_filler();
w[input] = Word(0xFF); // 8 bits set
w[output] = Word(8);
// Verify
circuit.populate_wire_witness(&mut w).unwrap();Functions§
- popcount
- Computes the population count (number of 1-bits) of a 64-bit word.