ddg.geometry.geometry_model_templates module

Abstract base classes for geometries.

This module defines abstract base classes for different types of geometries. Among other things, these can be used to pre-define metrics and absolute quadrics and they can be given to spheres.

class ddg.geometry.geometry_model_templates.MetricGeometry(dimension)[source]

Bases: ABC

Geometry that just has a dimension and defines a metric.

Parameters:
dimensionint

Notes

This class supports the == operator. Two metric geometries are equal if and only if they have the same type and dimension.

Attributes:
dimensionint
abstract d(v, w) float[source]

Metric function

Parameters:
v, wPoint or array_like of shape (n,)
Returns:
float
class ddg.geometry.geometry_model_templates.CayleyKleinGeometry(dimension)[source]

Bases: CayleyKleinSphereFactory

Cayley-Klein geometry abstract base class.

Parameters:
dimensionint

Dimension of the geometry. This is the actual “intuitive” dimension of the geometry, not the ambient dimension of the model.

Notes

This class supports __eq__, i.e. ==. Two quadric geometries are equal if and only if they have the same type, dimension and quadric.

Attributes:
dimensionint
absolute: Quadric

The absolute quadric.

property ambient_dimension
inner_product(v, w)[source]

Alias for self.absolute.inner_product.

cayley_klein_distance(v, w)[source]

Alias for self.absolute.cayley_klein_distance.

cayley_klein_sphere(center, radius, subspace=None, atol=None, rtol=None)[source]

Create a Cayley-Klein sphere.

Parameters:
centerddg.geometry.Point or numpy.ndarray of shape (n+1,)
radiusfloat

Cayley-Klein radius

subspaceddg.geometry.Subspace or list of numpy.ndarray of shape (k,)
(default=None)
Returns:
ddg.geometry.spheres.CayleyKleinSphere
generalized_cayley_klein_sphere(center, radius, subspace=None, atol=None, rtol=None)[source]

Create a generalized Cayley-Klein sphere.

Parameters:
centerddg.geometry.Point or numpy.ndarray of shape (n+1,)
radiusfloat

Generalized radius

subspaceddg.geometry.Subspace or list of numpy.ndarray of shape (k,)
(default=None)
Returns:
ddg.geometry.spheres.GeneralizedCayleyKleinSphere
class ddg.geometry.geometry_model_templates.MetricCayleyKleinGeometry(dimension)[source]

Bases: CayleyKleinGeometry, MetricGeometry, SphereFactory

Metric Cayley-Klein geometry.

A metric Cayley-Klein geometry is a Geometry with a metric that is computed from a Cayley-Klein “distance” induced by a quadric.

Parameters:
dimensionint

Notes

This class supports __eq__, i.e. ==. Two metric Cayley-Klein geometries are equal if and only if they have the same type, dimension and quadric.

Attributes:
dimensionint
abstract metric_to_cayley_klein_distance(d) float[source]

Return Metric distance converted to Cayley-Klein “distance”.

Parameters:
dfloat
Returns:
Kfloat
abstract cayley_klein_distance_to_metric(d) float[source]

Convert Cayley-Klein “distance” to metric.

Parameters:
Kfloat
Returns:
dfloat
d(v, w) float[source]

Cayley-Klein metric

Parameters:
v, wnumpy.ndarray or ddg.geometry.Point

Homogeneous coordinate vectors or Point instances. Both points must be either inside or outside the absolute quadric.

Returns:
float
sphere(center, radius, subspace=None, atol=None, rtol=None)[source]

Create a sphere with metric radius.

Parameters:
centerddg.geometry.Point or numpy.ndarray of shape (n+1,)
radiusfloat

Radius in terms of the Cayley-Klein Metric self.d.

subspaceddg.geometry.Subspace or array_like of shape (m,n) (default=None)
Returns:
ddg.geometry.spheres.MetricCayleyKleinSphere
property ambient_dimension
cayley_klein_distance(v, w)

Alias for self.absolute.cayley_klein_distance.

cayley_klein_sphere(center, radius, subspace=None, atol=None, rtol=None)

Create a Cayley-Klein sphere.

Parameters:
centerddg.geometry.Point or numpy.ndarray of shape (n+1,)
radiusfloat

Cayley-Klein radius

subspaceddg.geometry.Subspace or list of numpy.ndarray of shape (k,)
(default=None)
Returns:
ddg.geometry.spheres.CayleyKleinSphere
generalized_cayley_klein_sphere(center, radius, subspace=None, atol=None, rtol=None)

Create a generalized Cayley-Klein sphere.

Parameters:
centerddg.geometry.Point or numpy.ndarray of shape (n+1,)
radiusfloat

Generalized radius

subspaceddg.geometry.Subspace or list of numpy.ndarray of shape (k,)
(default=None)
Returns:
ddg.geometry.spheres.GeneralizedCayleyKleinSphere
inner_product(v, w)

Alias for self.absolute.inner_product.

absolute: Quadric

The absolute quadric.