This release fixes a number of bugs, rewrites the blockmodeling
algorithms and speeds up several functions considerably. Results of
signed_blockmodel() and
signed_blockmodel_general() differ from earlier versions
(see below).
as_adj_complex() now respects the attr
argument and works with named vertices. This also fixes
laplacian_matrix_complex(),
as_incidence_complex() and complex_walks() for
attributes other than "type".laplacian_matrix_signed(sparse = TRUE) no longer
errors. Normalized Laplacians (signed and complex) no longer return
NaN for isolated vertices.sample_islands_signed() always returns
islands.n * islands.size vertices (previously failed when
the highest-numbered vertices had no edges).balance_score(method = "walk") no longer overflows to
NaN on dense networks.
balance_score(method = "triangles") returns NA
for networks without triangles.triad_census_signed() returns the census in canonical
order.eigen_centrality_signed() returns a real vector for
directed networks (or errors if the dominant eigenvalue is
complex).ggblock() colors ties correctly if only one sign is
present. ggsigned(type = "complex") now uses
attr for edge colors and no longer overwrites the
type attribute.as_signed_proj() handles vertex names containing
"-", "pos" or "neg".complex_walks() validates k.signed_blockmodel_general() returned a membership that
did not match the reported criterion, and a wrong (even negative)
criterion for alpha != 0.5. The meaning of
alpha now matches signed_blockmodel().signed_blockmodel(annealing = FALSE) no longer returns
the random initial partition for networks with large blocks, and it
always takes the best improving move.signed_blockmodel() and
signed_blockmodel_general() validate k,
alpha and blockmat (square, symmetric for
undirected networks).attr argument of igraph. Values of
multiple edges are still summed.data-raw/triad_tables.R).src/Makevars.sample_gnp_signed() and
sample_bipartite_signed() validate p_neg.ggblock(), ggsigned()
and frustration_exact().count_signed_triangles(),
signed_triangles() and
count_complex_triangles() are vectorized (several hundred
times faster on networks with many triangles).as_incidence_complex() and degree_signed()
are vectorized and use sparse matrices. complex_walks() is
about twice as fast.graph_circular_signed() computes arc lengths directly
from the sampled angles, which also avoids NaNs from
rounding errors.signed_blockmodel(annealing = TRUE) no longer uses
stats::optim() and is about 25x faster.signed_triangles() that resulted in
wrong vertex ids (#20)frustration_exact() to vignetteis_signed,graph_from_adjacency_matrix_signed,
and graph_from_edgelist_signed()sample_gnp_signed(),
sample_bipartite_signed()frustration_exact() to compute the exact number
of frustrated edgesas_unsigned_2mode()as_signed_proj()triad_census_signed()avatar datasetcomplex_walks()pn_index()stringsAsFactors issue in
complex_matrices.R