Skip to content

@szhorvat szhorvat released this Oct 12, 2020

v0.5.1

Changes to exsiting functions:

  • IGReverseGraph now supports non-simple graphs.
  • IGLuneBetaSkeleton is now interruptible for β < 1.

Fixes:

  • Several functions failed to check if the graph was mixed (having both directed and undirected edges). This is now corrected.
  • IGLayoutBipartite now uses partitions which are consistent with IGBipartitePartitions.

Other changes:

  • Many corrections and improvements to the documentation.
Assets 3

@szhorvat szhorvat released this Oct 5, 2020

v0.5

New functions:

  • IGSplitQ recognizes split graphs and their degree sequences.
  • IGThresholdQ recognizes threshold graphs and their degree sequences.
  • IGPotentiallyConnectedQ recognizes the degree sequences of connected graphs.
  • IGBigraphicalQ recognizes the degree sequence pairs of bipartite graphs.
  • IGEulerianQ tests if a graph has an Eulerian path; IGEulerianPath and IGEulerianPathVertices find it.

Changes to existing functions:

  • IGGraphicalQ and IGRealizeDegreeSequence now support some types of non-simple graphs.
  • IGRealizeDegreeSequence now takes arguments in the order indegrees, outdegrees for consistency with other functions (previously it was outdegrees, indegrees).
  • IGEigenvectorCentrality sometimes returned incorrect values for isolated vertices in weighted graphs.
  • IGColoredSimpleGraph no longer discards vertex names.
  • IGModularity now supports directed graphs.
  • IGModularity and IGCommunitiesMultilevel now have a resolution parameter.
  • IGAdjacencyMatrixPlot now allows None to be specified as the colour representing non-existing edges.
  • IGEigenvectorCentrality assumes the adjacency matrix of undirected graphs to have twice the number of self-loops for each vertex on the diagonal. This makes the results consistent between an undirected graph and its directed equivalent when each edge is replaced by a mutual edge pair.

Fixes:

  • IGLayoutReingoldTilford no longer flips the layout.
  • IGLayoutReingoldTilford no longer draws overlapping tree branches.
  • IGBarabasiAlbertGame now allows negative values for β.
  • IGBetweennessEstimate sometimes returned incorrect results with finite cutoffs. This is now corrected.
  • IGCommunitiesLeiden: fix incorrect results when self-loops are present.
  • IGEigenvectorCentrality: fix incorrect results for isolated vertices and for vertices with self-loops.
  • IGGraphicalQ would return incorrect results when the second argument was {}. This is now corrected.

Other changes:

  • IGDegreeSequenceGame's "ConfigurationModelSimple" method is now much faster.
  • More robust error handling.

Notes:

  • IGraph/M 0.5 has been tested with Mathematica 10.3 and later only. Some effort has been made to allow it to work with Mathematica 10.0.2, but it has not been tested and compatibility is not guaranteed.
Assets 3

@szhorvat szhorvat released this Apr 3, 2020

v0.4

