Google

Cyb3r Drag0nz Team Shell

Server : Apache
System : Linux server1.cbinetwhm.bi 4.18.0-553.123.1.el8_10.x86_64 #1 SMP Tue May 5 04:00:43 EDT 2026 x86_64
User : fenacobu (1017)
PHP Version : 8.1.34
Disable Functions : NONE
Current Directory : /usr/share/graphviz/gvpr/
Directory Status: Not Writeable | Document Root: Writeable

Upload File







Viewing: //usr/share/graphviz/gvpr/binduce

/* Given a bipartite graph, induce a non-bipartite graph.
 * argv[0]="name=value" This is used to identify the nodes used
 * to induce edges. If aget(n,name) == value, 
 *  if deg(n) == 1, delete
 *  if deg(n) == 2, delete and connect to neighbor with edge
 *  if deg(n) > 2, delete and add edge between all pairs of neighbors
 *  Add weights to edge.
 */
BEGIN{
  int i, cnt;
  int wt[edge_t];
  string values[int];
  node_t nbrs[int];
  edge_t e;
  tokens(ARGV[0],values,"=");
  string aname = values[0];
  string value = values[1];
  printf(2, "%s=%s\n", aname, value);
}
N[aget($,aname)==value] {
  if ($.degree > 1) {
    cnt = 0;
    for (e = fstedge($); e; e = nxtedge(e, $))
      nbrs[cnt++] = opp(e,$);
    for (i = 0; i < cnt-1; i++) {
      if ((e = isEdge(nbrs[i],nbrs[i+1],"")) != NULL) {
        wt[e] += 1;
      }
      else if ($G.directed && (e = isEdge(nbrs[i+1],nbrs[i],""))) {
        wt[e] += 1;
      }
      else if (nbrs[i] != nbrs[i+1]) { // avoid loops
        e = edge(nbrs[i],nbrs[i+1],"");
        wt[e] = 1;
      }
    }
    unset(nbrs);
  }
  delete($G,$);
}
END_G{
  for (wt[e]) {
    e.multiplicity = sprintf ("%d", wt[e]);
  }
}

Cyb3r Drag0nz Team • Google Edition