Skip to content

Commit

Permalink
Implement infectivity radius on Stiefel (#722)
Browse files Browse the repository at this point in the history
* Implement injectivity radius on Stiefel

---------

Co-authored-by: Mateusz Baran <[email protected]>
  • Loading branch information
kellertuer and mateuszbaran authored May 7, 2024
1 parent 6f54b6e commit bd0264f
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 2 deletions.
9 changes: 8 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.17] – unreleased
## [0.9.18] – 2024-05-07

### Added

* added the injectivity radius for the Stiefel manifold with Euclidean metric


## [0.9.17] – 2024-04-23

### Added

Expand Down
2 changes: 1 addition & 1 deletion 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.17"
version = "0.9.18"

[deps]
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
Expand Down
9 changes: 9 additions & 0 deletions docs/src/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,15 @@ @article{ZimmermannHueper:2022
EPRINT = {2103.12046},
EPRINTTYPE = {arXiv}
}
@article{ZimmermannStoye:2024,
AUTHOR = {Zimmermann, Ralf and Stoye, Jakob},
EPRINT = {2405.02268},
EPRINTTYPE = {arXiv},
JOURNAL = {arXiv Preprint},
TITLE = {The injectivity radius of the compact Stiefel manifold under the Euclidean metric},
URL = {https://arxiv.org/abs/2405.02268},
YEAR = {2024}
}
#
# Å
# ----------------------------------------------------------------------------------------
Expand Down
8 changes: 8 additions & 0 deletions src/manifolds/StiefelEuclideanMetric.jl
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,15 @@ end

_euclidean_unit_vector(n, i) = [k == i ? 1.0 : 0.0 for k in 1:n]

@doc raw"""
injectivity_radius(M::Stiefel)
Return the injectivity radius for the [`Stiefel`](@ref) manifold `M`,
which is globally ``π`` [ZimmermannStoye:2024](@cite).
"""
injectivity_radius(::Stiefel) = π

@doc raw"""
inverse_retract(M::Stiefel, p, q, method::ProjectionInverseRetraction)
Compute a projection-based inverse retraction.
Expand Down
2 changes: 2 additions & 0 deletions test/manifolds/stiefel.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ include("../header.jl")
@test is_default_metric(M, EuclideanMetric())
@test representation_size(M) == (3, 2)
@test manifold_dimension(M) == 3
@test injectivity_radius(M) == π
@test injectivity_radius(M2) == π
@test !is_flat(M)
@test !is_flat(M2)
@test is_flat(Stiefel(2, 1))
Expand Down

2 comments on commit bd0264f

@kellertuer
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register

Release notes:

Added

  • added the injectivity radius for the Stiefel manifold with Euclidean metric

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/106328

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.9.18 -m "<description of version>" bd0264f5c0e52853787083e281fd3b0e88793812
git push origin v0.9.18

Please sign in to comment.