time-to-botec/squiggle/node_modules/@stdlib/utils/compact-adjacency-matrix/docs/repl.txt
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

375 lines
7.2 KiB
Plaintext

{{alias}}( N )
Compact adjacency matrix constructor.
Parameters
----------
N: integer
Number of vertices.
Returns
-------
adj: Object
Compact adjacency matrix.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> adj.edges
[ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ] ]
{{alias}}.fromAdjacencyList( list[, clbk[, thisArg]] )
Creates a compact adjacency matrix from an adjacency list.
A callback function is provided two arguments:
- value: list element.
- i: list element index.
A callback function must return a list of vertices.
Parameters
----------
list: ArrayLikeObject|Iterable
Adjacency list.
clbk: Function (optional)
Callback to invoke for each list element.
thisArg: any (optional)
Callback execution context.
Returns
-------
adj: Object
Compact adjacency matrix.
Examples
--------
> var list = [ [ 1, 2 ], [ 2 ], [ 3 ], [] ];
> var adj = {{alias}}.fromAdjacencyList( list );
> adj.edges
[ [ 0, 1 ], [ 0, 2 ], [ 1, 2 ], [ 2, 3 ] ]
{{alias}}.fromEdges( N, edges[, clbk[, thisArg]] )
Creates a compact adjacency matrix from a list of edges.
A callback function is provided two arguments:
- value: list element.
- i: list element index.
A callback function must return a list of vertices specifying a directed
edge.
Parameters
----------
N: integer
Number of vertices.
edges: ArrayLikeObject
List of edges.
clbk: Function (optional)
Callback to invoke for each list element.
thisArg: any (optional)
Callback execution context.
Returns
-------
adj: Object
Compact adjacency matrix.
Examples
--------
> var edges = [ [ 0, 1 ], [ 0, 2 ], [ 1, 2 ], [ 2, 3 ] ];
> var adj = {{alias}}.fromEdges( 4, edges );
> var bool = adj.hasEdge( 0, 2 )
true
{{alias}}.prototype.addEdge( i, j )
Adds a directed edge between two vertices.
Parameters
----------
i: integer
Starting vertex.
j: integer
Ending vertex.
Returns
-------
adj: Object
Adjacency matrix instance.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
{{alias}}.prototype.edges
Returns the list of all edges.
Returns
-------
list: Array<Array>
List of edges.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.edges
[ [ 0, 1 ], [ 0, 2 ], [ 1, 2 ] ]
{{alias}}.prototype.hasEdge( i, j )
Checks whether a directed edge exists between two vertices.
Parameters
----------
i: integer
Starting vertex.
j: integer
Ending vertex.
Returns
-------
bool: boolean
Boolean indicating if an edge exists.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> var bool = adj.hasEdge( 0, 1 )
true
{{alias}}.prototype.inDegree( i )
Returns the indegree of a vertex (i.e., number of edges ending at a vertex).
Parameters
----------
i: integer
Vertex.
Returns
-------
v: integer
Indegree.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> var v = adj.inDegree( 2 )
2
{{alias}}.prototype.inEdges( i )
Returns a list of vertices having edges ending at a specified vertex.
Parameters
----------
i: integer
Vertex.
Returns
-------
out: Array<integer>
List of vertices.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> var out = adj.inEdges( 2 )
[ 0, 1 ]
{{alias}}.prototype.nedges
Returns the total number of edges.
Returns
-------
v: integer
Total number of edges.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> var out = adj.nedges
3
{{alias}}.prototype.nvertices
Returns the total number of vertices.
Returns
-------
v: integer
Total number of vertices.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> var out = adj.nvertices
4
{{alias}}.prototype.outDegree( i )
Returns the outdegree of a vertex (i.e., number of edges starting at a
vertex).
Parameters
----------
i: integer
Vertex.
Returns
-------
v: integer
Outdegree.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> var v = adj.outDegree( 2 )
1
{{alias}}.prototype.outEdges( i )
Returns a list of vertices having edges starting at a specified vertex.
Parameters
----------
i: integer
Vertex.
Returns
-------
out: Array<integer>
List of vertices.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> var out = adj.outEdges( 2 )
[ 3 ]
{{alias}}.prototype.removeEdge( i, j )
Removes a directed edge between two vertices.
Parameters
----------
i: integer
Starting vertex.
j: integer
Ending vertex.
Returns
-------
adj: Object
Adjacency matrix instance.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.edges
{{alias}}.prototype.toAdjacencyList()
Returns an adjacency list representation.
Returns
-------
out: Array<Array>
Adjacency list.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 0, 1 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 2, 3 );
> var out = adj.toAdjacencyList()
[ [ 1, 2 ], [ 2 ], [ 3 ], [] ]
{{alias}}.prototype.toposort()
Returns a topological ordering of the directed graph.
The function returns a two-element array.
If the function is able to compute a topological ordering, the first array
element is the topological ordering and the second element is `null`.
If a topological ordering cannot be achieved (e.g., due to the graph not
being a directed acyclic graph (DAG)), the first array element is `null` and
the second element is the first encountered cycle.
Returns
-------
out: Array
Results.
Examples
--------
> var adj = {{alias}}( 4 );
> adj.addEdge( 1, 0 );
> adj.addEdge( 1, 2 );
> adj.addEdge( 0, 2 );
> adj.addEdge( 2, 3 );
> var results = adj.toposort();
> var o = results[ 0 ]
[ 1, 0, 2, 3 ]
> var c = results[ 1 ]
null
> adj.addEdge( 3, 1 );
> results = adj.toposort();
> o = results[ 0 ]
null
> var c = results[ 1 ]
[ 0, 1, 3, 2, 0 ]
See Also
--------