Skip to content

Implement the Veronese manifold #902

Description

@sChoiKr

Hi from Italy,

Since our next item on the TensorKitchen.jl to-do list is to add symmetric CP decomposition, we will need a Veronese manifold.

Veronese{𝔽,N,D} <: AbstractManifold{𝔽}
struct Veronese{𝔽,N,D} <: AbstractManifold{𝔽} end

As far as I understand, the Veronese manifold can be viewed as the symmetric, diagonal analogue of the Segre manifold: it corresponds to the rank-one tensor case where all tensor factors are tied together,

$$x_1 = x_2 = \cdots = x_d = x.$$

While working on vector transport for the Segre manifold, I started to understand better how the basic manifold structure and its necessary functions are organized. Thanks to your tutorial on how to create custom manifolds, I would like to suggest implementing a Veronese manifold in Manifolds.jl, although I am still not fully confident about the design.

This would also be useful for TensorKitchen.jl, since symmetric CP decomposition naturally uses rank-one symmetric tensors of the form

$$\left\{ \lambda\, x^{\otimes d} \;\middle|\; \lambda \in \mathbb{R}_{>0},\; x \in \mathbb{S}^{n-1} \right\} \subset (\mathbb{R}^n)^{\otimes d}.$$

Of course, I would work on this with my supervisor’s guidance. I am not completely sure whether adding a general Veronese manifold to Manifolds.jl makes sense from the ecosystem perspective, so I would be very happy to hear your thoughts or suggestions. If you think this should instead be handled differently, I would also completely understand.

Metadata

Metadata

Assignees

No one assigned

    Labels

    new manifoldThis issue proposes to implement a new manifold

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions