Recent Releases of Manopt.jl
Manopt.jl - v0.5.20
Manopt v0.5.20
Added
- a
DebugWarnIfStepsizeCollapsedDebugAction and a related:WarnStepsizesymbol for the debug dictionary. This is to be used in conjunction with theProximalGradientMethodBacktrackingstepsize to warn if the backtracking procedure of theproximal_gradient_methodhit the stepsize length threshold without converging.
Changed
- bumped dependencies.
Fixed
- Fixed a few typos in the docs.
Merged pull requests: - Fix enumerate in first order objective. (#485) (@kellertuer) - Debug warning for RPG backtracking (#486) (@hajg-ijk) - Bump forwarddiff. (#487) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] 11 months ago
Manopt.jl - v0.5.19
Manopt v0.5.19
Added
- a function
get_differentialandget_differential_functionfor first order objectives. - a
ParentEvaluationTypeto indicate that a certain objective inherits it evaluation from the parent (wrapping) objective - a new
AllocatingInplaceEvaluationthat is used for the functions that offer both variants simultaneously. - a
differential=keyword for providing a faster way of computinginner(M, p, grad_f(p), X), introduced to the algorithmsconjugate_gradient_descent,gradient_descent,Frank_Wolfe_method,quasi_Newton
Changed
- the
ManifoldGradientObjectiveand theManifoldCostGradientObjectiveare now merely a const special cases of theManifoldFirstOrderObjective, since this type might now also represent a differential or other combinations of cost, grad, and differential, where they are computed together. - the
AbstractManifoldGradientObjectiveis renamed toAbstractManifoldFirstOrderObjective, since the second function might now also represent a differential.
Fixed
- fixes a small bug where calling
mesh_adaptive_direct_searchwith a start point in some cases did not initialise the state correctly with that start point. - The
HestenesStiefelCoefficientnow also always returns a real value, similar the other coefficient rules. To the best of our knowledge, this might have been a bug previously.
Merged pull requests: - Introduce differentials parallel to gradients (#483) (@kellertuer) - Correctly pass starting point to MADS (#484) (@hajg-ijk)
Closed issues:
- Introduce a get_differential (#482)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] 12 months ago
Manopt.jl - v0.5.18
Manopt v0.5.18
Added
- Introduce the algorithm
proximal_gradient_methodalong withManifoldProximalGradientObjective,ProximalGradientMethodState, as well as an experimentalProximalGradientMethodAcceleration. - Add
ProximalGradientMethodBacktrackingstepsize. - Add
StopWhenGradientMappingNormLessstopping criterion. - Introduce a
StopWhenRepeatedstopping criterion that stops when the given stopping criterion has indicated to stopntimes (consecutively, ifconsecutive=true). - Introduce a
StopWhenCriterionWithIterationConditionstopping criterion that stops when a given stopping criterion has been satisfied together with a certain iteration condition. This can the generated even with shortcuts likesc > 5 - Introduce a
DebugCallbackthat allows to add a callback function to the debug system - Introduce a
callback=keyword to all solvers. - Added back functions
estimate_sectional_curvature,ζ_1,ζ_2,close_pointfromconvex_bundle_method; the function call can stay the same as before since there is a curvature estimation fallback - Add back some fields and arguments such as
p_estimate,ϱ,α, fromConvexBundleMethodState
Changed
- make the
GradientDescentStatea bit more tolerant to ignore keywords it does not use.
Merged pull requests: - Updates to the convex bundle method (#478) (@hajg-ijk) - Add callback (debug) and a repeated stopping criterion (#480) (@kellertuer) - Introduce the proximal gradient method (#481) (@kellertuer)
Closed issues:
- Conversion error when optimizing on ProductManifold with InvertibleMatrices (#473)
- Ideas for meta stopping criteria (#477)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] 12 months ago
Manopt.jl - v0.5.17
Manopt v0.5.17
Added
- Introduce a
StopWhenCostChangeLessstopping criterion that stops when the cost function changes less than a given value.
Merged pull requests: - CompatHelper: bump compat for Documenter to 1 for package docs, (keep existing compat) (#472) (@github-actions[bot]) - CompatHelper: bump compat for RipQP in [weakdeps] to 0.7, (keep existing compat) (#474) (@github-actions[bot]) - CompatHelper: bump compat for RipQP to 0.7 for package docs, (keep existing compat) (#475) (@github-actions[bot]) - add a new stopping criterion. (#476) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.16
Manopt v0.5.16
Fixed
- fixes a bug in the
LineSearches.jlextension, where two (old)retract!s were still present; they were changed toretact_fused!.
Merged pull requests: - Inplace version of vectorize and reshape (#468) (@blegat) - Fix retracts in LineSearches extension (#471) (@kellertuer)
Closed issues: - Non-array manifold with JuMP/MOI (#274)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.14
Manopt v0.5.14
Merged pull requests:
- Fixes printing of JuMP models containg Manopt solver (#462) (@blegat)
- add linear subsolver to LevenbergMarquardt API (#463) (@mateuszbaran)
- Adapt to the new default_basis function. (#464) (@kellertuer)
- Switch to using QuartoNotebookRunner (#465) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.13
Manopt v0.5.13
Merged pull requests: - Add support for Riemanian objective through JuMP (#448) (@blegat) - Remove leftover from merge (#452) (@blegat) - Use scaled objective (#453) (@blegat) - Wrap objective in JuMP wrapper (#455) (@blegat) - Do not scale the cost function twice. (#457) (@kellertuer) - fixing issues in quasi-Newton docs (#458) (@mateuszbaran) - Fix a typo. (#459) (@kellertuer) - Refactor Tests a bit (#460) (@kellertuer) - Fix a small bug in Quasi Newton initialisation (#461) (@kellertuer)
Closed issues: - Riemannian black box function with JuMP/MOI (#273) - Remove the circular dependency in the tests to ManopExamples (#438) - Scaled objective not working (#456)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.12
Manopt v0.5.12
Added
- a
ScaledManifoldObjectiveto easier build scaled versions of objectives, especially turn maximisation problems into minimisation ones using a scaling of-1. - Introduce a
ManifoldConstrainedSetObjective - Introduce a
projected_gradient_method
Merged pull requests: - Help with a small objective wrapper to scale objectives (#449) (@kellertuer) - minor improvements for scaled objective (#450) (@mateuszbaran) - Add a projected gradient method. (#451) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.11
Manopt v0.5.11
Added
- Configurable subsolver for the linear subproblem in Levenberg-Marquardt. The default subsolver is now also robust to numerical issues that may cause Cholesky decomposition to fail.
Merged pull requests: - Customizable subsolver for Levenberg-Marquardt (#447) (@mateuszbaran)
Closed issues: - Small example of inaccurate tracing retraction. (#446)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.10
Manopt v0.5.10
Fixed
- a proper implementation of the preconditioning for
quasi_Newton, that can be used instead of or in combination with the initial scaling.
Merged pull requests: - Fix preconditioning for QN. (#445) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.9
Manopt v0.5.9
Added
- add a
PreconditionedDirectionvariant to thedirectiongradient processor keyword argument and its correspondingPreconditionedDirectionRule - make the preconditioner available in quasi Newton.
- in
gradient_descentandconjugate_gradient_descentthe rule can be added anyways.
Fixed
- the links in the AD tutorial are fixed and moved to using
extref
Merged pull requests:
- Fix links and move them to extref in the AD tutorial. (#443) (@kellertuer)
- Add a PreconditionedDirection direction rule (#444) (@kellertuer)
Closed issues:
- The link back to change_representer is not updated in use automatic differenentiatio tutorial (#442)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 1 year ago
Manopt.jl - v0.5.8
Manopt v0.5.8
Fixed
- fixed a small bug in the
NonmonotoneLinesearchStepsizehwn the injectivity radius is an irrational number. - fixed a small bug in
check_gradientwhereepsmight have been called on complex types. - fixed a bug in several gradient based solvers like
quasi_newton, such that they properly work with the combined cost grad objective. - fixes a few typos in the docs.
Merged pull requests: - Fix two small bugs. (#440) (@kellertuer) - Fix a bug where QN did not accept CombinedCostGrad objectives. (#441) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.7
Manopt v0.5.7
Added
- Adds a mesh adaptive direct search algorithm (MADS), using the LTMADS variant with a lower triangular (LT) random matrix in the mesh generation.
Merged pull requests: - Introduce the LTMADS solver (#433) (@kellertuer)
Closed issues: - Add LTMADS algorithm (#184)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.6
Manopt v0.5.6
Changed
- bump dependencies of all JuliaManifolds ecosystem packages to be consistent with ManifoldsBase 1.0
Merged pull requests: - Adapt / Bump to ManifoldsBase 1.0 (#437) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.5
Manopt v0.5.5
Added
- the Levenberg-Marquardt algorithm internally uses a
VectorGradientFunction, which allows to use a vector of gradients of a function returning all gradients as well for the algorithm - The
VectorGradientFunctions now also have aget_jacobianfunction
Changed
- Minimum Julia version is now 1.10 (the LTS which replaced 1.6)
- The vectorial functions had a bug where the original vector function for the mutating case was not always treated as mutating.
Removed
- The geodesic regression example, first because it is not correct, second because it should become part of ManoptExamples.jl once it is correct.
Merged pull requests: - Remove the geodesic regression tutorial. (#430) (@kellertuer) - Follow the JuliaManifolds Groove: Move to LTS 1.10 (#431) (@kellertuer) - Rework LevenbergMarquardt to use the vector function functionality (#432) (@kellertuer)
Closed issues: - Robust loss functions for outlier rejection (#332)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.4
Manopt v0.5.4
Added
- An automated detection whether the tutorials are present
if not an also no quarto run is done, an automated
--exlcude-tutorialsoption is added. - Support for ManifoldDiff 0.4
- icons upfront external links when they link to another package or wikipedia.
Merged pull requests:
- CompatHelper: bump compat for ColorTypes to 0.12, (keep existing compat) (#418) (@github-actions[bot])
- CompatHelper: bump compat for Colors to 0.13, (keep existing compat) (#419) (@github-actions[bot])
- CompatHelper: bump compat for Colors to 0.13 for package docs, (keep existing compat) (#420) (@github-actions[bot])
- CompatHelper: bump compat for Colors to 0.13 for package tutorials, (keep existing compat) (#421) (@github-actions[bot])
- Bump codecov/codecov-action from 4 to 5 (#422) (@dependabot[bot])
- Improve make.jl (#424) (@kellertuer)
- ManifoldDiff v0.4 compat (#425) (@mateuszbaran)
- Prefix InterLinks links with the logos of the corresponding packages (#428) (@kellertuer)
- Fix changelog for Manopt 0.5.4 release (#429) (@mateuszbaran)
Closed issues: - Improve make.jl usability (#423)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.3
Manopt v0.5.3
Added
StopWhenChangeLess,StopWhenGradientChangeLessandStopWhenGradientLesscan 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 theManifolds.jlLibrary, likeEuclidean.
Merged pull requests:
- Make max_stepsize more user friendly (#416) (@kellertuer)
- Introduce outer norms to three stopping criteria (#417) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.2
Manopt v0.5.2
Added
- three new symbols to easier state to record the
:Gradient, the:GradientNorm, and the:Stepsize.
Changed
- fix a few typos in the documentation
- improved the documentation for the initial guess of
ArmijoLinesearchStepsize.
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)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 1 year ago
Manopt.jl - v0.5.1
Manopt v0.5.1
Changed
- slightly improves the test for the
ExponentialFamilyProjectiontext on the about page.
## Added
- the
proximal_pointmethod.
Merged pull requests: - Adjust text for ExponentialFamilyProjection.jl (#409) (@bvdmitri) - Proximal Point Method (#410) (@kellertuer)
Closed issues: - PPA on Stiefel (#252)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 2 years ago
Manopt.jl - v0.5.0
Manopt v0.5.0
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: - Rework high level interfaces (#392) (@kellertuer) - Rework presentation of keywords (#393) (@kellertuer) - Bump tarides/changelog-check-action from 2 to 3 (#405) (@dependabot[bot])
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)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 2 years ago
Manopt.jl - v0.4.68
Manopt v0.4.68
Added
- an Interior Point Newton Method, the
interior_point_newton - a
conjugate_residualAlgorithm to solve a linear system on a tangent space. ArmijoLinesearchnow allows for additionaladditional_decrease_conditionandadditional_increase_conditionkeywords to add further conditions to accept additional conditions when to accept an decreasing or increase of the stepsize.- add a
DebugFeasibilityto have a debug print about feasibility of points in constrained optimisation employing the newis_feasiblefunction - add a
InteriorPointCentralityConditioncheck that can be added for step candidates within the line search ofinterior_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
CondensedKKTVectorFieldand itsCondensedKKTVectorFieldJacobian, that are being used to solve a linear system withininterior_point_newton - the
KKTVectorFieldas well as itsKKTVectorFieldJacobianand `KKTVectorFieldAdjointJacobian - the
KKTVectorFieldNormSqand itsKKTVectorFieldNormSqGradientused within the Armijo line search ofinterior_point_newton
- the
- New stopping criteria
- A
StopWhenRelativeResidualLessfor theconjugate_residual - A
StopWhenKKTResidualLessfor theinterior_point_newton
- A
Merged pull requests: - The Riemannian Interior Point Newton Method (#399) (@kellertuer)
Closed issues: - Refine storage of subsolver states (#403)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 2 years ago
Manopt.jl - v0.4.65
Manopt v0.4.65
Changed
- refactor stopping criteria to not store a
sc.reasoninternally, 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)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.64
Manopt v0.4.64
Added
- Remodel the constraints and their gradients into separate
VectorGradientFunctionsto reduce code duplication and encapsulate the inner model of these functions and their gradients - Introduce a
ConstrainedManoptProblemto model different ranges for the gradients in the newVectorGradientFunctions beyond the defaultNestedPowerRepresentation - introduce a
VectorHessianFunctionto 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
ConstrainedManifoldObjectiveto store anAbstractManifoldObjectiveinternally instead of directlyfandgrad_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), useget_grad_equality_constraint(M, o, p, :)from the more flexible indexing instead.
Merged pull requests: - Modularise Constraints (#386) (@kellertuer) - Fix Initial condition on Lanczos (#391) (@kellertuer)
Closed issues: - Representing gradient of constraints as tangents on a power manifold (#185) - Lanczos initial value shouldn't be zero (#390)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.63
Manopt v0.4.63
Added
:reinitialize_direction_updateoption for quasi-Newton behavior when the direction is not a descent one. It is now the new default forQuasiNewtonState.- Quasi-Newton direction update rules are now initialized upon start of the solver with the new internal function
initialize_update!.
Fixed
- ALM and EPM no longer keep a part of the quasi-Newton subsolver state between runs.
Changed
- Quasi-Newton solvers:
:reinitialize_direction_updateis the new default behavior in case of detection of non-descent direction instead of:step_towards_negative_gradient.:step_towards_negative_gradientis still available when explicitly set using thenondescent_direction_behaviorkeyword argument.
Merged pull requests:
- Bump julia-actions/cache from 1 to 2 (#387) (@dependabot[bot])
- :reinitialize_direction_update for quasi-Newton (#388) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.62
Manopt v0.4.62
Changed
- bumped dependency of ManifoldsBase.jl to 0.15.9 and imported their numerical check functions. This changes the
throw_errorkeyword used internally to aerror=with a symbol.
Merged pull requests: - Adapt to the new checks available in ManifoldsBase. (#385) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.61
Manopt v0.4.61
Added
- Tests now also use
Aqua.jlto spot problems in the code, e.g. ambiguities. - introduce a feature-based list of solvers and reduce the details in the alphabetical list
- adds a
PolyakStepsize - added a
get_subgradientforAbstractManifoldGradientObjectivessince their gradient is a special case of a subgradient.
Fixed
get_last_stepsizewas defined in quite different ways that caused ambiguities. That is now internally a bit restructured and should work nicer. Internally this means that the interims dispatch onget_last_stepsize(problem, state, step, vars...)was removed. Now the only two left areget_last_stepsize(p, s, vars...)and the one directly checkingget_last_stepsize(::Stepsize)for stored values.- we accidentally exported
set_manopt_parameter!, this is now fixed.
Changed
get_manopt_parameterandset_manopt_parameter!have been revised and better documented, they now use more semantic symbols (with capital letters) instead of direct field access (lower letter symbols). Since these are not exported, this is considered an internal, hence non-breaking change.- semantic symbols are now all nouns in upper case letters
:activeis changed to:Activity
Merged pull requests: - Introduce Aqua.jl-based checks (#379) (@kellertuer) - Add a structured list of solvers (#380) (@kellertuer) - Unify symbols in get/set manopt parameters. (#383) (@kellertuer) - add Polyak's Step size. (#384) (@kellertuer)
Closed issues: - Polyak's stepsize (#224) - Add a structured list of solvers for different problem types (#374)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.60
Manopt v0.4.60
Added
RecordWhenActiveto allow records to be deactivated during runtime, symbol:WhenActiveRecordSubsolverto record the result of a subsolver recording in the main solver, symbol:SubsolverRecordStoppingReasonto record the reason a solver stopped- made the
RecordFactorymore flexible and quite similar toDebugFactory, such that it is now also easy to specify recordings at the end of solver runs. This can especially be used to record final states of sub solvers.
Changed
- being a bit more strict with internal tools and made the factories for record non-exported, so this is the same as for debug.
Fixed
- The name
:Subsolverto generateDebugWhenActivewas misleading, it is now called:WhenActive– referring to “print debug only when set active, e.g. by the parent (main) solver”. - the old version of specifying
Symbol => RecordActionfor later access was ambiguous, since it could also mean to store the action in the dictionary under that symbol. Hence the order for access was switched toRecordAction => Symbolto resolve that ambiguity.
Merged pull requests: - Introduce support of subsolver records. (#377) (@kellertuer)
Closed issues: - Provide a collection of records from a subsolver (#371)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.59
Manopt v0.4.59
Added
A Riemannian variant of the CMA-ES (Covariance Matrix Adaptation Evolutionary Strategy) algorithm, cma_es. Fixed
The constructor dispatch for StopWhenAny with Vector had incorrect element type assertion which was fixed.
Merged pull requests:
- typo debug.jl (#372) (@flgoyens)
- CMA-ES (#373) (@mateuszbaran)
- Update StopWhenAny constructor for Vector (#376) (@Vaibhavdixit02)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.58
Manopt v0.4.58
Added
- more advanced methods to add debug to the beginning of an algorithm, a step, or the end of
the algorithm with
DebugActionentries at:Start,:BeforeIteration,:Iteration, and:Stop, respectively. - Introduce a Pair-based format to add elements to these hooks, while all others ar
now added to :Iteration (no longer to
:All) - (planned) add an easy possibility to also record the initial stage and not only after the first iteration.
Changed
- Changed the symbol for the
:Stepdictionary to be:Iteration, to unify this with the symbols used in recording, and removed the:Allsymbol. On the fine granular scale, all but:Startdebugs are now reset on init. Since these are merely internal entries in the debug dictionary, this is considered non-breaking. - introduce a
StopWhenSwarmVelocityLessstopping criterion forparticle_swarmreplacing the current default of the swarm change, since this is a bit more effective to compute
Fixed
- fixed the outdated documentation of
TruncatedConjugateGradientState, that now correcly state thatpis no longer stored, but the algorithm runs onTpM. - implemented the missing
get_iterateforTruncatedConjugateGradientState.
Merged pull requests: - CompatHelper: add new compat entry for DocumenterInterLinks at version 0.3 for package docs, (keep existing compat) (#368) (@github-actions[bot]) - Change PSO SC to a more efficient way of computing. (#369) (@kellertuer) - Refine debug (#370) (@kellertuer)
Closed issues: - Change default stopping criterion in particle swarm (#347) - Try DocumenterInterLinks.jl (#364)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.57
Manopt v0.4.57
Changed
convex_bundle_methoduses thesectional_curvaturefromManifoldsBase.jl.convex_bundle_methodno longer has the unusedk_minkeyword argument.ManifoldsBase.jlnow is running on Documenter 1.3,Manopt.jldocumentation now uses DocumenterInterLinks to refer to sections and functions fromManifoldsBase.jl
Fixed
- fixes a type that when passing
sub_kwargstotrust_regionscaused an error in the decoration of the sub objective.
Merged pull requests:
- Use sectional_curvature from ManifoldsBase (#365) (@mateuszbaran)
- 📚Switch to using DocumenterInterLinks for ManifoldsBase.jl (#366) (@kellertuer)
- Fix a typo in a decorator call. (#367) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 2 years ago
Manopt.jl - v0.4.56
Manopt v0.4.56
Added
- The option
:step_towards_negative_gradientfornondescent_direction_behaviorin quasi-Newton solvers does no longer emit a warning by default. This has been moved to amessage, that can be accessed/displayed withDebugMessages DebugMessagesnow has a second positional argument, specifying whether all messages, or just the first (:Once) should be displayed.
Merged pull requests: - Nondescent direction without warnings (#363) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.55
Manopt v0.4.55
Added
- Option
nondescent_direction_behaviorfor quasi-Newton solvers. By default it checks for non-descent direction which may not be handled well by some stepsize selection algorithms.
Fixed
- unified documentation, especially function signatures further.
- fixed a few typos related to math formulae in the doc strings.
Merged pull requests: - Fix a few typos and try to fix the dependency from the last PR (#360) (@kellertuer) - Checking for non-descent direction in qN (#361) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.54
Manopt v0.4.54
Added
convex_bundle_methodoptimization algorithm for non-smooth geodesically convex functionsproximal_bundle_methodoptimization algorithm for non-smooth functions.StopWhenSubgradientNormLess,StopWhenLagrangeMultiplierLess, and stopping criteria.
Fixed
- Doc strings now follow a vale.sh policy. Though this is not fully working, this version however improves a lot of the doc strings concerning wording and spelling.
Merged pull requests: - Introduce text checks (vale.sh) on Docstrings and comments (#353) (@kellertuer) - Implementation of two bundle methods (#357) (@hajg-ijk)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.53
Manopt v0.4.53
Fixed
- fixes two storage action defaults, that accidentally still tried to initialize a
:Population(as modified back to:Iterate0.4.49). - fix a few typos in the documentation and add a reference for the subgradient menthod.
Merged pull requests: - Kellertuer/fix storages (#356) (@kellertuer)
Closed issues: - Add Warning if gradient larger than injectivity radius. (#346)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.52
Manopt v0.4.52
Added
- introduce an environment persistent way of setting global values with the
set_manopt_parameter!function using Preferences.jl. - introduce such a value named
:Modeto enable a"Tutorial"mode that shall often provide more warnings and information for people getting started with optimisation on manifolds
Merged pull requests: - Bump codecov/codecov-action from 3 to 4 (#355) (@dependabot[bot])
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.51
Manopt v0.4.51
Added
- A
StopWhenSubgradientNormLessstopping criterion for subgradient-based optimization.
Merged pull requests:
- Allow d.msg in DebugIfEntry to contain an identifier to print the field (#351) (@kellertuer)
- Add StopWhenSubgradientNormLess stopping criterion (#352) (@hajg-ijk)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.50
Manopt v0.4.50
Fixed
- Fix Quasi Newton on complex manifolds.
Merged pull requests: - Bump actions/cache from 3 to 4 (#348) (@dependabot[bot]) - Fix Quasi Newton for complex Manifolds (#350) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.49
Manopt v0.4.49
Added
A StopWhenEntryChangeLess to be able to stop on arbitrary small changes of specific fields generalises StopWhenGradientNormLess to accept arbitrary norm= functions refactor the default in particle_swarm to no longer “misuse” the iteration change check, but actually the new one one the :swarm entry
Merged pull requests: - Introduced an entry change stopping criterion and generalise the gradient norm SC. (#345) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.48
Manopt v0.4.48
Fixed
- fixes an imprecision in the interface of
get_iteratethat sometimes led to the swarm ofparticle_swarmbeing returned as the iterate. - refactor
particle_swarmin naming and access functions to avoid this also in the future. To access the whole swarm, one now should useget_manopt_parameter(pss, :Population)
Merged pull requests: - Differentiate more precisely bewteen swarm and iterate in PSO more stricly (#344) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.47
Manopt v0.4.47
Fixed
- fixed a bug, where the retraction set in
check_Hessianwas not passed on to the optional innercheck_gradientcall, which could lead to unwanted side effects, see #342.
Merged pull requests:
- Fix a bug where the retraction method in check_Hessianwas not passed on (#343) (@kellertuer)
Closed issues: - quasiNewton has issue with negative memory size. (#340) - checkHessian: retraction_method is not passed to gradient check (#342)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.46
Manopt v0.4.46
Changed
- An error is thrown when a line search from
LineSearches.jlreports search failure. - Changed default stopping criterion in ALM algorithm to mitigate an issue occurring when step size is very small.
- Default memory length in default ALM subsolver is now capped at manifold dimension.
- Replaced CI testing on Julia 1.8 with testing on Julia 1.10.
Fixed
- A bug in
LineSearches.jlextension leading to slower convergence. - Fixed a bug in L-BFGS related to memory storage, which caused significantly slower convergence.
Merged pull requests: - Fixes from benchmark (#341) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.45
Manopt v0.4.45
Manopt.jl 0.4.45
Added
- Introduce
sub_kwargsandsub_stopping_criterionfortrust_regionsas noticed in #336
Changed
WolfePowellLineSearch,ArmijoLineSearchstep sizes now allocate lesslinesearch_backtrack!is now available- Quasi Newton Updates can work inplace of a direction vector as well.
- Faster
safe_indicesin L-BFGS.
Merged pull requests:
- Faster safe_indices (#334) (@mateuszbaran)
- Improve Linesearch and Quasi Newton allocations (#335) (@kellertuer)
- Introduce sub_kwargs also for Trust Regions (#337) (@kellertuer)
Closed issues: - Improving performance of L-BFGS (#333)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.44
Manopt v0.4.44
Merged pull requests: - CompatHelper: add new compat entry for CSV at version 0.10 for package docs, (keep existing compat) (#316) (@github-actions[bot]) - CompatHelper: add new compat entry for DataFrames at version 1 for package docs, (keep existing compat) (#317) (@github-actions[bot]) - CompatHelper: add new compat entry for DocumenterCitations at version 1 for package docs, (keep existing compat) (#318) (@github-actions[bot]) - CompatHelper: add new compat entry for JLD2 at version 0.4 for package docs, (keep existing compat) (#319) (@github-actions[bot]) - CompatHelper: add new compat entry for Manopt at version 0.4 for package docs, (keep existing compat) (#320) (@github-actions[bot]) - CompatHelper: add new compat entry for LineSearches at version 7 for package docs, (keep existing compat) (#321) (@github-actions[bot]) - CompatHelper: add new compat entry for Literate at version 2 for package docs, (keep existing compat) (#322) (@github-actions[bot]) - CompatHelper: add new compat entry for FiniteDifferences at version 0.12 for package docs, (keep existing compat) (#323) (@github-actions[bot]) - CompatHelper: add new compat entry for Plots at version 1 for package docs, (keep existing compat) (#324) (@github-actions[bot]) - CompatHelper: add new compat entry for Images at version 0.26 for package docs, (keep existing compat) (#325) (@github-actions[bot]) - CompatHelper: add new compat entry for Colors at version 0.12 for package docs, (keep existing compat) (#326) (@github-actions[bot]) - CompatHelper: add new compat entry for LRUCache at version 1 for package docs, (keep existing compat) (#327) (@github-actions[bot]) - CompatHelper: add new compat entry for JuMP at version 1 for package docs, (keep existing compat) (#328) (@github-actions[bot]) - CompatHelper: add new compat entry for BenchmarkTools at version 1 for package tutorials, (keep existing compat) (#329) (@github-actions[bot]) - Move Examples. (#331) (@kellertuer)
Closed issues: - Unify provided Objectives (#312) - Failed calling of the retraction of submanifolds in PowerManifold (#330)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.43
Manopt v0.4.43
Merged pull requests: - A Tutorial when starting with a new manifold (#314) (@kellertuer) - Minor changes to Readme.md (#315) (@odow)
Closed issues: - Tutorial when to write an own manifold (#305)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.41
Manopt v0.4.41
Merged pull requests: - Make the trust region subsolver exchangeable. (#294) (@kellertuer) - CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#311) (@github-actions[bot])
Closed issues: - Make the sub solver of trust regions replaceable (#240)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.40
Manopt v0.4.40
Merged pull requests: - Only compute Jacobian in RLM if last step success (#303) (@Affie) - Add jacobiantangentbasis to docstring (#304) (@blegat) - Bump dependencies. (#309) (@kellertuer)
Closed issues: - trust_regions loses normalization on Sphere (#306) - The gradient is far from analytical in the autograd example (#308)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.38
Manopt v0.4.38
Merged pull requests: - Fix typos (#298) (@DanielVandH) - Fix typos (#299) (@DanielVandH) - Alternative fix to extra allocations in get_gradient! from Jacobian (#301) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.37
Manopt v0.4.37
Merged pull requests: - Expose more RLM parameters and possible fixes in step solver ρk (#295) (@Affie) - Generalize Douglas Rachford's internal reflection (#296) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.36
Manopt v0.4.36
Merged pull requests: - Fix a few typos and improve format print. (#292) (@kellertuer) - Fix a bug concerning ApproxHessian and non-matrix point types. (#293) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.35
Manopt v0.4.35
Merged pull requests: - Fix a few links. (#289) (@kellertuer) - Bump actions/checkout from 3 to 4 (#290) (@dependabot[bot]) - Take objective access a bit more serious. (#291) (@kellertuer)
Closed issues: - Incorrect links in the doc (#288)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 2 years ago
Manopt.jl - v0.4.31
Manopt v0.4.31
Closed issues: - Improve subsolver debug output (#189) - Automatically infer return type of high level solvers (#248)
Merged pull requests: - Introduce a :Subsolver debug symbol and a DebugWhenActive (#285) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 3 years ago
Manopt.jl - v0.4.30
Manopt v0.4.30
Closed issues: - Unify citations to DocumenterCitations.jl (#280) - Gradient descent on the ProbabilitySimplex leaving the simplex (#282)
Merged pull requests: - Use DocumenterCitations.jl for References (#281) (@kellertuer) - Fix a typo in trust regions and extend Frank-Wolfe docs (#284) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 3 years ago
Manopt.jl - v0.4.29
Manopt v0.4.29
Closed issues: - Add Riemannian accelerated hybrid proximal extragradient method (#278)
Merged pull requests: - a few typos in comments (#276) (@flgoyens) - Fix decorated objectives and Cache Display (#279) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 3 years ago
Manopt.jl - v0.4.27
Manopt v0.4.27
Merged pull requests: - Riemannian Levenberg-Marquardt initial residual and jacobian as kwargs (#268) (@Affie) - Improve GHA Caching (#269) (@kellertuer) - Introduce AdaptiveWNGrad. (#270) (@kellertuer) - update changelog. (#271) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] almost 3 years ago
Manopt.jl - v0.4.23
Manopt v0.4.23
Closed issues: - Splitting stochastic gradient descent objective (#249)
Merged pull requests: - 🎓Extend the Count and Cache Tutorial to also cover exchanging interims results. (#258) (@kellertuer) - Allow the stochastic cost to be a vector of costs. (#259) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.22
Manopt v0.4.22
Merged pull requests:
- Typos in CountAndCache.md (#251) (@DanielVandH)
- Fix minor docs issues (#253) (@mateuszbaran)
- We can run Quarto on CI. (#254) (@kellertuer)
- Start a Tutorial how to implement a Solver. (#255) (@kellertuer)
- Switch to ArrayPartition (#256) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.20
Manopt v0.4.20
Closed issues: - check_gradient always fails (#245)
Merged pull requests: - Change defaults for checking vectors/linearity/symmetry in check_ functions (#247) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.19
Manopt v0.4.19
Closed issues:
- Stabilize types in AugmentedLagrangianMethodState (#242)
Merged pull requests: - Add customizable subsolver to trust_regions (#241) (@mateuszbaran) - Make both ALM and EPM state type stable. (#243) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.17
Manopt v0.4.17
Closed issues:
- High-lever interfaces starting with solvername(M, obj, ...) (#223)
- Implement a fill(p) prequel for every solver, where p might be a number. (#235)
Merged pull requests:
- Nicer Interfaces for ::Number Manifolds and Objectives (#236) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.13
Manopt v0.4.13
Closed issues: - Improve line searches (#229) - NaNs in constrained optimization (#232)
Merged pull requests: - Messages to display warnings / Improve linesearch and L-BFGS (#233) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.10
Manopt v0.4.10
Merged pull requests: - docs, typo fix (#225) (@dehann) - enable dependabot for GitHub actions (#226) (@mateuszbaran) - Bump actions/checkout from 2 to 3 (#227) (@dependabot[bot]) - Bump codecov/codecov-action from 1 to 3 (#228) (@dependabot[bot]) - Relax some tolerances (#230) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] about 3 years ago
Manopt.jl - v0.4.8
Manopt v0.4.8
Closed issues: - ManoptExamples.jl (#173) - Testing convergence (#175) - More persistent tutorials (#194) - Unify ConjugateGradient update rule constructors (#207) - Incorrect gradient change debugging (#213) - Convert storage-using stopping criteria to faster storage handling (#214)
Merged pull requests:
- Move Tutorials to be written in Quarto (#210) (@kellertuer)
- State Summary (or: show() methods for everyone!) (#211) (@kellertuer)
- Even faster storage handling (#212) (@mateuszbaran)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago
Manopt.jl - v0.4.4
Manopt v0.4.4
Closed issues:
- Advise on optimization over simplex (#187)
- Descent direction reset for CG (#203)
- Rename HeestenesStiefelCoefficient to HestenesStiefelCoefficient (#204)
Merged pull requests: - Introduce RestartCG as a decorator. (#205) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago
Manopt.jl - v0.4.3
Manopt v0.4.3
Closed issues: - vectortransportto function in the grassmann manifolds doesn't work unless using it with ProjectionTransport() (#201)
Merged pull requests: - Fixes grad_distance functions (#200) (@hajg-ijk) - Allow the CG coefficient β to be complex. (#202) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago
Manopt.jl - Manopt v0.4.2
What's Changed
- Max stepsize on tangent bundle by @mateuszbaran in https://github.com/JuliaManifolds/Manopt.jl/pull/198
- Revise usage of
innerin line-searches and model functions. by @kellertuer in https://github.com/JuliaManifolds/Manopt.jl/pull/199
Full Changelog: https://github.com/JuliaManifolds/Manopt.jl/compare/v0.4.1...v0.4.2
Scientific Software - Peer-reviewed
- Julia
Published by kellertuer over 3 years ago
Manopt.jl - Manopt v0.4.1
This is a manual variant of the release since TagBot is broken, the main thing fixed is
What's Changed
- Stepsize limiting on some manifolds by @mateuszbaran in https://github.com/JuliaManifolds/Manopt.jl/pull/196
Full Changelog: https://github.com/JuliaManifolds/Manopt.jl/compare/v0.4.0...v0.4.1
Scientific Software - Peer-reviewed
- Julia
Published by kellertuer over 3 years ago
Manopt.jl - v0.4.0
Manopt v0.4.0
Closed issues:
- A combined CostGrad structure (#139)
- Make DebugWarnIfCostIncreases not call objective when possible (#171)
- ManoptBase.jl (or ideas for improving the basic interfaces for Manopt.jl) (#172)
- Differentials and adjoint differentials in ManifoldDiff.jl (#177)
- random_point and random_tangent (#178)
- Nelder-Mead seems to be much worse than in Optim.jl (#179)
- Introduce default_stepsize(M, O) (#180)
- Add simplex size termination condition to Nelder-Mead (#183)
Merged pull requests: - Rework Problem structure to have a Objective for reusing interim computations and a Cache (#174) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago
Manopt.jl - v0.3.49
Manopt v0.3.49
Closed issues: - Riemannian Levenberg-Marquardt (#166) - Line searches (#181)
Merged pull requests: - Small cleanup (#182) (@mateuszbaran) - Add Iterate accessor for Subgrad (#188) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago
Manopt.jl - v0.3.44
Manopt v0.3.44
Closed issues: - Where does the logarithmic map and exponential map come from? (#160)
Merged pull requests: - Introduce the Riemannian ALM and EPM (#163) (@kellertuer) - Fix typos (#164) (@hajg-ijk) - Fix two minor bugs in Quasi Newton (#165) (@kellertuer)
Scientific Software - Peer-reviewed
- Julia
Published by github-actions[bot] over 3 years ago