~igraph/igraph/0.5-main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
New in the R interface
----------------------

- The 'rescale', 'asp' and 'frame' graphical parameters were added
- Create graphs from a formula notation (graph.formula)
- Handle graph attributes properly
- Calculate the actual minimum cut for undirected graphs
- Adjacency lists, get.adjlist and get.adjedgelist added
- Eigenvector centrality computation is much faster now
- Proper R warnings, instead of writing the warning to the terminal
- R checks graphical parameters now, the unknown ones are not just
  ignored, but an error message is given  
- plot.igraph has an 'add' argument now to compose plots with multiple
  graphs
- plot.igraph supports the 'main' and 'sub' arguments
- layout.norm is public now, it can normalize a layout
- It is possible to supply startup positions to layout generators
- Always free memory when CTRL+C/ESC is pressed, in all operating
  systems
- plot.igraph can plot square vertices now, see the 'shape' parameter
- graph.adjacency rewritten when creating weighted graphs
- We use match.arg whenever possible. This means that character scalar 
  options can be abbreviated and they are always case insensitive

- VF2 graph isomorphism routines can check subgraph isomorphism now,
  and they are able to return matching(s)
- The BLISS graph isomorphism algorithm is included in igraph now. See
  canonical.permutation, graph.isomorphic.bliss
- We use ARPACK for eigenvalue/eigenvector calculation. This means that the
  following functions were rewritten: page.rank,
  leading.eigenvector.community.*, evcent. New functions based on
  ARPACK: hub.score, authority.score, arpack.
- Edge weights for Fruchterman-Reingold layout (layout.fruchterman.reingold).
- Line graph calculation (line.graph)
- Kautz and de Bruijn graph generators (graph.kautz, graph.de.bruijn)
- Support for writing graphs in DOT format
- Jaccard and Dice similarity coefficients added (similarity.jaccard,
  similarity.dice)
- Counting the multiplicity of edges (count.multiple)
- The graphopt layout algorithm was added, layout.graphopt
- Generation of "famous" graphs (graph.famous).
- Create graphs from LCF notation (graph.cf).
- Dyad census and triad cencus functions (dyad.census, triad.census)
- Cheking for simple graphs (is.simple)
- Create full citation networks (graph.full.citation)
- Create a histogram of path lengths (path.length.hist)
- Forest fire model added (forest.fire.game)
- DIMACS reader can handle different file types now
- Biconnected components and articulation points (biconnected.components,
  articulation.points)
- Kleinberg's hub and authority scores (hub.score, authority.score)
- as.undirected handles attributes now
- Geometric random graph generator (grg.game) can return the
  coordinates of the vertices
- Function added to convert leading eigenvector community structure result to
  a membership vector (community.le.to.membership)
- Weighted fast greedy community detection
- Weighted page rank calculation
- Functions for estimating closeness, betweenness, edge betweenness by 
  introducing a cutoff for path lengths (closeness.estimate,
  betweenness.estimate, edge.betweenness.estimate)
- Weighted modularity calculation
- Function for permuting vertices (permute.vertices)
- Betweenness ans closeness calculations are speeded up
- read.graph can handle all possible line terminators now (\r, \n, \r\n, \n\r)
- Error handling was rewritten for walktrap community detection,
  the calculation can be interrupted now
- The maxflow/mincut functions allow to supply NULL pointer for edge
  capacities, implying unit capacities for all edges

Bugs corrected in the R interface
---------------------------------

- Fixed a bug in cohesive.blocks, cohesive blocks were sometimes not
  calculated correctly

New in the Python interface
---------------------------

- Added shell interface: igraph can now be invoked by calling the script called
  igraph from the command line. The script launches the Python interpreter and
  automatically imports igraph functions into the main namespace
- Pickling (serialization) support for Graph objects
- Plotting functionality based on the Cairo graphics library (so you need to
  install python-cairo if you want to use it). Currently the following
  objects can be plotted: graphs, adjacency matrices and dendrograms. Some
  crude support for plotting histograms is also implemented. Plots can be
  saved in PNG, SVG and PDF formats.
- Unified Graph.layout method for accessing layout algorithms
- Added interfaces to walktrap community detection and the BLISS isomorphism
  algorithm
- Added dyad and triad census functionality and motif counting
- VertexSeq and EdgeSeq objects can now be restricted to subsets of the
  whole network (e.g., you can select vertices/edges based on attributes,
  degree, centrality and so on)

New in the C library
--------------------

- Many types (stack, matrix, dqueue, etc.) are templates now
  They were also rewritten to provide a better organized interface
- VF2 graph isomorphism routines can check subgraph isomorphism now,
  and they are able to return matching(s)
- The BLISS graph isomorphism algorithm is included in igraph now. See
  igraph_canonical_permutation, igraph_isomorphic_bliss
- We use ARPACK for eigenvalue/eigenvector calculation. This means that the
  following functions were rewritten: igraph_pagerank,
  igraph_community_leading_eigenvector_*. New functions based on
  ARPACK: igraph_eigenvector_centrality, igraph_hub_score,
  igraph_authority_score, igraph_arpack_rssolve, igraph_arpack_rnsolve  
- Experimental C attribute interface added. I.e. it is possible to use
  graph/vertex/edge attributes from C code now.

- Edge weights for Fruchterman-Reingold layout.
- Line graph calculation.
- Kautz and de Bruijn graph generators
- Support for writing graphs in DOT format
- Jaccard and Dice similarity coefficients added
- igraph_count_multiple added
- igraph_is_loop and igraph_is_multiple "return" boolean vectors
- The graphopt layout algorithm was added, igraph_layout_graphopt
- Generation of "famous" graphs, igraph_famous
- Create graphs from LCF notation, igraph_lcf, igraph_lcf_vector
- igraph_add_edge adds a single edge to the graph
- Dyad census and triad cencus functions added
- igraph_is_simple added
- progress handlers are allowed to stop calculation
- igraph_full_citation to create full citation networks
- igraph_path_length_hist, create a histogram of path lengths
- forest fire model added
- DIMACS reader can handle different file types now
- Adjacency list types made public now (igraph_adjlist_t, igraph_adjedgelist_t)
- Biconnected components and articulation points can be computed
- Eigenvector centrality computation
- Kleinberg's hub and authority scores
- igraph_to_undirected handles attributes now
- Geometric random graph generator can return the coordinates of the vertices
- Function added to convert leading eigenvector community structure result to
  a membership vector (igraph_le_community_to_membership)
- Weighted fast greedy community detection
- Weighted page rank calculation
- Functions for estimating closeness, betweenness, edge betweenness by 
  introducing a cutoff for path lengths
- Weighted modularity calculation
- igraph_permute_vertices added
- Betweenness ans closeness calculations are speeded up
- Startup positions can be supplied to the Kamada-Kawai layout
  algorithms
- igraph_read_graph_* functions can handle all possible line
  terminators now (\r, \n, \r\n, \n\r)
- Error handling was rewritten for walktrap community detection,
  the calculation can be interrupted now
- The maxflow/mincut functions allow to supply a null pointer for edge
  capacities, implying unit capacities for all edges

Bugs corrected in the C library
-------------------------------

- Memory leak fixed in adjacency list handling
- Memory leak fixed in maximal independent vertex set calculation
- Fixed a bug when rewiring undirected graphs with igraph_rewire
- Fixed edge betweenness community structure detection for unconnected graphs
- Make igraph compile with Sun Studio
- Betweenness bug fixed, when not computing for all vertices
- memory usage of clique finding reduced
- Corrected bugs for motif counts when not all motifs were counted,
  but a 'cut' vector was used
- Bugs fixed in trait games and cited type game
- Accept underscore as letter in GML files
- GML file directedness notation reversed, more logical this way