UNPKG

gramoloss

Version:

Graph theory package for edition and computation

85 lines (84 loc) 3.46 kB
import { Coord } from "./coord"; import { Graph } from "./graph"; import { Option } from "./option"; export declare enum GeneratorId { CliqueCircle = "CliqueCircle", IndependentCircle = "IndependentCircle", RandomTournament = "RandomTournament", RandomGNP = "RandomGNP", Star = "Star", CompleteBipartite = "CompleteBipartite", CompleteMultipartite = "CompleteMultipartite", Grid = "Grid", AztecDiamond = "AztecDiamond", Paley = "Paley", UnitDisk = "UnitDisk", UGTournament = "UGTournament", AcyclicTournament = "AcyclicTournament" } export declare class EmbeddedVertexData { pos: Coord; constructor(pos: Coord); } export declare class EmbeddedGraph extends Graph<EmbeddedVertexData, void> { } export declare function generateGraph(generatorId: string, params: Array<any>): Option<EmbeddedGraph>; /** * OBSOLETE generateUGTOurnament is a generalisation. * @param n number of vertices * @returns */ export declare function generateUTournament(n: number): EmbeddedGraph; /** * An acyclic tournament is a tournament which contains no directed cycle. * Such a graph is a Directed Acyclic Graph (DAG). * @param n number of vertices */ export declare function generateAcyclicTournament(n: number): EmbeddedGraph; /** * v(i) -> v(i-j) for all j in [1,k] * @param n number of vertices * @param k order * @example k = 0: acyclic * @example k = 1: U-tournaments */ export declare function generateUGTournament(n: number, k: number): EmbeddedGraph; /** * for every i < j, i -> j iff i+j is prime * @param n */ export declare function generateTestTournament(n: number): EmbeddedGraph; export declare function generateAztecDiamond(n: number): EmbeddedGraph; export declare function generateGrid(n: number, m: number): EmbeddedGraph; /** * Returns a graph with vertex set indices [0, sum(sizes)-1] * Vi = sum( sizes[k], k < i) + [0, sizes[i]-1] * For every i and j, every vertex of Vi is adjacent to every vertex of Vj * @param sizes list of the sizes of the parts * @example * For sizes = [5,4,3], the graph has 5+4+3 vertices * The sum of the degrees is 5*(4+3) + 4*(5+3) + 3*(5+4). */ export declare function generateCompleteMultipartite(sizes: Array<number>): EmbeddedGraph; export declare function generateCompleteBipartite(n: number, m: number): EmbeddedGraph; export declare function generateStar(n: number): EmbeddedGraph; export declare function generateRandomGNP(n: number, p: number): EmbeddedGraph; export declare function generateRandomTournament(n: number): EmbeddedGraph; export declare function generateCliqueCircle(n: number): EmbeddedGraph; export declare function generateIndependentCircle(n: number): EmbeddedGraph; export declare function generateRandomTree(n: number): EmbeddedGraph; /** * PaleyGraph is unoriented if p = 1 mod 4. * It is oriented if p = -1 mod 4. * @param p should be a prime number = +-1 mod 4 * @returns Error if p is not such a number * @example undirected: 5 13 17, directed: 3 7 11 */ export declare function generatePaleyGraph(p: number): EmbeddedGraph; export declare function generateCirculantTournament(n: number, gaps: Array<number>): EmbeddedGraph; /** * Return a random Unit Disk graph where vertices are set uniformely randomly in [-50,50]^2. * @param n integer >= 0, the number of vertices * @param d maximum distance between adjacent vertiecs */ export declare function generateUnitDisk(n: number, d: number): EmbeddedGraph;