[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [igraph] Question about igraph_linegraph

**From**: |
Giuseppe G |

**Subject**: |
[igraph] Question about igraph_linegraph |

**Date**: |
Thu, 16 Feb 2012 16:24:20 +0000 |

**User-agent**: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.26) Gecko/20120131 Thunderbird/3.1.18 |

Hi,

`I've just started using the C API for a number of purposes and I have a
``question about the igraph_linegraph function.
`
I need to compute the line graph of a network similar to the following
---
a b
a c
a d
b d
---

`It is my understanding that igraph does not deal with string entries so
``I convert the network into numbers
`
--
1 2
1 3
1 4
2 4
--
and store the id->number map elsewhere.

`Now, I need to compute the line graph of this graph, which is stored in
``a textfile. I wrote the following code
`
int main(int argc, char **argv) {
if ( argc != 2 ){
fprintf(stderr, "usage: %s filename.in\n", argv[0] );
exit(1);
}
FILE *instream;
igraph_t graph;
igraph_t linegraph;
int result;
instream = fopen(argv[1], "r");
if(instream == 0){
fprintf(stderr, "Can't open input file.\n" );
exit(1);
}

` result = igraph_read_graph_edgelist(&graph, instream, 0,
``IGRAPH_UNDIRECTED);
` if (result != 0) {
fprintf(stderr, "Problems reading the inputstream. Code %d\n",
result);
exit(1);
}
result = igraph_linegraph(&graph, &linegraph);
if (result != 0) {
fprintf(stderr, "Problems obtaining the linegraph. Code %d\n",
result);
exit(1);
}
result = igraph_write_graph_edgelist(&linegraph, stdout);
if (result != 0) {

` fprintf(stderr, "Problems writing in the outputstream. Code %d\n",
``result);
` exit(1);
}
igraph_destroy(&graph);
igraph_destroy(&linegraph);
return 0;
}
this code will print the linegraph on the stdout as follows:
---
0 1
0 2
0 3
1 2
2 3
---
Now I was expecting something like
12 24
12 14
12 13
14 24
13 14

`instead I'm getting a redefined set of vertices and the mapping between
``the line graph vertices (0,1,2) and the graph edges is not provided.
`

`I need to cluster the line graph and then find out which line graph
``vertices cluster together (ie which of the original ab, bc etc edges
``cluster together) I was wondering if there's a way to get a different
``representation of the line graph or another way to achieve this. Thank you!
`
Best
Giuseppe
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

**[igraph] Question about igraph_linegraph**,
*Giuseppe G* **<=**