M.transp in spherefactory

28 views
Skip to first unread message

nieswan...@googlemail.com

unread,
Apr 18, 2016, 12:13:40 PM4/18/16
to Manopt
Hello together,

i write to you about the transpose function (M.transp) in the spherefactory.

Is this function supposed to do a parallel transport of a tangent vector in one point to another point?

If the answer is yes, I am confused about the output:

M.transp([1;0],[0;1],[0;1]) gives me [0;0] as an answer. I see that this results from projecting the tangent vector in [1;0] onto the tangent space in [0;1].
But is it really that easy? Shouldn't the parallel projection in S^1 be a rotation from one to the other point?

Is there a bug or am I only messing up the math?

Best,
Sarah

BM

unread,
Apr 18, 2016, 12:30:44 PM4/18/16
to Manopt
Hello Sarah, 

Thanks for the interest in Manopt. 

M.transp implements the vector transport on manifolds. More details about the same are in Section 8.1 of http://press.princeton.edu/chapters/absil/Absil_Chap8.pdf.

Regards,
Bamdev


Nicolas Boumal

unread,
Apr 18, 2016, 12:30:49 PM4/18/16
to manopt...@googlegroups.com
Dear Sarah,

Thank you for your message.

You are absolutely right: this is not a parallel transport. It is only an approximation of it (in a not so precisely defined sense) when x and y are two close-by points on the manifold.

Some reasons for it are:

 * Algorithms in Manopt do not really need a true transport: something "reasonable" for nearby points is sufficient for the purpose of optimization. So we did not work very hard on that front.

 * For most manifolds, there are no explicit expressions for the parallel transport, or they can be rather expensive to compute. So it is a good idea to design algorithms that do not require them.

This being said, I agree that for the sphere in particular, we could implement the real transport, at least as an alternative. If you are looking for mathematical expressions for it, see for example this paper, page 12:

Best,
Nicolas

pygouse...@gmail.com

unread,
Mar 27, 2019, 5:41:20 AM3/27/19
to Manopt
Dear Nicolas,

I now see that M.isotransp was added to Manopt, but the doc specifies that "only few manifolds implement it". Does this means that not all of them have the function M.isotransp or that there is generally a fallback to M.transp ?

Best,
Pierre-Yves

Nicolas Boumal

unread,
Mar 27, 2019, 11:10:08 AM3/27/19
to Manopt
Hello Pierre-Yves, 

There is no fallback by default no. You can check if a manifold has it with isfield(M, 'isotransp'). If not, you could force a fallback by setting M.isotransp = M.transp. 

Best, 
Nicolas 

On Wed, Mar 27, 2019, 10:41 <pygouse...@gmail.com> wrote:
Dear Nicolas,

I now see that M.isotransp was added to Manopt, but the doc spécifies that "only few manifolds implement it". Does this means that not all of them have the function M.isotransp or that there is generally a fallback to M.transp ?

Best,
Pierre-Yves

--
http://www.manopt.org
---
You received this message because you are subscribed to the Google Groups "Manopt" group.
To unsubscribe from this group and stop receiving emails from it, send an email to manopttoolbo...@googlegroups.com.
Visit this group at https://groups.google.com/group/manopttoolbox.
To view this discussion on the web visit https://groups.google.com/d/msgid/manopttoolbox/df4b9841-9332-48bf-a814-6ca79387af85%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages