code: def ite(f, g, h):
      r
      f, g, h = map(BinaryDecisionDiagram.box, (f, g, h))
      return _bdd(_ite(f.node, g.node, h.node))
docs: r"""BDD if-then-else (ITE) operator
  
      The *f*, *g*, and *h* arguments are BDDs.
  
      The ITE(f, g, h) operator means
      "if *f* is true, return *g*, else return *h*".
  
      It is equivalent to:
  
      * DNF form: ``f & g | ~f & h``
      * CNF form: ``(~f | g) & (f | h)``