ddg.geometry.elliptic_models module

Elliptic geometry module.

This is the metric Cayley-Klein geometry with empty / positive definite absolute.

class ddg.geometry.elliptic_models.ProjectiveModel(dimension)[source]

Bases: MetricCayleyKleinGeometry

Elliptic geometry.

This is a Cayley-Klein geometry with empty absolute, so the model space is all of RPn.

Parameters:
dimensionint
Attributes:
dimensionint
property absolute

The absolute quadric with matrix diag([1,...,1]).

Returns:
Quadric
static metric_to_cayley_klein_distance(d)[source]

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

K is given by

K = cos(d) ** 2
Parameters:
dfloat
Returns:
Kfloat
static cayley_klein_distance_to_metric(K)[source]

Return Cayley-Klein distance converted to metric distance.

d is given by the equation

d = arccos(sqrt(K))
Parameters:
Kfloat
Returns:
dfloat
Raises:
ValueError

If K is not in [0, 1]

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:
centerPoint or numpy.ndarray of shape (n+1,)
radiusfloat

Cayley-Klein radius

subspaceSubspace or list of numpy.ndarray of shape (k,) (default=None)
Returns:
CayleyKleinSphere
d(v, w) float

Cayley-Klein metric

Parameters:
v, wnumpy.ndarray or Point

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

Returns:
float
generalized_cayley_klein_sphere(center, radius, subspace=None, atol=None, rtol=None)

Create a generalized Cayley-Klein sphere.

Parameters:
centerPoint or numpy.ndarray of shape (n+1,)
radiusfloat

Generalized radius

subspaceSubspace or list of numpy.ndarray of shape (k,) (default=None)
Returns:
GeneralizedCayleyKleinSphere
inner_product(v, w)

Alias for self.absolute.inner_product.

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

Create a sphere with metric radius.

Parameters:
centerPoint or numpy.ndarray of shape (n+1,)
radiusfloat

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

subspaceSubspace or array_like of shape (m,n) (default=None)
Returns:
MetricCayleyKleinSphere