-
Notifications
You must be signed in to change notification settings - Fork 143
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit separates methods in the 'Manifold' base class into abstract methods, which must be implemented by valid subclasses, and those which are only required by certain solvers. If a subclass does not provide one of those optional methods, we now raise a generic but informative NotImplementedError. The class constructor now also requires a 'name' and 'dimension' argument, which are used in the generic implementations of the classes '__str__' method and 'dim' property so that subclasses don't have to provide this method/property manually. Embedded submanifolds of Euclidean spaces offer particularly convenient ways to convert Euclidean gradients and Hessian-vector products to their Riemannian counterparts by means of tangent space projectors and Weingarten maps, respectively. To ease implementations, we now provide a 'EuclideanEmbeddedSubmanifold' class, which, in addition to the required abstract 'Manifold' methods, only requires descendants to implement the 'weingarten' method to support 'ehess2rhess'. Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
- Loading branch information
Showing
1 changed file
with
119 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters