Skip to content

Proposal: stable result interface or result-builder hook for downstream domain packages #595

@Harumaru58

Description

@Harumaru58

Hi Ronny,
I hope you had a peaceful easter break!
While working on stabilizing our package, I have a suggestion to make since you previously encouraged. :)

Here goes. Our package exposes custom public result types such as CPDResult, BTDResult, and ApproxResult. These wrap Manopt solver outputs into decomposition-friendly results with fields like components, factors, reconstruction helpers, and solver metadata.

At the moment, from upstream, downstream packages need to call solve(...), inspect the returned result object, pull out fields like point / cost / grad norm / iterations / converged / solver info, and then convert that into their own result type. This works, but it means downstream packages end up depending on the concrete shape of Manopt result values rather than on a stable interface.

Would you be open to providing a stable extension point for custom result construction?

What we need is not tensor-specific result types in Manopt, but a stable way for downstream packages to build their own typed results without depending on internal result layout.

A few possible shapes that would help:

  • stable accessors like solution_point(result), solution_cost(result), solution_grad_norm(result), solution_iterations(result), solution_converged(result), solution_solver(result)
  • a result_builder hook in solve(...)
  • or a small stable summary result type with a guaranteed schema for those common fields

Any of those would make it much easier for downstream domain packages to wrap Manopt results safely and consistently.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions