-
Notifications
You must be signed in to change notification settings - Fork 63
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
add some triangular ring solver and asymptotically fast generics #1490
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #1490 +/- ##
==========================================
- Coverage 87.11% 86.95% -0.17%
==========================================
Files 112 113 +1
Lines 28786 29023 +237
==========================================
+ Hits 25078 25236 +158
- Misses 3708 3787 +79 ☔ View full report in Codecov by Sentry. |
but what do we want? we have solve_triu for fields Ax = b rings (this PR) Ax = b solve_triu_left rings (this PR) xA = b All three accept large "b", ie. can solve multiple equations in one. However, they require "A" to be non-singular square We also have can_solve_left_reduced_triu which can deal with arbitrary matrices "A" in rref, but can only deal with single row "b" solve_triu for fields also has flags for the diagonal being 1 if b and A are square, this is asymptotically not optimal as it will be a n^3/2 algo I can add test - if we want this "interface" Note: for triangular, one cannot transpose to reduce one case to the other Note: in serious use, should also be supplemented by special implementations in Nemo/ Flint for nmod and/or ZZ and friends
also added module Strassen (see help string) to provide sub-cubic generics |
src/Matrix-Strassen.jl
Outdated
|
||
#Examples: | ||
|
||
```jldoctest |
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.
It seems that the doctest is failing
We should write down what we want for the "solve" interface or the linear algebra interface at large. I suggest we get the stuff here in, once the doctest is fixed. |
but what do we want?
we have
solve_triu for fields Ax = b
rings (this PR) Ax = b
solve_triu_left rings (this PR) xA = b
All three accept large "b", ie. can solve multiple equations in one.
However, they require "A" to be non-singular square
We also have
can_solve_left_reduced_triu
which can deal with arbitrary matrices "A" in rref, but can only deal with single row "b"
solve_triu for fields also has flags for the diagonal being 1
if b and A are square, this is asymptotically not optimal as it will be a n^3/2 algo
I can add test - if we want this "interface"
Note: for triangular, one cannot transpose to reduce one case to the
other
Note: in serious use, should also be supplemented by special
implementations in Nemo/ Flint for nmod and/or ZZ
and friends