Skip to content

Add benchmark_solve! dispatch on AltissimoOptions #7

Description

@jack-champagne

Currently benchmark_solve! has two forms:

  1. benchmark_solve!(prob, options::AbstractSolverOptions; kwargs...) — passes options as a kwarg into DirectTrajOpt.solve!, which only matches the Ipopt backend.
  2. The do-block form — used in Piccolissimo.jl benchmarks to work around (1) for Altissimo.

AltissimoOptions (defined in Piccolissimo's src/solvers/altissimo_backend.jl) is registered with DirectTrajOpt.Solvers.solve! positionally, so the kwarg path fails.

Two options:

  • A. Add a benchmark_solve!(prob, options::AltissimoOptions; kwargs...) method here that dispatches positionally. Requires HarmoniqsBenchmarks to depend on Altissimo (or use a Requires-style stub).
  • B. Detect positional dispatch dynamically inside the existing method — e.g., try kwarg call; catch MethodError; positional call. Brittle.

Context: surfaced in https://github.com/harmoniqs/Piccolissimo.jl/pull/50 — the benchmark code uses the do-block form everywhere Altissimo runs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions