code: public BDDNode toLngBdd(final int bdd) {
      final BDDConstant falseNode = BDDConstant.getFalsumNode(this.f);
      final BDDConstant trueNode = BDDConstant.getVerumNode(this.f);
      if (bdd == BDDKernel.BDD_FALSE)
        return falseNode;
      if (bdd == BDDKernel.BDD_TRUE)
        return trueNode;
      final List<int[]> nodes = this.kernel.allNodes(bdd);
      final Map<Integer, BDDInnerNode> innerNodes = new HashMap<>();
      for (final int[] node : nodes) {
        final int nodenum = node[0];
        final Variable variable = this.idx2var.get(node[1]);
        final BDDNode lowNode = getInnerNode(node[2], falseNode, trueNode, innerNodes);
        final BDDNode highNode = getInnerNode(node[3], falseNode, trueNode, innerNodes);
        if (innerNodes.get(nodenum) == null)
          innerNodes.put(nodenum, new BDDInnerNode(variable, lowNode, highNode));
      }
      return innerNodes.get(bdd);
    }
docs: Returns a LogicNG internal BDD data structure of a given BDD.
  @param bdd the BDD
  @return the BDD as LogicNG data structure