Skip to content

RCC, FastAssign, and SwapEdges #310

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 166 commits into
base: with_GraphBLAS_v10
Choose a base branch
from

Conversation

GomezGab
Copy link

@GomezGab GomezGab commented May 11, 2025

LAGraph_RichClubCoefficient.c, rcc_demo.c, test_RichClubCoefficient.c, and LG_check_RCC.c

  • Get the rich club coefficient of a graph.
  • Given a Symmetric Graph with no self-edges, LAGraph_RichClubCoefficient will calculate the rich club coefficients of the graph.
  • The values will be output as a sparse GrB_Vector, and the rich club coefficient of k will be found at the closest entry at or above k.
  • check_RCC is the pure C version of the algorithm

LAGraph_FastAssign.c and FastAssign_demo.c

  • A GBv10 algorithm
  • Essentially moves CSC trick found in FastSV7 and in SwapEdges (WIP) to its own function.
  • This method is used for cases where you want to build a vector equivalent to the following for loop:
    for (j = 0 ; j < n ; j++)
      {
          uint64_t i = I_vec [j] ;
          c [i] += X_vec [j] ;
      }
    
  • Where += is defined by the accum and dup operators.
  • See more details in function comments.

LG_CC_FastSV7_FA.c, cc_demo.c, and test_ConnectedComponents.c

  • Demonstrates a use case for FastAssign by using FastAssign in the FastSV7 algorithm for GraphBLASv10.
  • Passes LG_BRUTAL tests
  • Code is simpler but performs as well as FastSV7. (In fact, it is consistently ~5% faster on GAP-twitter in my testing)
  • Piggybacked off of cc_demo.c and test_ConnectedComponents.c for testing and benchmarking.

LG_CC_FastSV7.c and LAGraph.h

  • Moved out the definition for USING_GRAPHBLAS_V10

LAGraph_SwapEdges.c, test_SwapEdges.c, and SwapEdges_demo.c

  • Randomizes undirected, unweighted Graphs.
  • Working, but the API will be changed.

GomezGab and others added 30 commits April 17, 2024 19:04
GomezGab and others added 30 commits April 8, 2025 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants