Algorithm 1052: Evaluating a Boolean Polynomial on All Possible Inputs

Evaluating a Boolean polynomial on all possible inputs (i.e., building the truth table of the corresponding Boolean function) is a simple computational problem that sometimes appears inside broader applications, for instance in cryptanalysis or in the implementation of more sophisticated algorithms to solve Boolean polynomial systems. Two techniques share the crown to perform this task: the Fast Exhaustive Search (FES) algorithm from 2010 (which is based on Gray Codes) and the space-efficient Moebius transform from 2021 (which is reminiscent of the FFT). Both require \(\mathcal{O}(d2^{n})\) operations for a degree- \(d\) Boolean polynomial on \(n\) variables and operate mostly in-place, but have other slightly different characteristics. They both provide an efficient iterator over the full truth table. This article describes BoolEAN POLynomial Evaluation (BeanPolE), a concise and flexible C library that implements both algorithms, as well as many other functions to deal with Boolean multivariate polynomials in dense representation.

Authors

Institutions

Publication Details

Journal
ACM Transactions on Mathematical Software
Published
2024-10-10
DOI
https://doi.org/10.1145/3699957
Primary Topic
Polynomial and algebraic computation
Type
article
Field-Weighted Citation Impact
0.00

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Algorithm 1052: Evaluating a Boolean Polynomial on All Possible Inputs

Charles Bouillaguet
ACM Transactions on Mathematical Software
Polynomial and algebraic computation
article

Algorithm 1052: Evaluating a Boolean Polynomial on All Possible Inputs

Charles Bouillaguet
article en

Abstract

Evaluating a Boolean polynomial on all possible inputs (i.e., building the truth table of the corresponding Boolean function) is a simple computational problem that sometimes appears inside broader applications, for instance in cryptanalysis or in the implementation of more sophisticated algorithms to solve Boolean polynomial systems. Two techniques share the crown to perform this task: the Fast Exhaustive Search (FES) algorithm from 2010 (which is based on Gray Codes) and the space-efficient Moebius transform from 2021 (which is reminiscent of the FFT). Both require \(\mathcal{O}(d2^{n})\) operations for a degree- \(d\) Boolean polynomial on \(n\) variables and operate mostly in-place, but have other slightly different characteristics. They both provide an efficient iterator over the full truth table. This article describes BoolEAN POLynomial Evaluation (BeanPolE), a concise and flexible C library that implements both algorithms, as well as many other functions to deal with Boolean multivariate polynomials in dense representation.

ACM Transactions on Mathematical SoftwareVol. 50(4)
Sorbonne Université (FR), LabEx PERSYVAL-Lab (FR)
Agence Nationale de la Recherche, Centre National de la Recherche Scientifique
Openalex Percentile: Top 98%
Polynomial and algebraic computation
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.