Allow block multiplication of non-square blocks
Currently, BlockDiagonals keeps the block structure in matrix multiplication only if the blocks that are multiplied together have the same size. This is overly restrictive and rules out multiplication with non-square blocks.
This PR modifies the check done when multiplying BlockDiagonals to permit multiplication with non-square blocks while retaining the block diagonal structure.
In addition, the overhead of checking if blocks can be multiplied or added has been reduced.
Codecov Report
Merging #127 (db43d04) into master (00fab43) will increase coverage by
0.04%. The diff coverage is100.00%.
@@ Coverage Diff @@
## master #127 +/- ##
==========================================
+ Coverage 98.89% 98.93% +0.04%
==========================================
Files 5 5
Lines 361 375 +14
==========================================
+ Hits 357 371 +14
Misses 4 4
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/base_maths.jl | 100.00% <100.00%> (ø) |
|
| src/linalg.jl | 95.91% <100.00%> (-0.09%) |
:arrow_down: |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
What is the status of this PR? Can we get this done and merged?
I think development will be easier if support for old versions of Julia is dropped. I'll create a PR for that, following which we may rebase this PR and check.