Skip to main content

Module popcount

Module popcount 

Source
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.