New functions:

  • Deterministic graph generators: IGKautzGraph, IGCompleteGraph, IGCompleteAcyclicGraph, IGDeBruijnGraph, IGChordalRing, IGEmptyGraph, IGRealizeDegreeSequence, IGFromPrufer, IGToPrufer, IGKaryTree, IGSymmetricTree, IGBetheLattice, IGTriangularLattice, IGMycielskian, IGExpressionTree, IGShorthand, IGFromNauty.
  • Random graph generators: IGWattsStrogatzGame, IGCallawayTraitsGame, IGEstablishmentGame, IGTreeGame, IGErdosRenyiGameGNM, IGErdosRenyiGameGNP.
  • Weighted graph functions: IGWeightedSimpleGraph, IGWeightedUndirectedGraph, IGWeightedVertexDelete, IGWeightedSubgraph, IGUnweighted, IGDistanceWeighted, IGWeightedAdjacencyGraph, IGVertexWeightedQ, IGEdgeWeightedQ, IGVertexStrength, IGVertexInStrength, IGVertexOutStrength.
  • Community detection: IGCommunitesFluid, IGCommunitiesLeiden.
  • Graph colouring functions: IGVertexColoring, IGEdgeColoring, IGKVertexColoring, IGKEdgeColoring, IGMinimumVertexColoring, IGMinimumEdgeColoring, IGChromaticNumber, IGChromaticIndex, IGVertexColoringQ.
  • Clique cover: IGCliqueCover, IGCliqueCoverNumber.
  • Mesh/graph conversion: IGMeshGraph, IGMeshCellAdjacencyMatrix, IGMeshCellAdjacencyGraph.
  • Lattice generation: IGLatticeMesh, IGTriangularLattice.
  • Proximity graphs: IGDelaunayGraph, IGGabrielGraph, IGRelativeNeighborhoodGraph, IGLuneBetaSkeleton, IGCircleBetaSkeleton.
  • Centralization: IGDegreeCentralization, IGBetweennessCentralization, IGClosenessCentralization, IGEigenvectorCentralization.
  • Planar graphs: IGPlanarQ, IGMaximalPlanarQ, IGOuterplanarQ, IGKuratowskiEdges, IGFaces, IGDualGraph, IGEmbeddingQ, IGPlanarEmbedding, IGOuterplanarEmbedding, IGCoordinatesToEmbedding, IGEmbeddingToCoordinates, IGLayoutPlanar, IGLayoutTutte.
  • Adjacency lists and embeddings: IGAdjacencyList, IGAdjacencyGraph.
  • Spanning trees and other tree-related functionality: IGSpanningTree, IGRandomSpanningTree, IGSpanningTreeCount, IGUnfoldTree, IGTreeQ, IGForestQ, IGTreelikeComponents, IGTreeGame, IGStrahlerNumber, IGOrientTree.
  • Matching functions: IGMaximumMatching, IGMatchingNumber.
  • Dominance: IGDominatorTree, IGImmediateDominators
  • Maximum flow: IGMaximumFlowValue, IGMaximumFlowMatrix.
  • Isomorphism: IGGetIsomorphism and IGGetSubisomorphism (they work with multigraphs), IGColoredSimpleGraph (for transforming multigraph isomorphism to coloured graph isomorphism).
  • Transitivity: IGVertexTransitiveQ, IGEdgeTransitiveQ, IGSymmetricQ, IGDistanceTransitiveQ.
  • Regular graphs: IGRegularQ, IGStronglyRegularQ, IGStronglyRegularParameters, IGDistanceRegularQ, IGIntersectonArray.
  • A framework for easy property transformations and graph styling: IGVertexProp, IGEdgeProp, IGEdgeVertexProp, IGVertexMap, IGEdgeMap, IGVertexPropertyList, IGEdgePropertyList.
  • Import functions: IGImport, IGImportString, $IGImportFormats; support for importing Graph6, Digraph6 and Sparse6.
  • Export functions: IGExport, IGExportString, $IGExportFormats; support for exporting standards-compliant GraphML that can be read by other igraph interfaces (R, Python).
  • Matrix functions: IGZeroDiagonal, IGTakeUpper, IGTakeLower, IGAdjacencyMatrixPlot, IGKirchhoffMatrix, IGJointDegreeMatrix.
  • Bipartite graphs: IGBipartiteIncidenceMatrix, IGBipartiteIncidenceGraph, IGBipartiteProjections.
  • Random walks: IGRandomEdgeWalk, IGRandomEdgeIndexWalk
  • Connectivity: IGGiantComponent, IGMinimalSeparators, IGFindMinimumCuts, IGFindMinimalCuts, IGBridges, IGConnectedComponentSizes, IGWeaklyConnectedComponentSizes, IGGomoryHuTree.
  • Efficiency measures: IGGlobalEfficiency, IGLocalEfficiency, IGAverageLocalEfficiency.
  • Neighbour degrees: IGAverageNeighborDegree, IGAverageDegreeConnectivity
  • Other testing functions: IGTriangleFreeQ, IGSelfComplementaryQ, IGCactusQ,IGNullGraphQ, IGHomeomorphicQ, IGAdjacentVerticesQ.
  • Other new functions: IGNeighborhoodSize, IGCoreness, IGVoronoiCells, IGSmoothen, IGSimpleGraph, IGPartitionsToMembership, IGMembershipToPartitions, IGSinkVertexList, IGSourceVertexList, IGIsolatedVertexList, IGReorderVertices, IGTakeSubgraph, IGDisjointUnion, IGTryUntil, IGVertexAssociate.
  • Added IGIndexEdgeList for retrieving the edge list of a graph in terms of vertex indices. This function is very fast and returns a packed array. It facilitates the efficient implementation of graph processing functions in pure Mathematica code, or interfacing with C libraries.

