ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
Digraph.Digraph Class Reference
Collaboration diagram for Digraph.Digraph:

Public Member Functions

def __init__ (self, V=0, fn='')
 
def fromFile (self, fn)
 
def addEdge (self, v, w)
 
def adj (self, v)
 
def reverse (self)
 
def __str__ (self)
 

Public Attributes

 adjTable_
 
 E
 
 V
 

Detailed Description

Digraph is an implementation of digraphs which supports
adding edges and reversal

Definition at line 3 of file Digraph.py.

Constructor & Destructor Documentation

◆ __init__()

def Digraph.Digraph.__init__ (   self,
  V = 0,
  fn = '' 
)

Definition at line 7 of file Digraph.py.

7  def __init__(self, V=0, fn=''):
8  self.adjTable_ = {}
9  self.E = 0
10  if fn:
11  self.fromFile(fn)
12  else:
13  self.V = V
14  for i in range(V):
15  self.adjTable_[i] = []
16 

Member Function Documentation

◆ __str__()

def Digraph.Digraph.__str__ (   self)

Definition at line 60 of file Digraph.py.

60  def __str__(self):
61  lines = ['Digraph. V: '+ str(self.V) + ' E: ' + str(self.E)]
62  for v in range(self.V):
63  for w in self.adj(v):
64  lines.append('%d -> %d' % (v, w))
65 
66  return '\n'.join(lines)

◆ addEdge()

def Digraph.Digraph.addEdge (   self,
  v,
  w 
)

Definition at line 43 of file Digraph.py.

43  def addEdge(self, v, w):
44  assert v < self.V
45  assert w < self.V
46  self.adjTable_[v].append(w)
47  self.E += 1
48 

◆ adj()

def Digraph.Digraph.adj (   self,
  v 
)

Definition at line 49 of file Digraph.py.

49  def adj(self, v):
50  assert v < self.V
51  return self.adjTable_[v]
52 

◆ fromFile()

def Digraph.Digraph.fromFile (   self,
  fn 
)

Definition at line 17 of file Digraph.py.

17  def fromFile(self, fn):
18  state = 'START'
19  with open(fn, 'r') as fh:
20  for ll in fh:
21  l = ll.strip()
22  if not l or l.startswith('#'): continue
23 
24  if state == 'START':
25  self.V = int(l.strip())
26  for i in range(self.V):
27  self.adjTable_[i] = list()
28  state = 'NE'
29  continue
30  if state == 'NE':
31  # self.E = int(l.strip())
32  state = 'EDGES'
33  continue
34 
35  if state == 'EDGES':
36  toks = l.strip().split()
37  assert len(toks) == 2
38  v = int(toks[0])
39  w = int(toks[1])
40  self.addEdge(v, w)
41  continue
42 

◆ reverse()

def Digraph.Digraph.reverse (   self)

Definition at line 53 of file Digraph.py.

53  def reverse(self):
54  R = Digraph(self.V)
55  for v in range(self.V):
56  for w in self.adj(v):
57  R.addEdge(w, v)
58  return R
59 

Member Data Documentation

◆ adjTable_

Digraph.Digraph.adjTable_

Definition at line 8 of file Digraph.py.

◆ E

Digraph.Digraph.E

Definition at line 9 of file Digraph.py.

◆ V

Digraph.Digraph.V

Definition at line 13 of file Digraph.py.


The documentation for this class was generated from the following file:
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
DeMoUpdate.reverse
reverse
Definition: DeMoUpdate.py:563
Digraph
Definition: Digraph.py:1
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
str
Definition: BTagTrackIpAccessor.cxx:11
Trk::split
@ split
Definition: LayerMaterialProperties.h:38