Satsuma
a delicious .NET graph library

Satsuma  
Drawing  
ForceDirectedLayout  Attempts to draw a graph to the plane such that a certain equilibrium is attained 
GraphDrawer  Draws a graph on a Graphics 
INodeShape  Abstract base for shapes used to draw graph nodes 
NodeShape  A standard implementation of INodeShape (immutable) 
NodeStyle  The visual style for a drawn node 
PointD  An immutable point whose coordinates are double 
IO  
GraphML  
DictionaryProperty< T >  A property which can store values in a dictionary 
GraphMLFormat  Loads and saves graphs stored in GraphML format 
GraphMLProperty  Represents a GraphML property (or attribute) 
NodeGraphics  The visual appearance of a GraphML node 
NodeGraphicsProperty  A GraphML property describing the visual appearance of the nodes 
StandardProperty< T >  Represents a standard GraphML property (attribute), which may assign primitive values to objects 
LemonGraphFormat  Loads and saves graphs stored in the Lemon Graph Format 
SimpleGraphFormat  Loads and saves graphs which are stored in a very simple format 
Arc  Represents a graph arc, consisting of a wrapped Id 
ArcLookupExtensions  Extension methods for IArcLookup 
AStar  Uses the A* search algorithm to find cheapest paths in a graph 
BellmanFord  Finds cheapest paths in a graph from a set of source nodes to all nodes, or a negative cycle reachable from the sources 
Bfs  Performs a breadthfirst search (BFS) to find shortest paths from a set of source nodes to all nodes 
BiEdgeConnectedComponents  Finds the bridges and 2edgeconnected components in a graph 
BiNodeConnectedComponents  Finds the cutvertices and blocks (2nodeconnected components) of a graph 
Bipartition  Decides whether the graph is bipartite and finds a bipartition into red and blue nodes 
CheapestLinkTsp< TNode >  Solves the symmetric traveling salesman problem by using the cheapest link heuristic 
CompleteBipartiteGraph  A complete bipartite graph on a given number of nodes 
CompleteGraph  A complete undirected or directed graph on a given number of nodes 
ConnectedComponents  Finds the connected components of a graph 
ContractedGraph  Adaptor for identifying some nodes of an underlying graph 
CustomGraph  A graph implementation capable of storing any graph 
Dfs  Performs a customizable depthfirst search (DFS) 
Dijkstra  Uses Dijkstra's algorithm to find cheapest paths in a graph 
DisjointSet< T >  Implementation of the disjointset data structure 
DisjointSetSet< T >  Represents a set in the DisjointSet data structure 
FindPathExtensions  Extension methods for IGraph, for finding paths 
HamiltonianCycle  Attempts to find a (directed) Hamiltonian cycle in a graph using TSP solvers 
IArcLookup  A graph which can provide information about its arcs 
IBuildableGraph  A graph which can build new nodes and arcs 
IClearable  Interface for objects which can revert their state to default 
IDestroyableGraph  A graph which can destroy its nodes and arcs 
IDisjointSet< T >  Interface to a disjointset data structure 
IFlow< TCapacity >  Interface to a flow in a network 
IGraph  Interface to a readonly graph 
IMatching  Interface to a readonly matching 
InsertionTsp< TNode >  Solves the traveling salesman problem by using the insertion heuristic 
IntegerPreflow  Finds a maximum flow for integer capacities using the GoldbergTarjan preflow algorithm 
IPath  Interface to a readonly path 
IPriorityQueue< TElement, TPriority >  Interface to a priority queue which does not allow duplicate elements 
IReadOnlyDisjointSet< T >  Interface to a readonly disjointset data structure 
IReadOnlyPriorityQueue< TElement, TPriority >  Interface to a readonly priority queue 
ITsp< TNode >  Interface to TSP solvers 
Kruskal< TCost >  Finds a minimum cost spanning forest in a graph using Kruskal's algorithm 
Matching  Adaptor for storing a matching of an underlying graph 
MaximumMatching  Finds a maximum matching in a bipartite graph using the alternating path algorithm 
MinimumCostMatching  Finds a minimum cost matching in a bipartite graph using the network simplex method 
NetworkSimplex  Finds a minimum cost feasible circulation using the network simplex method 
Node  Represents a graph node, consisting of a wrapped Id 
Opt2Tsp< TNode >  Improves a solution for the traveling salesman problem by using the 2OPT method 
Path  Adaptor for storing a path of an underlying graph 
PathExtensions  Extension methods to IPath 
PathGraph  A path or cycle graph on a given number of nodes 
Preflow  Finds a maximum flow using the GoldbergTarjan preflow algorithm 
Prim< TCost >  Finds a minimum cost spanning forest in a graph using Prim's algorithm 
PriorityQueue< TElement, TPriority >  A heapbased noduplicates priority queue implementation 
RedirectedGraph  Adaptor for modifying the direction of some arcs of an underlying graph 
ReverseGraph  Adaptor for reversing all arcs of an underlying graph 
StrongComponents  Finds the strongly connected components of a digraph 
Subgraph  Adaptor for hiding/showing nodes/arcs of an underlying graph 
Supergraph  Adaptor for adding nodes/arcs to an underlying graph 
TopologicalOrder  Decides whether a digraph is acyclic and finds a topological order of its nodes 
TspUtils  Utilities regarding the traveling salesman problem 
UndirectedGraph  Adaptor showing all arcs of an underlying graph as undirected edges 