Updates to existing functions:

  • Community detection: Several functions support the "ClusterCount" option now.
  • IGRewireEdges now supports rewiring only the start or endpoint of directed edges (instead of both).
  • IGBipartiteQ now supports checking that a given partitioning is valid for a bipartite graph.
  • IGBipartitePartitions now provides control over the ordering of partitions using its second argument.
  • Isomorphism functions now ignore the directedness of empty graphs.
  • Isomorphism functions can now take vertex or edge colours from graph attributes.
  • IGBlissCanonicalGraph will now include include vertex colours into its output when appropriate, encoded as the "Color" vertex property.
  • IGDistanceCounts now optionally takes a list of starting vertices.
  • IGBetweenness(Estimate) and IGCloseness(Estimate) now optionally take a set of vertices to do the calculation on.
  • IGBetweenness(Estimate) and IGEdgeBetweenness(Estimate) now have the Normalized option.
  • IGRandomWalk now supports edge weights and the EdgeWeights option. Use EdgeWeights -> None to ignore weights, and thus restore the previous behaviour.
  • Clustering coefficient functions now support the "ExcludeIsolates" option.

Incompatible changes from IGraph/M 0.3:

  • A flat namespace structure is used. Functions from IGraphM`Utilities` have been moved to IGraphM` .
  • Renamed "MultipleEdges" option to MultiEdges for convenient typing and auto-completion.
  • Renamed IGMinSeparators to IGMinimumSeparators.
  • Renamed IGMakeLattice to IGSquareLattice. The name IGMakeLattice works, but it is deprecated.

Other changes:

  • Improved compatibility with Mathematica versions 11.2–12.1; handling of TwoWayRule as an edge specification and support for edge tagged graphs.
  • Bug fixes, performance improvements, documentation updates, and general polish.

Notes:

Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this Mar 30, 2020

  • IGNeighborhoodSize has a mode argument
  • IGSmoothen supports directed graphs
  • Bug fixes and improved compatibility with Mathematica 12.1
  • Documentation improvements
Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this Mar 28, 2020

  • New functions: IGGlobalEfficiency, IGLocalEfficiency, IGAverageLocalEfficiency, IGAdjacenctVerticesQ, IGAverageNeighborDegree, IGAverageDegreeConnectivity, IGVertexAssociate
  • Big fixes
  • Documentation improvements
  • Improved compatibility with Mathematica 12.1
Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this Feb 14, 2020

  • Add IGTryUntil
  • Bug fixes and documentation improvements
Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this Feb 9, 2020

  • New functions:
    • IGSIRProcess
    • IGMinimumEdgeCuts, IGMinimalEdgeCuts
    • IGCommunitiesLeiden
    • Importing Graph6, Digraph6, Sparse6 with IGFromNauty, IGImport, IGImportString
  • IGCompleteGraph and IGCompleteAcyclicGraph: create graph from list of vertex names
  • Re-enable IGGraphlet* functions
  • Loading the package no longer Prints a message, it merely returns it. Use Needs["IGraphM`]; to suppress the message.
  • Documentation improvements.
  • Many bug fixes.
Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this May 7, 2019

This release corrects problems with the documentation and restores documentation compatibility with Mathematica 11.2. There are no functional changes.

Changes in the last release:

  • Most IGraph/M functions now use Mathematica's own random number generator and react to SeedRandom/BlockRandom. Use IGSeedRandom to switch back to the igraph default for better performance.

  • New functions: IGBiconnectedEdgeComponents, IGColoredSimpleGraph, IGCactusQ, IGCompleteQ, IGRegularQ, IGStronglyRegularQ, IGDistanceRegularQ, IGDistanceTransitiveQ.

  • Incompatible change: IGBlissAutomorphismGroup now returns a PermutationGroup expression.

  • Serious bugs fixed: IGDualGraph and IGEdgeTransitiveQ would return incorrect results for some inputs. This is now fixed.

  • Bug fixes, polish and documentation improvements.

Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this May 5, 2019

Changes in this release:

  • Most IGraph/M functions now use Mathematica's own random number generator and react to SeedRandom/BlockRandom. Use IGSeedRandom to switch back to the igraph default for better performance.

  • New functions: IGBiconnectedEdgeComponents, IGColoredSimpleGraph, IGCactusQ, IGCompleteQ, IGRegularQ, IGStronglyRegularQ, IGDistanceRegularQ, IGDistanceTransitiveQ.

  • Incompatible change: IGBlissAutomorphismGroup now returns a PermutationGroup expression.

  • Serious bugs fixed: IGDualGraph and IGEdgeTransitiveQ would return incorrect results for some inputs. This is now fixed.

  • Bug fixes, polish and documentation improvements.

Assets 3
Pre-release
Pre-release

@szhorvat szhorvat released this Apr 22, 2019

Changes in this release:

  • Added IGGetIsomorphism, IGGetSubisomorphism. The support multigraphs.
  • Important bug fixes to multigraph isomorphism
  • Faster minimum edge colouring
  • Bug fixes and documentation improvements
Assets 3