Ordered Boolean List (OBL): Reducing the Footprint for Evaluating Boolean Expressions

An Expanded Boolean Expression (EBE) does not contain any XOR or EQUAL operators. The occurrence of each variable is a different literal. We provide a linear time algorithm that converts an EBE of n literals into a logically equivalent Ordered Boolean List (OBL) and show how to use the OBL to evaluate the EBE in n steps and O(log log n) space, if the values of the literals are each read once in the order prescribed by the OBL. (An evaluation workspace of 5 bits suffices for all EBEs of up to six billion literals.) The primary application is the SIMD architecture, where the same EBE is evaluated in parallel for different input vectors when rendering solid models on the GPU directly from their Constructive Solid Geometry (CSG) representation. We compare OBL to the Reduced Ordered Binary Decision Diagram (ROBDD) and suggest possible applications of OBL to logic verification and to circuit design.

[1]  Philip Dutré,et al.  Interactive boolean operations on surfel-bounded solids , 2003, ACM Trans. Graph..

[2]  Jarek Rossignac,et al.  Interactive inspection of solids: cross-sections and interferences , 1992, SIGGRAPH.

[3]  Ulus Çevik Design and implementation of an FPGA-based parallel graphics renderer for displaying CSG surfaces and volumes , 2004, Comput. Electr. Eng..

[4]  Cheng-Kok Koh,et al.  Non-Crossing Ordered BDD for Physical Synthesis of Regular Circuit Structure , 2003 .

[5]  Henning Biermann,et al.  Approximate Boolean operations on free-form solids , 2001, SIGGRAPH.

[6]  Dinesh Manocha,et al.  Efficient representations and techniques for computing B-rep's of CSG models with NURBS primitives , 1996 .

[7]  Zhengdong Huang,et al.  Solving CSG equations for checking equivalency between two different geometric models , 2004, Comput. Aided Des..

[8]  Yusuke Matsunaga An efficient equivalence checker for combinational circuits , 1996, DAC '96.

[9]  Harry B. Hunt,et al.  On the Size of Binary Decision Diagrams Representing Boolean Functions , 1995, Theor. Comput. Sci..

[10]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[11]  Gershon Kedem,et al.  The Ray casting engine and Ray representatives , 1991, SMA '91.

[12]  A.A.G. Requicha,et al.  Boolean operations in solid modeling: Boundary evaluation and merging algorithms , 1985, Proceedings of the IEEE.

[13]  Frederik W. Jansen,et al.  Depth-order point classification techniques for CSG display algorithms , 1991, TOGS.

[14]  Christoph M. Hoffmann,et al.  Geometric and Solid Modeling: An Introduction , 1989 .

[15]  Srinivas Devadas,et al.  Boolean satisfiability and equivalence checking using general Binary Decision Diagrams , 1992, Integr..

[16]  Jarek Rossignac,et al.  CST: Constructive Solid Trimming for Rendering BReps and CSG , 2007, IEEE Transactions on Visualization and Computer Graphics.

[17]  J. Bruno,et al.  The Generation of Optimal Code for Stack Machines , 1975, JACM.

[18]  Henry Fuchs,et al.  Near real-time CSG rendering using tree normalization and geometric pruning , 1989, IEEE Computer Graphics and Applications.

[19]  Nadia Nedjah,et al.  Three hardware architectures for the binary modular exponentiation: sequential, parallel, and systolic , 2006, IEEE Transactions on Circuits and Systems I: Regular Papers.

[20]  Ikuo Nakata,et al.  On compiling algorithms for arithmetic expressions , 1967, CACM.

[21]  Luiz Velho,et al.  Scalable GPU rendering of CSG models , 2008, Comput. Graph..

[22]  J. Rossignac Blist: A Boolean List Formulation of CSG Trees , 1999 .

[23]  Andrea Sanna,et al.  A New Algorithm for the Rendering of CSG Scenes , 1997, Comput. J..

[24]  Piotr Dudek,et al.  A general-purpose processor-per-pixel analog SIMD vision chip , 2005, IEEE Transactions on Circuits and Systems I: Regular Papers.

[25]  Stephen Ponzio,et al.  A lower bound for integer multiplication with read-once branching programs , 1995, STOC '95.

[26]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[27]  David R. O'Hallaron,et al.  Parallel breadth-first BDD construction , 1997, PPOPP '97.

[28]  Michael Kelley,et al.  Hardware accelerated rendering of CSG and transparency , 1994, SIGGRAPH.

[29]  Jarek Rossignac,et al.  Correct Shading of Regularized CSG Solids Using a Depth-Interval Buffer , 1990, Advances in Computer Graphics Hardware V.

[30]  William S. Meisel,et al.  An Algorithm for Constructing Optimal Binary Decision Trees , 1977, IEEE Transactions on Computers.

[31]  Jeffrey D. Ullman,et al.  The Generation of Optimal Code for Arithmetic Expressions , 1970, JACM.

[32]  Frido Kuijper,et al.  A Multiprocessor System for Displaying Quadric CSG Models , 1992, CONPAR.

[33]  Aristides A. G. Requicha,et al.  Depth-Buffering Display Techniques for Constructive Solid Geometry , 1986, IEEE Computer Graphics and Applications.

[34]  Randal E. Bryant Binary decision diagrams and beyond: enabling technologies for formal verification , 1995, ICCAD.

[35]  Jarek Rossignac,et al.  Active zones in CSG for accelerating boundary evaluation, redundancy elimination, interference detection, and shading algorithms , 1988, TOGS.

[36]  Jarek Rossignac,et al.  Blister: GPU-based rendering of Boolean combinations of free-form triangulated shapes , 2005, SIGGRAPH '05.

[37]  ARISTIDES A. G. REQUICHA,et al.  Representations for Rigid Solids: Theory, Methods, and Systems , 1980, CSUR.

[38]  Henry Fuchs,et al.  Fast constructive-solid geometry display in the pixel-powers graphics system , 1986, SIGGRAPH.

[39]  Ari Rappoport,et al.  Interactive Boolean operations for conceptual design of 3-D solids , 1997, SIGGRAPH.

[40]  Sudipto Guha,et al.  Application of the two-sided depth test to CSG rendering , 2003, I3D '03.

[41]  I. K. Sethi Fast sequential evaluation of monotonic Boolean functions , 1980, Inf. Sci..

[42]  Geoff Leach,et al.  An improved z-buffer CSG rendering algorithm , 1998, Workshop on Graphics Hardware.

[43]  Jarek Rossignac,et al.  Topologically exact evaluation of polyhedra defined in CSG with loose primitives , 1996, Comput. Graph. Forum.

[44]  Roman R. Redziejowski On arithmetic expressions and trees , 1969, CACM.

[45]  Alfred V. Aho,et al.  Optimal code generation for expression trees , 1975, STOC.

[46]  Saburo Muroga,et al.  Binary Decision Diagrams , 2000, The VLSI Handbook.

[47]  Willem F. Bronsvoort,et al.  Boundary evaluation and direct display of CSG models , 1988 .

[48]  David Salesin,et al.  Rendering CSG models with a ZZ-buffer , 1990, SIGGRAPH.

[49]  Beate Bollig,et al.  Improving the Variable Ordering of OBDDs Is NP-Complete , 1996, IEEE Trans. Computers.