Skip to content

Commit

Permalink
Merge branch 'master' into kellertuer/more-grassmann
Browse files Browse the repository at this point in the history
# Conflicts:
#	NEWS.md
  • Loading branch information
kellertuer committed Dec 29, 2023
2 parents 592e3a0 + 81a43d4 commit c4f69c3
Show file tree
Hide file tree
Showing 58 changed files with 637 additions and 352 deletions.
28 changes: 27 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

* added the real symplectic Grassmann manifold `SymplecticGrassmann`

## [0.9.8] * 2023-11-17
## [0.9.11] – 2023-12-27

### Fixed

* Fixed mixed array index number in-place `parallel_transport_to!` on zero-index `Euclidean`, on Julia 1.6.

## [0.9.10] – 2023-12-27

### Added

* Compatibility with `RecursiveArrayTools` v3.

### Fixed

* Fixed mixed array index number in-place `parallel_transport_to!` on real `Circle`, on Julia 1.6.
* Violations of MD004 lint rule in this file.

## [0.9.9] – 2023-12-25

### Fixed

* introduced a nonzero `atol` for all point and vector checks that compre to zero.
This makes those checks a bit more relaxed by default and resolves [#630](https://github.com/JuliaManifolds/Manifolds.jl/issues/630).
* `default_estimation_method(M, f)` is deprecated, use `default_approximation_method(M, f)` for your specific method `f` on the manifold `M`.
* `AbstractEstimationMethod` is deprecated, use `AbstractApproximationMethod` instead.

## [0.9.8] - 2023-11-17

### Fixed

Expand Down
8 changes: 4 additions & 4 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Manifolds"
uuid = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e"
authors = ["Seth Axen <[email protected]>", "Mateusz Baran <[email protected]>", "Ronny Bergmann <[email protected]>", "Antoine Levitt <[email protected]>"]
version = "0.9.8"
version = "0.9.11"

[deps]
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
Expand Down Expand Up @@ -42,7 +42,7 @@ ManifoldsRecipesBaseExt = ["Colors", "RecipesBase"]
ManifoldsTestExt = "Test"

[compat]
BoundaryValueDiffEq = "4, 5"
BoundaryValueDiffEq = "4, 5.6.1"
Colors = "0.12"
Distributions = "0.22.6, 0.23, 0.24, 0.25"
Einsum = "0.4"
Expand All @@ -51,15 +51,15 @@ HybridArrays = "0.4"
Kronecker = "0.4, 0.5"
LinearAlgebra = "1.6"
ManifoldDiff = "0.3.7"
ManifoldsBase = "0.15.0"
ManifoldsBase = "0.15.6"
Markdown = "1.6"
MatrixEquations = "2.2"
OrdinaryDiffEq = "6.31"
Plots = "1"
Quaternions = "0.5, 0.6, 0.7"
Random = "1.6"
RecipesBase = "1.1"
RecursiveArrayTools = "2"
RecursiveArrayTools = "2, 3"
Requires = "0.5, 1"
SimpleWeightedGraphs = "1.2"
SpecialFunctions = "0.8, 0.9, 0.10, 1.0, 2"
Expand Down
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,19 @@ If you have any questions regarding the Manifolds.jl ecosystem feel free to reac

## Citation

If you use `Manifolds.jl` in your work, please cite the following
If you use `Manifolds.jl` in your work, please cite the following open access article

```biblatex
@article{AxenBaranBergmannRzecki:2023,
AUTHOR = {Seth D. Axen and Mateusz Baran and Ronny Bergmann and Krzysztof Rzecki},
EPRINT = {2021.08777},
EPRINTTYPE = {arXiv},
JOURNAL = {AMS Transactions on Mathematical Software},
NOTE = {accepted for publication},
TITLE = {Manifolds.jl: An Extensible {J}ulia Framework for Data Analysis on Manifolds},
YEAR = {2023}
AUTHOR = {Axen, Seth D. and Baran, Mateusz and Bergmann, Ronny and Rzecki, Krzysztof},
ARTICLENO = {33},
DOI = {10.1145/3618296},
JOURNAL = {ACM Transactions on Mathematical Software},
MONTH = {dec},
NUMBER = {4},
TITLE = {Manifolds.Jl: An Extensible Julia Framework for Data Analysis on Manifolds},
VOLUME = {49},
YEAR = {2023}
}
```

Expand Down
2 changes: 1 addition & 1 deletion docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ CondaPkg = "0.2"
DiffEqCallbacks = "2"
Distributions = "0.22.6, 0.23, 0.24, 0.25"
Documenter = "1"
DocumenterCitations = "1.2.1"
DocumenterCitations = "1.3"
FiniteDifferences = "0.12"
Graphs = "1.4"
HybridArrays = "0.4"
Expand Down
2 changes: 1 addition & 1 deletion docs/src/features/statistics.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ Order = [:type, :function]
## Literature

```@bibliography
Pages = ["features/statistics.md"]
Pages = ["statistics.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/fixedrankmatrices.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ Order = [:type, :function]
## Literature

```@bibliography
Pages = ["manifolds/fixedrankmatrices.md"]
Pages = ["fixedrankmatrices.md"]
Canonical=false
```
4 changes: 2 additions & 2 deletions docs/src/manifolds/grassmann.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Order = [:type,:function]

```@autodocs
Modules = [Manifolds]
Pages = ["manifolds/GrassmannStiefel.jl"]
Pages = ["GrassmannStiefel.jl"]
Order = [:type,:function]
```

Expand All @@ -26,6 +26,6 @@ Order = [:type,:function]
## Literature

```@bibliography
Pages = ["manifolds/grassmann.md"]
Pages = ["grassmann.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/hyperbolic.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,6 @@ plot!(scene, M, [pts[2], origin], geodesic_interpolation=100)
## Literature

```@bibliography
Pages = ["manifolds/hyperbolic.md"]
Pages = ["hyperbolic.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/probabilitysimplex.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ Public=false
## Literature

```@bibliography
Pages = ["manifolds/probabilitysimplex.md"]
Pages = ["probabilitysimplex.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/rotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ Order = [:type, :function]
## Literature

```@bibliography
Pages = ["manifolds/rotations.md"]
Pages = ["rotations.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/sphere.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,6 @@ plot!(scene, M, pts2, vecs; wireframe = false, linewidth=1.5)
## Literature

```@bibliography
Pages = ["manifolds/sphere.md"]
Pages = ["sphere.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/stiefel.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@ Private = true
## Literature

```@bibliography
Pages = ["manifolds/stiefel.md"]
Pages = ["stiefel.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/symplectic.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ Order = [:type, :function]
## Literature

```@bibliography
Pages = ["manifolds/symplectic.md"]
Pages = ["symplectic.md"]
Canonical=false
```
2 changes: 1 addition & 1 deletion docs/src/manifolds/symplecticstiefel.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ Order = [:type, :function]
## Literature

```@bibliography
Pages = ["manifolds/symplecticstiefel.md"]
Pages = ["symplecticstiefel.md"]
Canonical=false
```
24 changes: 13 additions & 11 deletions docs/src/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@book{AbsilMahonySepulchre:2008,
AUTHOR = {Absil, P.-A. and Mahony, R. and Sepulchre, R.},
DOI = {10.1515/9781400830244},
NOTE = {available online at [press.princeton.edu/chapters/absil/](http://press.princeton.edu/chapters/absil/)},
NOTE = {available online at \href{http://press.princeton.edu/chapters/absil/}{press.princeton.edu/chapters/absil/}},
PUBLISHER = {Princeton University Press},
TITLE = {Optimization Algorithms on Matrix Manifolds},
YEAR = {2008},
Expand Down Expand Up @@ -89,13 +89,15 @@ @book{AyJostLeSchwachhoefer:2017
PUBLISHER = {Springer Cham}
}
@article{AxenBaranBergmannRzecki:2023,
AUTHOR = {Seth D. Axen and Mateusz Baran and Ronny Bergmann and Krzysztof Rzecki},
EPRINT = {2021.08777},
EPRINTTYPE = {arXiv},
JOURNAL = {AMS Transactions on Mathematical Software},
NOTE = {accepted for publication},
TITLE = {Manifolds.jl: An Extensible {J}ulia Framework for Data Analysis on Manifolds},
YEAR = {2023}
AUTHOR = {Axen, Seth D. and Baran, Mateusz and Bergmann, Ronny and Rzecki, Krzysztof},
ARTICLENO = {33},
DOI = {10.1145/3618296},
JOURNAL = {ACM Transactions on Mathematical Software},
MONTH = {dec},
NUMBER = {4},
TITLE = {Manifolds.Jl: An Extensible Julia Framework for Data Analysis on Manifolds},
VOLUME = {49},
YEAR = {2023}
}
#
# B
Expand All @@ -106,7 +108,6 @@ @article{Bacak:2014
EPRINT = {1210.2145},
EPRINTTYPE = {arXiv},
JOURNAL = {SIAM Journal on Optimization},
NOTE = {arXiv: [1210.2145](https://arxiv.org/abs/1210.2145)},
NUMBER = {3},
PAGES = {1542--1566},
TITLE = {Computing medians and means in Hadamard spaces},
Expand All @@ -115,9 +116,10 @@ @article{Bacak:2014
}
@article{BendokatZimmermann:2021,
AUTHOR = {Bendokat, Thomas and Zimmermann, Ralf},
EPRINT = {2108.12447},
EPRINTTYPE = {arXiv},
Journal = {arXiv Preprint, 2108.12447},
TITLE = {The real symplectic Stiefel and Grassmann manifolds: metrics, geodesics and applications},
URL = {https://arxiv.org/abs/2108.12447},
YEAR = {2021}
}
@article{BendokatZimmermannAbsil:2020,
Expand Down Expand Up @@ -586,7 +588,7 @@ @article{MassartAbsil:2020
DOI = {10.1137/18m1231389},
YEAR = {2020},
VOLUME = {41},
NOTE = {Preprint: [sites.uclouvain.be/absil/2018.06](https://sites.uclouvain.be/absil/2018.06)},
NOTE = {Preprint: \href{https://sites.uclouvain.be/absil/2018.06}{sites.uclouvain.be/absil/2018.06}},
NUMBER = {1},
PAGES = {171--198},
AUTHOR = {Estelle Massart and P.-A. Absil},
Expand Down
32 changes: 21 additions & 11 deletions src/Manifolds.jl
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import ManifoldsBase:
check_vector,
copy,
copyto!,
default_approximation_method,
default_inverse_retraction_method,
default_retraction_method,
default_vector_transport_method,
Expand Down Expand Up @@ -149,19 +150,14 @@ import ManifoldsBase:
submanifold_component,
submanifold_components,
vector_space_dimension,
vector_transport_along, # just specified in Euclidean - the next 5 as well
vector_transport_along_diff,
vector_transport_along_project,
vector_transport_along, # just specified in Euclidean - the next 5 as well
vector_transport_along!,
vector_transport_along_diff!,
vector_transport_along_project!,
vector_transport_along_diff!, # For consistency these are imported, but for now not
vector_transport_along_project!, # overwritten with new definitons.
vector_transport_direction,
vector_transport_direction_diff,
vector_transport_direction!,
vector_transport_direction_diff!,
vector_transport_to,
vector_transport_to_diff,
vector_transport_to_project,
vector_transport_to!,
vector_transport_to_diff!,
vector_transport_to_project!, # some overwrite layer 2
Expand All @@ -186,6 +182,9 @@ import ManifoldDiff:
riemannian_Hessian,
riemannian_Hessian!

import Statistics: mean, mean!, median, median!, cov, var
import StatsBase: mean_and_var

using Base.Iterators: repeated
using Distributions
using Einsum: @einsum
Expand All @@ -198,6 +197,7 @@ using ManifoldsBase:
ℝ,
ℂ,
ℍ,
AbstractApproximationMethod,
AbstractBasis,
AbstractDecoratorManifold,
AbstractInverseRetractionMethod,
Expand Down Expand Up @@ -225,20 +225,26 @@ using ManifoldsBase:
CotangentSpaceType,
CoTFVector,
CoTVector,
CyclicProximalPointEstimation,
DefaultBasis,
DefaultOrthogonalBasis,
DefaultOrthonormalBasis,
DefaultOrDiagonalizingBasis,
DiagonalizingBasisData,
DiagonalizingOrthonormalBasis,
DifferentiatedRetractionVectorTransport,
EfficientEstimator,
EmbeddedManifold,
EmptyTrait,
EuclideanMetric,
ExponentialRetraction,
ExtrinsicEstimation,
Fiber,
FiberType,
FVector,
GeodesicInterpolation,
GeodesicInterpolationWithinRadius,
GradientDescentEstimation,
InverseProductRetraction,
IsIsometricEmbeddedManifold,
IsEmbeddedManifold,
Expand Down Expand Up @@ -295,6 +301,7 @@ using ManifoldsBase:
VectorSpaceFiber,
VectorSpaceType,
VeeOrthogonalBasis,
WeiszfeldEstimation,
@invoke_maker,
_euclidean_basis_vector,
combine_allocation_promotion_functions,
Expand Down Expand Up @@ -607,8 +614,9 @@ include("deprecated.jl")
export test_manifold
export test_group, test_action

#
# Abstract main types
export CoTVector, AbstractManifold, AbstractManifoldPoint, TVector
# Manifolds
export AbstractSphere, AbstractProjectiveSpace
export Euclidean,
ArrayProjectiveSpace,
Expand Down Expand Up @@ -748,9 +756,10 @@ export AbstractInverseRetractionMethod,
ShootingInverseRetraction,
SoftmaxInverseRetraction
# Estimation methods for median and mean
export AbstractEstimationMethod,
export AbstractApproximationMethod,
GradientDescentEstimation,
CyclicProximalPointEstimation,
EfficientEstimator,
GeodesicInterpolation,
GeodesicInterpolationWithinRadius,
ExtrinsicEstimation
Expand Down Expand Up @@ -788,9 +797,10 @@ export ×,
convert,
complex_dot,
decorated_manifold,
default_vector_transport_method,
default_approximation_method,
default_inverse_retraction_method,
default_retraction_method,
default_vector_transport_method,
det_local_metric,
differential_canonical_project,
differential_canonical_project!,
Expand Down
5 changes: 5 additions & 0 deletions src/deprecated.jl
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@

@deprecate default_estimation_method(M::AbstractManifold, f) default_approximation_method(
M,
f,
)
@deprecate ExtrinsicEstimation() ExtrinsicEstimation(EfficientEstimator())
Loading

0 comments on commit c4f69c3

Please sign in to comment.