Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: astomodynamics/cddp-cpp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: astomodynamics/cddp-cpp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: feat/alddp
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 16 commits
  • 17 files changed
  • 1 contributor

Commits on Mar 29, 2026

  1. Add Python bindings and make Matplot integration optional

    This PR adds a pybind11-based pycddp package with bindings for solver options, dynamics, objectives, constraints, and solver execution, along with Python integration tests and packaging metadata.
    
    It also makes Matplot-dependent includes and test links optional, adds CMake package installation metadata, and prepares the core library for shared-library consumers such as the Python module.
    astomodynamics committed Mar 29, 2026
    Configuration menu
    Copy the full SHA
    c91e518 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2026

  1. Fix Docker configure failure from exported Matplot link

    This keeps matplot and CDDP_HAS_MATPLOT available to in-tree builds while removing them from the installed cddp target interface, which avoids the cddpTargets export error.
    
    It also cleans the Docker build step to use explicit CMake and CTest commands and removes the unused Python executable flag.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    277d523 View commit details
    Browse the repository at this point in the history
  2. Fix package exports and Python binding ownership

    This updates the installed CMake and Python package layouts so downstream consumers can find cddp headers and import pycddp after install.
    
    It also replaces the unsafe raw-pointer Python ownership handoff with Python-backed solver adapters, acquires the GIL for Python callbacks, and removes the legacy Matplot-driven build surface from the default configuration.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    0fa9842 View commit details
    Browse the repository at this point in the history
  3. Fix Python solver validation and callback errors

    This raises Python-facing errors for invalid solver names and initial trajectories while preserving the existing C++ API behavior.
    
    It also releases the GIL around solve(), rethrows threaded callback failures, and adds regression tests for nonlinear objectives and solution fields.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    69c15b2 View commit details
    Browse the repository at this point in the history
  4. Fix Python constraint trampolines and line search fallback

    This restores parallel forward-pass behavior so a successful alpha still wins when another trial throws.
    
    It also adds a Python Constraint trampoline plus regression coverage so custom path constraints can be defined and dispatched through the solver.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    d2bc543 View commit details
    Browse the repository at this point in the history
  5. Fix Python diagnostics and clean dead Matplot tests

    Improve Python import/autodiff error reporting and clarify solver ownership docs.
    Handle parallel derivative precompute exceptions after draining worker futures,
    and delete unreachable Matplot test code instead of preserving dead guards.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    a941218 View commit details
    Browse the repository at this point in the history
  6. Fix GTest installation during test builds

    Force INSTALL_GTEST off before fetching googletest so enabling CDDP_CPP_BUILD_TESTS does not install the bundled dependency alongside cddp.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    098ece1 View commit details
    Browse the repository at this point in the history
  7. Fix Python wrapper cleanup and forward pass diagnostics

    Release Python-owned wrapper references under the GIL so bound solver components are cleaned up safely. Also log partial forward-pass thread failures in verbose mode to make solver issues easier to diagnose.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    d3b220b View commit details
    Browse the repository at this point in the history
  8. Fix Python solver error message regression test

    Update the regression assertion to match the current actionable\nbinding message raised when set_initial_trajectory is called\nbefore a dynamical system is configured.
    astomodynamics committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    d4bcf75 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    af1ccfd View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2026

  1. Configuration menu
    Copy the full SHA
    9b9b7e9 View commit details
    Browse the repository at this point in the history
  2. Fix Python build dependencies and install paths

    Pin pybind11 to <3 to avoid incompatibility with older bindings.
    
    Install the Python extension and package files into the pycddp target directory directly.
    astomodynamics committed Mar 31, 2026
    Configuration menu
    Copy the full SHA
    2eb8399 View commit details
    Browse the repository at this point in the history
  3. Add ALDDP solver implementation and tests

    Wire the augmented Lagrangian DDP solver into the core library, expose its options in the Python bindings, and register it as a built-in solver type.
    
    Add focused ALDDP coverage for constrained, infeasible-start, and square-root backward-pass scenarios.
    astomodynamics committed Mar 31, 2026
    Configuration menu
    Copy the full SHA
    eb4c208 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2026

  1. Configuration menu
    Copy the full SHA
    18d6e8d View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2026

  1. Configuration menu
    Copy the full SHA
    fc76f09 View commit details
    Browse the repository at this point in the history
  2. Fix warm-start handling in constrained solvers

    Reuse solver state across repeated constrained solves so warm starts
    can keep their gains, and refresh ALDDP slack controls when a new
    trajectory seed is supplied.
    
    Simplify LogDDP barrier evaluation for single-shooting mode and add
    regression tests for reseeded trajectories and invalid rollout options.
    astomodynamics committed Apr 3, 2026
    Configuration menu
    Copy the full SHA
    39604d3 View commit details
    Browse the repository at this point in the history
Loading