gramoloss
Version:
Graph theory package for edition and computation
85 lines (84 loc) • 3.46 kB
TypeScript
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;