Skip to content

Commit 04f4996

Browse files
Feb 11, 2026 minutes
1 parent df99525 commit 04f4996

2 files changed

Lines changed: 146 additions & 0 deletions

File tree

minutes/2025-12-17.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
Minutes, Dec 17, 2025
2+
3+
* agenda:
4+
5+
- assign one or more algorithms or utilities to everyone for review
6+
(see below): LAGraph
7+
8+
--------------------------------------------------------------------------------
9+
10+
consider these methods for src. Minor revisions needed in some of them,
11+
including API revisions:
12+
13+
LAGr_BreadthFirstSearch_Extended.c: uses LG_:
14+
LG_BreadthFirstSearch_SSGrB_Extended.c
15+
LG_BreadthFirstSearch_vanilla_Extended.c (skip this?)
16+
LAGr_PeerPressureClustering.c
17+
LAGraph_AllKCore.c: need both basic & adv methods; this is mixed
18+
LAGraph_AllKTruss.c
19+
LAGraph_HITS.c
20+
LAGraph_Hdip_Fiedler.c: needs lots of polish
21+
LAGraph_KCore.c: need both basic & adv
22+
LAGraph_KTruss.c
23+
LAGraph_MaximalIndependentSet.c: rename LAGr_, need a basic method
24+
LAGraph_SquareClustering.c
25+
LAGraph_VertexCentrality_Triangle.c
26+
LAGraph_coloring_MIS.c
27+
LAGraph_coloring_independent_set.c
28+
LAGraph_lcc.c
29+
30+
abandon the need for vanilla methods and just return GrB_NOT_IMPLEMENTED
31+
if not using SuiteSparse/GraphBLAS.h.
32+
33+
LAGr_EdgeBetweennessCentrality.c
34+
LAGr_MarkovClustering.c (but see latest issue posted)
35+
LAGr_Modularity.c
36+
LAGr_PartitionQuality.c
37+
LAGr_SwapEdges.c
38+
LAGraph_SwapEdges.c
39+
LAGraph_CFL_reachability.c
40+
LAGraph_EstimateDiameter.c
41+
LAGraph_ExactDiameter.c
42+
LAGraph_FastGraphletTransform.c
43+
LAGraph_KCoreDecompose.c
44+
LAGraph_MultiSourceBFS.c
45+
LAGraph_RegularPathQuery.c
46+
LAGraph_RichClubCoefficient.c
47+
LAGraph_scc.c
48+
LG_CC_FastSV5.c
49+
LG_CC_FastSV7_FA.c
50+
51+
Algorithms need work:
52+
53+
LAGr_MaxFlow.c (need to provide output R matrix? And flow_matrix is
54+
expensive to compute; revise)
55+
LAGraph_argminmax.c
56+
LAGraph_msf.c
57+
LAGraph_BF_*.c: need just one variant
58+
LAGraph_cdlp.c: use Container methods
59+
60+
need new LAGraph_Graph enums for these algorithms:
61+
62+
LAGraph_MaximalMatching.c: need LAGraph_Graph incidence matrix
63+
LAGraph_Coarsen_Matching.c: need LAGraph_Graph incidence matrix
64+
LAGr_MaximumMatching.c: need to switch to Container methods;
65+
need LAGraph_Graph bipartite graph
66+
LAGraph_cc_lacc.c: unsure
67+
68+
do not consider these algorithms:
69+
70+
LAGr_PageRankGX.c: for LDBC benchmarks only
71+
LAGr_TriangleCount_GPU.c: for testing draft GPU kernels only
72+
LAGraph_dnn.c: for an IEEE HPEC Graph Challenge only
73+
LAGraph_HelloWorld.c: will always be experimental
74+
LAGraph_cdlp_withsort.c: OK, but slow, see LAGraph_cdlp instead
75+
76+
add these Utilities to src:
77+
78+
LAGraph_FastAssign.c
79+
LAGraph_Incidence_Matrix.c but we need an LAGraph_Graph incidence matrix?
80+
LAGraph_Matrix_Hash.c
81+
LAGraph_Random_Matrix.c
82+
83+
do not add these Utilities to src; will be superseded by binsparse:
84+
85+
LAGraph_SFreeContents.c
86+
LAGraph_SFreeSet.c
87+
LAGraph_SLoadSet.c
88+
LAGraph_SRead.c
89+
LAGraph_SSaveSet.c
90+
LAGraph_SWrite.c
91+

minutes/2026-02-11.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# LAGraph Working Group Meeting Minutes - Feb 11, 2026
2+
3+
## Attendees
4+
- [x] Tim Davis
5+
- [x] Gabe Gomez
6+
- [x] Tim Mattson
7+
- [x] Scott McMillan
8+
- [x] Michel Pelletier
9+
10+
## Agenda and Minutes
11+
12+
**Agenda** by Tim Davis
13+
14+
**Minutes** by Tim Davis
15+
16+
We discussed the LAGraph API, using this spreadsheet:
17+
https://docs.google.com/spreadsheets/d/1-WnAsmrHRYh5KQeJZzMtZYZKiKblGKYOOIkw0MdokuU/edit?usp=sharing
18+
19+
We decided that all methods in src/algorithm must come in pairs:
20+
`LAGraph_[method]` and `LAGr_[method]`, for both Basic and Advanced. Utilities
21+
in src/utility will be Basic only, as `LAGraph_[method]`.
22+
23+
Basic methods can modify their input graph(s), while Advanced ones do not. In
24+
particular, Basic methods can add cached properties to their graph(s), while
25+
Advanced methods will return an error if they require a cached property that is
26+
missing. If a Basic method does not modify its input graph and the Advanced
27+
method needs no cached properties, then they are identical, but we will add the
28+
pair of `LAGraph_[method]` and `LAGr_[method]` methods anyway, for consistency.
29+
30+
The `LAGr_Init`, `LAGraph_Init`, `LAGraph_Finalize`, `LAGr_SampleDegree`, and
31+
`LAGr_SortByDegree` methods will be moved to src/algorithm. We need to add
32+
`LAGr_Finalize`, `LAGraph_SortByDegree`, and `LAGraph_SampleDegree`.
33+
34+
We discussed the possibility that the `LAGr_Init` and `LAGr_Finalize`
35+
pair of methods will (optionally) not call `GrB_init` and `GrB_finalize`,
36+
respectively.
37+
38+
We need to rename `LAGr_Betweenness` to `LAGr_BetweennessCentrality`,
39+
since there are other centrality metrics in experimental/algorithm.
40+
This is a breaking change in the API, so LAGraph would become v2.0.
41+
Applications that rely on LAGraph 1.x would need to be revised with the
42+
new name.
43+
44+
To discuss: replacing C pointers to array with `GrB_Vectors`, and replacing C
45+
input/output scalars with `GrB_Scalars`. This will cause additional breaking
46+
changes in the src/ methods, if we make this change. For example,
47+
`LAGr_Betweenness` takes as input `uint64_t *sources` and `int32_t ns`. This
48+
could be replaced by a single `GrB_Vector sources`, as is already done in
49+
`LAGr_EdgeBetweennessCentrality`. (So should `LAGr_Betweenness` be renamed to
50+
`LAGr_VertexBetweennessCentrality`?)
51+
52+
Adding this `GrB_Vector` would also require a descriptor or flag to state which
53+
list of indices should be used for a vector v: the indices I or values X from
54+
an implicit `GrB_extracTuples (I, X, v)` on the vector.
55+

0 commit comments

Comments
 (0)