-
Notifications
You must be signed in to change notification settings - Fork 56
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
Make sparse linear algebra operations work on all special matrices #110
Comments
We don't necessarily have to be clever for a lot of these right? If there's no simple, extant way to specialize, just perform a |
Isn't errors better? Then you could construct the correct (i.e. the transposed) matrix directly instead of thinking there is an efficient transpose solver? |
My thought was - the transpose is a small fraction of the time compared to the factorization, which also usually has fill-in and memory growth. So, if we don't promote, the user code will just have lots of I believe in many of these cases, the underlying solvers do support transpose solves, and we can optimize them over time. Right, now all this is a bit all over the place. Some work, some have fallbacks, and the rest error, and it is inconsistent with the dense versions. |
This is also what LinearAlgebra does for dense anyway right? I see On the other hand, at least for |
Just like LU in #131, we also need these:
In addition, we should put promotion rules in place at the very least:
\
on Symmetric{Float32, SparseMatrixCSC{Float32, Int64} fails #125)Also, need to make these all work for Symmetric, Hermitian, [etc.] (#13, #125) (https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/#Special-matrices)
Much of this essentially needs to have promotion rules in place to convert the matrix to a regular sparse matrix and then call the usual method. Over time, we can optimize certain paths.
Similar issue in the dense case that has a complete list of factorizations (not all of which may have sparse counterparts): JuliaLang/LinearAlgebra.jl#776
The text was updated successfully, but these errors were encountered: