Skip to content

mul! into dense outputs runs in GraphBLAS; fix Matrix(A') - #166

Merged
ViralBShah merged 2 commits into
v11from
vs/mul-dense
Oct 27, 2026
Merged

ViralBShah merged 2 commits into
v11from
vs/mul-dense

Conversation

@ViralBShah

Copy link
Copy Markdown
Member

Fixes #125.

  • mul! (How to enable multithreading? #125): mul!(C, A, B[, α, β]) with a GraphBLAS A (or its transpose) and dense B/C fell back to LinearAlgebra's generic single-threaded matmul. So Arpack's eigs, KrylovKit, etc. never used GraphBLAS or its threads, and only A * x did. The new 5-arg methods (which the 3-arg form forwards to) multiply in GraphBLAS via pack and write α*A*B + β*C into C. Contiguous views (e.g. Arpack's work-array slices) are wrapped without copying; other strided inputs are copied.
    • Burble shows GrB_mxm C=A*B, saxpy.
    • Test.detect_ambiguities count is unchanged from v11 (192).
  • Matrix(A') / Matrix(transpose(A)): these threw MethodError: wait(::Transpose); the transpose is now materialized first. A' of a complex array conjugates correctly.
  • Tests: 3- and 5-arg mul! against SparseArrays for vectors, matrices, an adjoint and views, plus Matrix(A') for a complex matrix.

🤖 Generated with Claude Code

ViralBShah and others added 2 commits October 27, 2026 18:09
mul!(C, A::GBArray, B) with dense B and C fell back to LinearAlgebra's generic
single-threaded matmul, so Arpack/KrylovKit never used GraphBLAS. The 5-arg
mul! now multiplies in GraphBLAS and writes alpha*A*B + beta*C into C.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Matrix(A') threw a MethodError on wait(::Transpose); materialize first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.90909% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.33%. Comparing base (ced917d) to head (63e2161).
⚠️ Report is 1 commits behind head on v11.

Files with missing lines Patch % Lines
src/abstractgbarray.jl 75.00% 1 Missing ⚠️
src/operations/mul.jl 94.44% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##              v11     #166      +/-   ##
==========================================
+ Coverage   67.23%   67.33%   +0.10%     
==========================================
  Files          54       54              
  Lines        4465     4485      +20     
==========================================
+ Hits         3002     3020      +18     
- Misses       1463     1465       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ViralBShah
ViralBShah merged commit e53284b into v11 Oct 27, 2026
7 checks passed
@ViralBShah
ViralBShah deleted the vs/mul-dense branch October 27, 2026 18:15
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.

How to enable multithreading?

1 participant