Package geometry :: Package manifolds :: Module differentiable_manifold :: Class DifferentiableManifold
[hide private]
[frames] | no frames]

Class DifferentiableManifold

source code


This is the base class for differentiable manifolds.

Nested Classes [hide private]
  Embedding
Embedding(A, B, A_to_B, B_to_A, steps, type, desc)
  Isomorphism
Isomorphism(A, B, A_to_B, B_to_A, steps, type, desc)
  __metaclass__
Metaclass for defining Abstract Base Classes (ABCs).
Instance Methods [hide private]
 
__init__(self, dimension)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
assert_close(self, a, b, atol=1e-08, msg=None)
Asserts that two points on the manifold are close to the given tolerance.
source code
 
belongs(self, x)
Raises an Exception if the point does not belong to this manifold.
source code
 
belongs_ts(self, bv)
Checks that a vector *vx* belongs to the tangent space at the given point *base*.
source code
 
can_convert_to(self, manifold) source code
 
can_represent(self, manifold) source code
 
convert_to(self, m, my_point)
:param my_point: :type my_point: ``belongs``
source code
 
distance(self, a, b)
Computes the geodesic distance between two points.
source code
 
embed_in(self, M, my_point)
Embeds a point on this manifold to the target manifold M.
source code
 
embeddable_in(self, manifold) source code
 
expmap(self, bv)
Computes the exponential map from *base* for the velocity vector *v*.
source code
 
friendly(self, a)
Returns a friendly description string for a point on the manifold.
source code
 
from_yaml(self, yaml_structure)
Recovers a value from a Yaml structure.
source code
 
geodesic(self, a, b, t)
Returns the point interpolated along the geodesic.
source code
 
get_dimension(self)
Returns the intrinsic dimension of this manifold.
source code
 
interesting_points(self)
Returns a list of "interesting points" on this manifold that should be used for testing various properties.
source code
 
logmap(self, base, p)
Computes the logarithmic map from base point *base* to target *b*.
source code
 
project_from(self, M, his_point)
Projects a point on a bigger manifold to this manifold.
source code
 
project_to(self, m, my_point)
:param my_point: :type my_point: ``belongs``
source code
 
project_ts(self, bv)
Projects a vector *v_ambient* in the ambient space to the tangent space at point *base*.
source code
 
relations_descriptions(self) source code
 
tangent_bundle(self)
Returns the manifold corresponding to the tangent bundle.
source code
 
to_yaml(self, x)
:param x: :type x: ``belongs``
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Static Methods [hide private]
 
embedding(A, B, A_to_B, B_to_A, itype='user', steps=None, desc=None) source code
 
isomorphism(A, B, A_to_B, B_to_A, itype='user', steps=None, desc=None) source code
Class Variables [hide private]
  __abstractmethods__ = frozenset(['belongs', 'distance', 'expma...
  _abc_cache = <_weakrefset.WeakSet object at 0x23aa510>
  _abc_negative_cache = <_weakrefset.WeakSet object at 0x23aa9d0>
  _abc_negative_cache_version = 14
  _abc_registry = <_weakrefset.WeakSet object at 0x23aa410>
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, dimension)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

assert_close(self, a, b, atol=1e-08, msg=None)

source code 

           Asserts that two points on the manifold are close to the given
           tolerance. 
       


:param a: 
:type a:  ``belongs``

:param b: 
:type b:  ``belongs``

belongs(self, x)

source code 

Raises an Exception if the point does not belong to this manifold.

This function wraps some checks around :py:func:`belongs_`, which is implemented by the subclasses.

belongs_ts(self, bv)

source code 

           Checks that a vector *vx* belongs to the tangent space
           at the given point *base*.

       


:param bv: 
:type bv:  ``tuple(belongs,*)``

distance(self, a, b)

source code 

           Computes the geodesic distance between two points.  
       


:param a: 
:type a:  ``belongs``

:param b: 
:type b:  ``belongs``

:rtype:  ``>=0``

embed_in(self, M, my_point)

source code 

Embeds a point on this manifold to the target manifold M.

:param my_point: :type my_point: ``belongs``

expmap(self, bv)

source code 

           Computes the exponential map from *base* for the velocity 
           vector *v*. 

           This function wraps some checks around :py:func:`expmap_`, 
           which is implemented by the subclasses. 
           
       


:param bv: 
:type bv:  ``belongs_ts``

:rtype:  ``belongs``

friendly(self, a)

source code 

           Returns a friendly description string for a point on the manifold. 
       


:param a: 
:type a:  ``belongs``

from_yaml(self, yaml_structure)

source code 

Recovers a value from a Yaml structure.

:param yaml_structure: :type yaml_structure: ``list|dict``

:rtype: ``belongs``

geodesic(self, a, b, t)

source code 

Returns the point interpolated along the geodesic.

:param a: :type a: ``belongs``

:param b: :type b: ``belongs``

:param t: :type t: ``>=0,<=1``

:rtype: ``belongs``

interesting_points(self)

source code 

           Returns a list of "interesting points" on this manifold that
           should be used for testing various properties. 
       


:rtype:  ``list(belongs)``

logmap(self, base, p)

source code 

           Computes the logarithmic map from base point *base* to target *b*.  
           # XXX: what should we do in the case there is more than one logmap?
       


:param p: 
:type p:  ``belongs``

:param base: 
:type base:  ``belongs``

:rtype:  ``belongs_ts``

project_from(self, M, his_point)

source code 

Projects a point on a bigger manifold to this manifold.

:rtype: ``belongs``

project_ts(self, bv)

source code 

           Projects a vector *v_ambient* in the ambient space
           to the tangent space at point *base*.
       


:param bv: 
:type bv:  ``tuple(belongs,*)``

tangent_bundle(self)

source code 

Returns the manifold corresponding to the tangent bundle. The default gives a generic implementation. MatrixLieGroup have a different one.


Class Variable Details [hide private]

__abstractmethods__

Value:
frozenset(['belongs', 'distance', 'expmap', 'logmap', 'project_ts'])