CL-JOINTGEN is a Common Lisp implementation of the Joint Generation Algorithm for computing the dual of a monotone boolean function.

cl-jointgen was written by Utz-Uwe Haus and Tamon Stephen. It's homepage with API documentation is located on, and the code is hosted at sourceforge.

cl-jointgen should run under all ANSI compliant Common Lisp Implementations.

cl-jointgen uses asdf.

Quick assessment (2023-04-02)

Bad type declarations can cause problems (depending on the compiler). For example, clause.lisp has code like this:

;;; utility types (deftype var-index () "The range of variable index numbers." `(integer 0 #.(- ARRAY-DIMENSION-LIMIT 2))) ;; i.e., a little less than a fixnum (defmacro clause-bits-get-bit (c-bits idx) "No-checks version of the above which works directly on the bits." (declare (type simple-bit-vector c-bits) (type var-index idx) (optimize (speed 3) (safety 0))) `(= (the bit 1) (sbit (the simple-bit-vector ,c-bits) (the var-index ,idx))))

The problem is that c-bits and idx (as passed to the macro) will typically be gensyms—not of the indicated types.

Topics: mathematics signal processing