Skip to content

Releases: python-graphblas/graphblas-algorithms

2023.10.0

19 Oct 02:56
43c1731
Compare
Choose a tag to compare

Enhancements

  • Support NetworkX 3.2, which made many improvements to dispatching (#68, #77, #78)
  • Add support for Python 3.12 (#79)
  • Drop support for Python 3.8 (#77)

2023.6.0

08 Jun 21:46
1f5ccb6
Compare
Choose a tag to compare

New algorithms (#67)

  • algorithms.efficiency_measures.efficiency
  • algorithms.isomorphism.isomorph.fast_could_be_isomorphic
  • algorithms.isomorphism.isomorph.faster_could_be_isomorphic
  • algorithms.lowest_common_ancestors.lowest_common_ancestor
  • algorithms.operators.unary.complement
  • algorithms.operators.unary.reverse
  • algorithms.shortest_paths.weighted.bellman_ford_path_length
  • linalg.bethehessianmatrix.bethe_hessian_matrix
  • linalg.graphmatrix.adjacency_matrix
  • linalg.laplacianmatrix.laplacian_matrix
  • linalg.laplacianmatrix.normalized_laplacian_matrix
  • linalg.modularitymatrix.directed_modularity_matrix
  • linalg.modularitymatrix.modularity_matrix

2023.5.0

04 May 18:01
7dfd65b
Compare
Choose a tag to compare

Enhancements

  • Add support for Python 3.11 (#61)
  • Add logo and benchmarks to README (#60)

New algorithms (#51, #61, #62, #64)

  • Components
    • is_connected
    • is_weakly_connected
    • node_connected_component
  • Generators
    • ego_graph
  • Link Analysis
    • google_matrix
  • Operators
    • compose
    • difference
    • disjoint_union
    • full_join
    • intersection
    • symmetric_difference
    • union
  • Shortest Paths
    • all_pairs_shortest_path_length
    • bellman_ford_path
    • floyd_warshall_numpy
    • negative_edge_cycle
    • single_source_shortest_path_length
    • single_target_shortest_path_length
  • Traversal
    • bfs_layers
    • descendants_at_distance

2023.2.1

27 Feb 19:03
6de1fd6
Compare
Choose a tag to compare

Note: this is a re-release of 2023.2.0, because 2023.2.0 didn't build and upload to PyPI

  • Add scripts to run benchmarks and download data (#39)
  • Add floyd_warshall algorithm for all-pairs shortest path (#42)
  • Add floyd_warshall_predecessor_and_distance (#43)
  • Add all_pairs_bellman_ford_path_length and single_source_bellman_ford_path_length (#44)
  • Add NodeNodeMap class and matrix_to_nodenodemap and matrix_to_vectornodemap methods (#43)
    • These can replace matrix_to_dicts
  • Add fill_value to NodeMap (#43)
  • Allow NodeMap values to be interpreted as keys (#43)
  • Add more cached properties (#44)
    • min_diagonal (and other {monoid_name}_diagonal)
    • has_negative_diagonal
    • has_negative_edges- and has_negative_edges+
    • is_iso
    • iso_value
  • Add normalize_chunksize and partition utility functions to help run algorithms chunkwise (#47)
  • Misc. maintenance (#41, #45, #46)

2023.2.1a0

27 Feb 17:50
a3dbf9b
Compare
Choose a tag to compare
2023.2.1a0 Pre-release
Pre-release

No functional changes from 2023.2.0

Pre-release to test automatic upload to PyPI, which didn't work for 2023.2.0.

2023.2.0

27 Feb 15:39
24fd2b6
Compare
Choose a tag to compare
  • Add scripts to run benchmarks and download data (#39)
  • Add floyd_warshall algorithm for all-pairs shortest path (#42)
  • Add floyd_warshall_predecessor_and_distance (#43)
  • Add all_pairs_bellman_ford_path_length and single_source_bellman_ford_path_length (#44)
  • Add NodeNodeMap class and matrix_to_nodenodemap and matrix_to_vectornodemap methods (#43)
    • These can replace matrix_to_dicts
  • Add fill_value to NodeMap (#43)
  • Allow NodeMap values to be interpreted as keys (#43)
  • Add more cached properties (#44)
    • min_diagonal (and other {monoid_name}_diagonal)
    • has_negative_diagonal
    • has_negative_edges- and has_negative_edges+
    • is_iso
    • iso_value
  • Add normalize_chunksize and partition utility functions to help run algorithms chunkwise (#47)
  • Misc. maintenance (#41, #45, #46)

2022.12.1

01 Dec 07:15
83bfa40
Compare
Choose a tag to compare
  • Update README to show installation instructions and basic usage (#34)
    • Including use as a NetworkX plugin!
  • Create Graph from Matrix as Graph(A) instead of Graph.from_graphblas(A)(#35)
  • Update more places to use to_coo and from_coo instead of to_values and from_values (#32)
  • Use faster algorithm for s_metric (#38)
  • Add environment.yml to create developer environment (#37)
  • Add DOI from Zenodo to README (#33)

2022.11.0

17 Nov 04:57
77c580c
Compare
Choose a tag to compare
  • Add plugin code to be a backend for NetworkX 3.0 to dispatch to
  • Add graphblas_algorithms.nxapi that "looks" like the NetworkX API
  • Add lots of algorithms and other nice things!

2022.4.1

27 Apr 03:05
e30c0b2
Compare
Choose a tag to compare
  • Updated to use python-graphblas instead of grblas
  • Added average_clustering, clustering, transitivity, and triangles for undirected, unweighted graphs
  • Added git pre-commit hooks
  • Added some helpful utility functions to make things easier/cleaner

2022.4.0

04 Apr 19:40
67a9e4d
Compare
Choose a tag to compare

First release!

graphblas-algorithms is just getting started. It only has PageRank:

  • graphblas_algorithms.pagerank matches NetworkX API and passes all NetworkX PageRank tests.
  • graphblas_algorithms.link_analysis.pagerank_core is a fast, GraphBLAS-only implementation that is used by the former.
    • This is the implementation to bring to benchmarking shootout.

This project is in alpha and may undergo significant changes.