Skip to content

Releases: JuliaManifolds/Manopt.jl

v0.5.3

20 Oct 10:13
abe1286
Compare
Choose a tag to compare

Manopt v0.5.3

Diff since v0.5.2

Added

  • StopWhenChangeLess, StopWhenGradientChangeLess and StopWhenGradientLess can now use the new idea (ManifoldsBase.jl 0.15.18) of different outer norms on manifolds with components like power and product manifolds and all others that support this from the Manifolds.jl Library, like Euclidean.

Merged pull requests:

v0.5.2

05 Oct 12:38
9193df7
Compare
Choose a tag to compare

Manopt v0.5.2

Diff since v0.5.1

Added

  • three new symbols to easier state to record the :Gradient, the :GradientNorm, and the :Stepsize.

Changed

Merged pull requests:

  • CompatHelper: bump compat for JLD2 to 0.5 for package docs, (keep existing compat) (#411) (@github-actions[bot])
  • update readme logo with text. (#412) (@kellertuer)
  • Fix a few typos on ALM docs. (#413) (@kellertuer)
  • Improve a few places in the docs. (#415) (@kellertuer)

v0.5.1

04 Sep 15:49
82f31f8
Compare
Choose a tag to compare

Manopt v0.5.1

Diff since v0.5.0

Changed

  • slightly improves the test for the ExponentialFamilyProjection text on the about page.

Added

  • the proximal_point method.

Merged pull requests:

Closed issues:

  • PPA on Stiefel (#252)

v0.5.0

29 Aug 06:31
ba6979e
Compare
Choose a tag to compare

Manopt v0.5.0

Diff since v0.4.69

This breaking release is mainly concerned with stability and usability

  • all interfaces have been unified, especially orders of arguments and names of keywords
  • for gradient rules like CG or average gradient, and stepsizes like the Armijo linesearch, specifying the manifold (yet again) is no longer necessary thanks to an idea from Dmtry
  • the documentation has been reworked to using a glossary internally
  • we now use Aqua.jl to avoid ambiguities
  • we are back to supporting Julia 1.6 again after this rework as well.

For a full list of breaking changes see the Changelog.md.

Merged pull requests:

Closed issues:

  • Unify passing of optional parts of the objective in high-level solver interfaces (#381)
  • Quasi-Newton update rules issues (#382)
  • Initialise states based on point type already and not requiring an actual point (#400)
  • Problems with quasi-newton and PositiveDefinite matrix (#401)

v0.4.69

03 Aug 16:07
Compare
Choose a tag to compare

Manopt v0.4.69

Diff since v0.4.68

Changed

  • Improved performance of Interior Point Newton Method.

Merged pull requests:

v0.4.68

02 Aug 17:02
0b05c8c
Compare
Choose a tag to compare

Manopt v0.4.68

Diff since v0.4.67

Added

  • an Interior Point Newton Method, the interior_point_newton
  • a conjugate_residual Algorithm to solve a linear system on a tangent space.
  • ArmijoLinesearch now allows for additional additional_decrease_condition and additional_increase_condition keywords to add further conditions to accept additional conditions when to accept an decreasing or increase of the stepsize.
  • add a DebugFeasibility to have a debug print about feasibility of points in constrained optimisation employing the new is_feasible function
  • add a InteriorPointCentralityCondition check that can be added for step candidates within the line search of interior_point_newton
  • Add Several new functors
    • the LagrangianCost, LagrangianGradient, LagrangianHessian, that based on a constrained objective allow to construct the hessian objective of its Lagrangian
    • the CondensedKKTVectorField and its CondensedKKTVectorFieldJacobian, that are being used to solve a linear system within interior_point_newton
    • the KKTVectorField as well as its KKTVectorFieldJacobian and ``KKTVectorFieldAdjointJacobian`
    • the KKTVectorFieldNormSq and its KKTVectorFieldNormSqGradient used within the Armijo line search of interior_point_newton
  • New stopping criteria
    • A StopWhenRelativeResidualLess for the conjugate_residual
    • A StopWhenKKTResidualLess for the interior_point_newton

Merged pull requests:

Closed issues:

  • Refine storage of subsolver states (#403)

v0.4.67

25 Jul 08:39
21dd646
Compare
Choose a tag to compare

Manopt v0.4.67

Diff since v0.4.66

Merged pull requests:

Closed issues:

v0.4.66

27 Jun 07:42
5062ad5
Compare
Choose a tag to compare

Manopt v0.4.66

Diff since v0.4.65

Merged pull requests:

v0.4.65

13 Jun 15:11
befce29
Compare
Choose a tag to compare

Manopt v0.4.65

Diff since v0.4.64

Changed

  • refactor stopping criteria to not store a sc.reason internally, but instead only
    generate the reason (and hence allocate a string) when actually asked for a reason.

Merged pull requests:

  • CompatHelper: bump compat for DocumenterInterLinks to 1 for package docs, (keep existing compat) (#394) (@github-actions[bot])
  • Refactor get_reason (#395) (@kellertuer)

Closed issues:

  • Built-in stopping criterions allocate new error strings on each check, even when not required (#389)

v0.4.64

08 Jun 17:22
2943e0d
Compare
Choose a tag to compare

Manopt v0.4.64

Diff since v0.4.63

Added

  • Remodel the constraints and their gradients into separate VectorGradientFunctions
    to reduce code duplication and encapsulate the inner model of these functions and their gradients
  • Introduce a ConstrainedManoptProblem to model different ranges for the gradients in the
    new VectorGradientFunctions beyond the default NestedPowerRepresentation
  • introduce a VectorHessianFunction to also model that one can provide the vector of Hessians
    to constraints
  • introduce a more flexible indexing beyond single indexing, to also include arbitrary ranges
    when accessing vector functions and their gradients and hence also for constraints and
    their gradients.

Changed

  • Remodel ConstrainedManifoldObjective to store an AbstractManifoldObjective
    internally instead of directly f and grad_f, allowing also Hessian objectives
    therein and implementing access to this Hessian
  • Fixed a bug that Lanczos produced NaNs when started exactly in a minimizer, since we divide by the gradient norm.

Deprecated

  • deprecate get_grad_equality_constraints(M, o, p), use get_grad_equality_constraint(M, o, p, :)
    from the more flexible indexing instead.

Merged pull requests:

Closed issues:

  • Representing gradient of constraints as tangents on a power manifold (#185)
  • Lanczos initial value shouldn't be zero (#390)