code: public List<byte[]> allSat(final int r) {
      final byte[] allsatProfile = new byte[this.varnum];
      for (int v = level(r) - 1; v >= 0; --v)
        allsatProfile[this.level2var[v]] = -1;
      initRef();
      final List<byte[]> allSat = new LinkedList<>();
      allSatRec(r, allSat, allsatProfile);
      return allSat;
    }
docs: Returns all models for a given BDD.
  @param r the BDD root node
  @return all models for the BDD