@graphty/layout
Version:
graph layout algorithms based on networkx
33 lines (32 loc) • 1.24 kB
TypeScript
/**
* Kamada-Kawai layout algorithm optimization functions
*/
import { Graph } from '../../types';
import { DistanceMap } from './types';
/**
* Compute all-pairs shortest path distances for the graph
*
* @param G - NetworkX graph
* @param weight - Edge attribute for weight
* @returns Dictionary of dictionaries of shortest path distances
*/
export declare function _computeShortestPathDistances(G: Graph, weight: string): DistanceMap;
/**
* Solve the Kamada-Kawai layout optimization problem
*
* @param distMatrix - Matrix of desired distances between nodes
* @param positions - Initial node positions
* @param dim - Dimension of layout
* @returns Optimized node positions
*/
export declare function _kamadaKawaiSolve(distMatrix: number[][], positions: number[][], dim: number): number[][];
/**
* Cost function and gradient for Kamada-Kawai layout algorithm
*
* @param posVec - Flattened position array
* @param invDist - Inverse distance matrix
* @param meanWeight - Weight for centering positions
* @param dim - Dimension of layout
* @returns Array with [cost, gradient]
*/
export declare function _kamadaKawaiCostfn(posVec: number[], invDist: number[][], meanWeight: number, dim: number): [number, number[]];