Graph¶
Usage
use Graph;
Prototype 2-Uniform Hypergraph. Forwards implementation to AdjListHyperGraph and should support simple ‘addEdge(v1,v2)’ and ‘forall (v1, v2) in graph.getEdges()’; everything else should be forwarded to the underlying Hypergraph.
-
record
Graph
¶ -
var
instance
¶
-
var
pid
: int = -1¶
-
proc
init
(numVertices: integral, numEdges: integral)¶
-
proc
init
(numVertices: integral, numEdges: integral, mapping)
-
proc
init
(numVertices: integral, numEdges: integral, verticesMappings, edgesMappings)
-
proc
_value
¶
-
proc
destroy
()¶
-
var
-
class
GraphImpl
¶ -
var
pid
: int¶
-
var
hg
¶
-
var
edgeCounter
¶
-
type
vDescType
¶
-
var
insertAggregator
= UninitializedAggregator((hg.vDescType, hg.vDescType, int))¶
-
var
cachedNeighborListDom
: hg.verticesDomain.type¶
-
var
cachedNeighborList
: [cachedNeighborListDom] unmanaged Vector(hg.vDescType)¶
-
var
privatizedCachedNeighborListInstance
= cachedNeighborList._value¶
-
var
privatizedCachedNeighborListPID
= cachedNeighborList._pid¶
-
var
cacheValid
: atomicbool¶
-
proc
init
(numVertices, numEdges, verticesMapping, edgesMapping)¶
-
proc
init
(other: GraphImpl, pid: int)
-
proc
invalidateCache
()¶
-
proc
validateCache
()¶
-
proc
isCacheValid
()¶
-
proc
addEdge
(v1: integral, v2: integral)¶
-
proc
addEdge
(v1: hg.vDescType, v2: hg.vDescType)
-
proc
flush
()¶
-
iter
getEdges
(): (hg.vDescType, hg.vDescType)¶
-
iter
getEdges
(param tag: iterKind): (hg.vDescType, hg.vDescType)
-
iter
neighbors
(v: integral)¶
-
iter
neighbors
(v: integral, param tag: iterKind)
-
iter
neighbors
(v: hg.vDescType)
-
iter
neighbors
(v: hg.vDescType, param tag: iterKind)
-
proc
hasEdge
(v1: integral, v2: integral)¶
-
proc
hasEdge
(v1: integral, v2: hg.vDescType)
-
proc
hasEdge
(v1: hg.vDescType, v2: integral)
-
proc
hasEdge
(v1: hg.vDescType, v2: hg.vDescType)
-
proc
intersection
(_v1, _v2)¶
-
proc
intersectionSize
(_v1, _v2)¶
-
proc
simplify
()¶
-
proc
degree
(v: hg.vDescType)¶
-
proc
degree
(v: integral): int
-
var