File: delmulti

package info (click to toggle)
graphviz 14.1.2-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 139,476 kB
  • sloc: ansic: 142,288; cpp: 11,975; python: 7,883; makefile: 4,044; yacc: 3,030; xml: 2,972; tcl: 2,495; sh: 1,391; objc: 1,159; java: 560; lex: 423; perl: 243; awk: 156; pascal: 139; php: 58; ruby: 49; cs: 31; sed: 1
file content (22 lines) | stat: -rw-r--r-- 397 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* create a copy of the input graph with no multiedges */
BEG_G { 
  graph_t g = graph ("merge", "S");
} 
E {
  int wt;
  node_t h = node(g,$.head.name);
  node_t t = node(g,$.tail.name);
  edge_t e = isEdge(t,h,"");
  wt = $.weight;
  if (wt <= 0) wt = 1;
  if (e) {
    e.weight = e.weight + wt;
  }
  else if (h != t) {
    e = edge(t,h,"");
    e.weight = wt;
  }
}
END_G { 
  fwriteG(g,1);
}