gyrovector
Version:
Gyrovector classes for hyperbolic, Euclidean, and spherical geometries
28 lines (27 loc) • 1.41 kB
TypeScript
import { VectorLike } from './vectorLike';
import { Curvature } from './curvatureDependentTrigonometricFunctions';
import { VectorSpaceBase } from './vectorSpaceBase';
import { VectorSpaceLike } from './vectorSpaceLike';
import { NumberTuplePrimitive } from './tuples';
/**
* n-dimensional gyrovector represented by an array of the correct length
*/
export declare class Gyrovector<Dimension extends number> implements VectorLike<Dimension, Gyrovector<Dimension>> {
readonly curvature: Curvature;
private _tuple;
constructor(curvature: Curvature, ...tuple: NumberTuplePrimitive<Dimension>);
array(): Readonly<NumberTuplePrimitive<Dimension>>;
add(u: Gyrovector<Dimension>): Gyrovector<Dimension>;
sub(v: Gyrovector<Dimension>): Gyrovector<Dimension>;
mult(c: number): Gyrovector<Dimension>;
div(c: number): Gyrovector<Dimension>;
rotate(radians: number, firstAxis?: number, secondAxis?: number): Gyrovector<Dimension>;
}
/**
* n-dimensional gyrovector space for gyrovectors represented by an array of the correct length
*/
export declare class GyrovectorSpace<Dimension extends number> extends VectorSpaceBase<Dimension, Gyrovector<Dimension>> implements VectorSpaceLike<Dimension, Gyrovector<Dimension>> {
curvature: Readonly<Curvature>;
constructor(curvature: number);
createVector(...tuple: NumberTuplePrimitive<Dimension>): Gyrovector<Dimension>;
}