@uor-foundation/geometry
Version:
Layer 5: Geometric manifolds - the shape of mathematical space
62 lines • 2.06 kB
TypeScript
import type { PageTopology } from '@uor-foundation/topology';
import type { FieldSubstrate } from '@uor-foundation/field-substrate';
export interface Loop {
basePoint: bigint;
path: bigint[];
isClosed: boolean;
windingNumber: number;
}
export interface HomologyGroup {
dimension: number;
rank: number;
torsion: number[];
generators: Loop[][];
}
export interface FundamentalGroup {
basePoint: bigint;
generators: Loop[];
relations: string[];
}
export interface EulerCharacteristic {
vertices: number;
edges: number;
faces: number;
chi: number;
}
export declare class TopologicalInvariants {
private topology;
private fieldSubstrate;
private fieldSpaceGeometry;
constructor(topology: PageTopology, fieldSubstrate: FieldSubstrate);
computeFundamentalGroup(basePoint: bigint, radius: bigint): FundamentalGroup;
findLoopGenerators(basePoint: bigint, _radius: bigint): Loop[];
createFieldCycleLoop(basePoint: bigint): Loop | null;
createLagrangeLoop(basePoint: bigint, lagrangePoint: bigint): Loop | null;
createPageBoundaryLoop(basePoint: bigint): Loop | null;
computeHomologyGroups(maxDimension: number): HomologyGroup[];
private computeH0;
private computeH1;
private computeH2;
computeEulerCharacteristic(region: bigint[]): EulerCharacteristic;
computeBettiNumbers(maxDimension: number): number[];
isContractible(loop: Loop): boolean;
simplifyLoop(loop: Loop): Loop;
computeGenus(): number;
detectHoles(region: bigint[]): bigint[][];
private findRelations;
private computeCommutator;
private getPageNumber;
private findLagrangePointsInPage;
private patternsEqual;
private createPath;
private computeWindingNumber;
private createFieldDimensionLoop;
private createPageCycleLoop;
private areAdjacent;
private countFaces;
private getSampleRegion;
private findBoundary;
private findConnectedComponents;
private exploreComponent;
}
//# sourceMappingURL=topology.d.ts.map