-
Notifications
You must be signed in to change notification settings - Fork 24
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
Package maintenance #67
Conversation
Codecov Report
@@ Coverage Diff @@
## master #67 +/- ##
===========================================
+ Coverage 77.03% 91.45% +14.41%
===========================================
Files 2 2
Lines 479 468 -11
===========================================
+ Hits 369 428 +59
+ Misses 110 40 -70
Continue to review full report at Codecov.
|
It also speeds up small circulant matrix-vector multiplication: juli> using ToeplitzMatrices, BenchmarkTools
julia> C = Circulant(rand(250));
julia> x = rand(250);
julia> @btime $C*$x;
57.374 μs (1 allocation: 2.06 KiB) # PR
451.078 μs (1 allocation: 2.06 KiB) # current |
There's some more to come, so please hold the line... |
I ran Aqua.jl and fixed a couple of ambiguity issues. Among these were the wrong usage of julia> using Arpack, ToeplitzMatrices, Random
julia> Random.seed!(1234)
julia> H = Hankel(rand(250, 250));
julia> using BenchmarkTools
julia> @btime eigs($H);
16.261 ms (766 allocations: 91.70 KiB) # PR
32.388 ms (778 allocations: 92.14 KiB) # latest release
julia> Random.seed!(1234)
julia> H = Hankel(rand(500, 500));
julia> using FFTW
julia> @btime eigs($H);
66.520 ms (9217 allocations: 6.34 MiB) # PR
133.230 ms (791 allocations: 151.12 KiB) # latest release Perhaps the view with the negative stride should be materialized? I'll experiment with it some further. |
Ok, it feels like (almost) every untested function was in a broken state. 🤣 By now, only a couple of dimension mismatch lines are uncovered. So this is ready for review and merging. |
This package was sorely in need of some love.. thanks so much! |
Now, I believe I'm really done with the maintenance. I've included Aqua-testing for code quality, but turned off recursive ambiguity testing (otherwise it would fail for ambiguities in which this package is not involved directly). A few details to consider before merging: I have turned Perhaps this should bump the minor version to v0.8 then? |
Gentle bump. I guess having excellent coverage will be good for the other open PRs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the maintenance here
Sorry @andreasnoack, you merged too quickly. 😄
I found that the branching version is significantly faster than the one using
mod
. For instance,Matrix(C)
for a 100x100 circulant matrix takes 82µs withmod
vs. 15µs with the branching. The single indexing method should be obsolete since this is handled by Base. If we want to leave it anyway, then we should perhaps compute a singlej, i = divrem(i - 1, size(A, 1)); return A[i+1, j+1]
.Closes #23. And closes #30.