diff --git a/src/manifolds/ProductManifold.jl b/src/manifolds/ProductManifold.jl index 99d7f3be3c..ef90452df2 100644 --- a/src/manifolds/ProductManifold.jl +++ b/src/manifolds/ProductManifold.jl @@ -659,7 +659,7 @@ function injectivity_radius(M::ProductManifold, p, m::AbstractRetractionMethod) )..., ) end -function _injectivity_radius(M::ProductManifold, p, m::ProductRetraction) +function injectivity_radius(M::ProductManifold, p, m::ProductRetraction) return min( map( (lM, lp, lm) -> injectivity_radius(lM, lp, lm), @@ -673,7 +673,7 @@ injectivity_radius(M::ProductManifold) = min(map(injectivity_radius, M.manifolds function injectivity_radius(M::ProductManifold, m::AbstractRetractionMethod) return min(map(manif -> injectivity_radius(manif, m), M.manifolds)...) end -function _injectivity_radius(M::ProductManifold, m::ProductRetraction) +function injectivity_radius(M::ProductManifold, m::ProductRetraction) return min(map((lM, lm) -> injectivity_radius(lM, lm), M.manifolds, m.retractions)...) end @@ -728,18 +728,6 @@ for TP in [ProductRepr, ArrayPartition] ) end -function _inverse_retract!(M::ProductManifold, X, p, q, method::InverseProductRetraction) - map( - inverse_retract!, - M.manifolds, - submanifold_components(M, X), - submanifold_components(M, p), - submanifold_components(M, q), - method.inverse_retractions, - ) - return X -end - function Base.isapprox(M::ProductManifold, p, q; kwargs...) return all( t -> isapprox(t...; kwargs...), diff --git a/test/manifolds/product_manifold.jl b/test/manifolds/product_manifold.jl index c74a05974c..b01be0a5e3 100644 --- a/test/manifolds/product_manifold.jl +++ b/test/manifolds/product_manifold.jl @@ -15,6 +15,11 @@ using RecursiveArrayTools: ArrayPartition @test Mse[1] == M1 @test Mse[2] == M2 @test injectivity_radius(Mse) ≈ π + @test injectivity_radius( + Mse, + ProductRetraction(ExponentialRetraction(), ExponentialRetraction()), + ) ≈ π + @test injectivity_radius(Mse, ExponentialRetraction()) ≈ π @test injectivity_radius( Mse, ProductRepr([0.0, 1.0, 0.0], [0.0, 0.0]),