Skip to content

Conversation

@MEO265
Copy link
Owner

@MEO265 MEO265 commented Dec 31, 2025

Motivation

  • Export the remaining/commonly-used CUDD BDD methods so callers can use more of the CUDD API from R.
  • Provide direct C++ -> R bindings for abstract, composition, permutation, compression, cover and other BDD utilities missing from the R wrapper.
  • Keep API ergonomics consistent with existing CuddBDD wrappers and add shared documentation.

Description

  • Added many native C++ bindings and helpers in src/cudd_manager.cpp (e.g., c_cudd_bdd_restrict, c_cudd_bdd_and_abstract, c_cudd_bdd_exist_abstract, c_cudd_bdd_compose, c_cudd_bdd_permute, c_cudd_bdd_subset_compress, c_cudd_bdd_pick_one_cube, etc.) plus conversion helpers (bdd_to_xptr, zdd_to_xptr, bdd_vector_from_list, int_vector_from_sexp).
  • Declared the new native routines in src/rcudd.h and registered them in src/register.cpp.
  • Added R-level wrappers in R/cudd_bdd_methods.R and a cudd_bdd_restrict() wrapper in R/cudd_bdd.R, updated NAMESPACE, and generated documentation in man/cudd_bdd_methods.Rd and man/cudd_bdd_restrict.Rd.
  • Added an example inst/examples/bdd_reduce_example.R demonstrating cudd_bdd_restrict().

Testing

  • Ran roxygen2::roxygenise(load = 'source') to generate docs and it completed successfully.
  • Ran lintr::lint_package() and reported no lints.
  • Built the package with R CMD build . producing Rcudd_0.0.0.9999.tar.gz.
  • Ran R CMD check --no-manual Rcudd_0.0.0.9999.tar.gz and the check completed with Status: OK.

Codex Task

@MEO265 MEO265 marked this pull request as ready for review January 3, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants