Skip to content

Feat: Add Lazy boolean operator to speed up evaluation of boolean operations #66

@carlos-adir

Description

@carlos-adir

Currently all the options of or, and, xor operates directly.

It's possible to simplify the operation before evaluating the intersection of curves (a expensive operation).

Example, for any subsets A and B:

  • A + A * B can be easily simplified to A

The possible solutions are:

  • LazyNot, LazyOr and LazyAnd. But some structure is repeated:
    • Not[Or[A, B]] = And[Not[A], Not[B]]
    • Not[Or[A, B]] = And[Not[A], Not[B]]
  • Use only two: Either LazyNot + LazyAnd or LazyNot + LazyOr
  • Use only one: NAND port

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions