import type { CoxeterDiagram } from './diagram.js'; import type { ExactRing, ExactValue } from './exact.js'; /** * A finite Coxeter group as a chamber-action graph: elements are integer * chamber IDs (0 = identity) and the only stored operation is right * multiplication by a generator. This is the group's source of truth — * matrices, rotors, and coordinates are all derived, never compared. */ export interface CoxeterAction { readonly diagram: CoxeterDiagram; readonly rank: number; readonly order: number; /** * leftMultiply[g * rank + i] = the element sᵢ·g — the point-reflection * table produced directly by the BFS (reflecting a chamber's point in * simple mirror i is left multiplication). */ readonly leftMultiply: Uint16Array | Uint32Array; /** * rightMultiply[g * rank + i] = the element g·sᵢ. Right multiplication * by stabilizer generators closes **left cosets** g·W_S — exactly the * face translates of the Wythoff construction. */ readonly rightMultiply: Uint16Array | Uint32Array; /** BFS tree: s(parentGenerator[g])·parent[g] = g; identity points at itself. */ readonly parent: Uint16Array | Uint32Array; readonly parentGenerator: Uint8Array; /** (−1)^wordLength — the determinant of the reflection product. */ readonly parity: Int8Array; } /** * Reflection in mirror `i`, acting on a signed mirror-distance tuple: * d′ⱼ = dⱼ − C[j][i]·dᵢ with C the doubled Gram matrix. Exact — this is * the entire geometric kernel of the enumeration. */ export declare function reflectDistances(point: readonly ExactValue[], mirror: number, twoGram: ReadonlyArray>, ring: ExactRing): ExactValue[]; /** * Enumerates the group by exact BFS on the orbit of a chamber-interior * point (all mirror distances 1): its stabilizer is trivial, so orbit * points correspond one-to-one with group elements. Throws if the count * disagrees with the diagram's declared order — the enumeration cannot * silently drift. */ export declare function enumerateCoxeterAction(diagram: CoxeterDiagram): CoxeterAction; /** * The orbit of an arbitrary exact mirror-distance tuple — the Wythoff * vertex set for a seed built from a ring pattern (1 on ringed mirrors, * 0 on unringed ones). Unlike chamber enumeration the stabilizer may be * nontrivial, so the orbit is a quotient: |orbit| = order / |stabilizer|. * Returns the distinct tuples in BFS order. */ export declare function orbitDistanceTuples(diagram: CoxeterDiagram, seed: readonly ExactValue[]): ExactValue[][]; /** * The standard Wythoff seed for a ring pattern: distance 1 from every * ringed (active) mirror, 0 from the rest — every generator edge then * has exact length 2·1 in the realization. */ export declare function wythoffSeed(diagram: CoxeterDiagram, rings: readonly boolean[]): ExactValue[]; //# sourceMappingURL=action.d.ts.map