Skip to content

Rename Exponential Map in Code to generalize notion of retractions

If one wants to use a different update instead the exponential map, e.g. for unit vector just re-normalization.

In the Trustregion algorithm the "exp" is directly used where a more general retraction could be nicer https://gitlab.mn.tu-dresden.de/osander/dune-gfe/-/blob/master/dune/gfe/mixedriemanniantrsolver.cc#L485

          for (size_t j=0; j<newIterate[_0].size(); j++)
              newIterate[_0][j] = TargetSpace0::exp(newIterate[_0][j], corr[_0][j]);

          for (size_t j=0; j<newIterate[_1].size(); j++)
              newIterate[_1][j] = TargetSpace1::exp(newIterate[_1][j], corr[_1][j]);

Solution:

  • rename general usage from exp to retr
  • Manifolds should implement retr and point to the corresponding algo

The retraction pair exp and log should be also provided for other retraction, therefore log should be also replaced.

Edited by Müller, Alexander