UNPKG

gyrovector

Version:

Gyrovector classes for hyperbolic, Euclidean, and spherical geometries

65 lines (64 loc) 2.23 kB
import { VectorSpaceXY } from './vectorXY'; import { GyrovectorXYSpace } from './gyrovectorXY'; import { VectorSpace } from './vector'; import { GyrovectorSpace } from './gyrovector'; /** * A factory class for creating instances of vector spaces and gyrovector spaces * based on dimension and curvature. */ export declare class GyrovectorSpaceFactory { /** * Creates a 2-dimensional Euclidean vector space. * * @param dimension - Must be 2 * @param curvature - Must be 0 * @returns An instance of VectorSpaceXY * * @example * ```ts * const space = GyrovectorSpaceFactory.create(2, 0); * ``` */ static create(dimension: 2, curvature: 0): VectorSpaceXY; /** * Creates a 2-dimensional gyrovector space. * * @param dimension - Must be 2 * @param curvature - Curvature of space. Negative for hyperbolic space, zero for Euclidean space, * positive for spherical space. * @returns An instance of GyrovectorXYSpace * * @example * ```ts * const space = GyrovectorSpaceFactory.create(2, 1.0); * ``` */ static create(dimension: 2, curvature: number): GyrovectorXYSpace; /** * Creates a Euclidean vector space in arbitrary dimension. * * @param dimension - The number of spatial dimensions * @param curvature - Must be 0 * @returns A VectorSpace instance for the given dimension * * @example * ```ts * const space = GyrovectorSpaceFactory.create(3, 0); * ``` */ static create<Dimension extends number>(dimension: Dimension, curvature: 0): VectorSpace<Dimension>; /** * Creates a curved gyrovector space in arbitrary dimension. * * @param dimension - The number of spatial dimensions * @param curvature - Curvature of space. Negative for hyperbolic space, zero for Euclidean space, * positive for spherical space. * @returns A specific instance of vector space or a gyrovector space * * @example * ```ts * const space = GyrovectorSpaceFactory.create(4, 0.5); * ``` */ static create<Dimension extends number>(dimension: Dimension, curvature: number): GyrovectorSpace<Dimension>; }