-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
ExponentialUtilities v1.3 #9
Conversation
* `LinearAlgebra.mul!(y, A, x)` (for computing `y = A * x` in place). | ||
* `Base.size(A, dim)` | ||
* `LinearAlgebra.opnorm(A, p=Inf)`. If this is not implemented or the default implementation can be slow, you can manually pass in the operator norm (a rough estimate is fine) using the keyword argument `opnorm`. | ||
* `LinearAlgebra.ishermitian(A)`. If this is not implemented or the default implementation can be slow, you can manually pass in the value using the keyword argument `ishermitian`. |
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.
you might want to mention the DiffEqOperator helper @YingboMa made for this. We should add ishermitian
and opnorm
to it though.
It's confusing that both of them are called |
I like the mode choice in the high level allocating version. |
I think it looks nice! |
Did some extensive structural changes. @jagot would you like to develop BTW, I'd like to drop the initial plan of implementing |
In fact, I do not like the change to Regarding |
Fair point.
Since we're just extending
Sorry I'm not making things clear. What I suggest is to add import LinearAlgebra: eigen!
function eigen!(A::SymTridiagonal{T}, sw::StegrWork) where {T <: Real}
stegr!(A.dv, A.de, sw)
... # wrap things in an Eigen object
end The intention is that, if you're a power user and want a faster |
Added backward compatibility for |
Two main jobs to do:
ishermitian
andopnorm
requirement for custom operator types. #8.Write new version ofphiv!
analogous toexpv!
with Saad.Note that I've refactored
expv
into two functions, depending on the choice ofmode
. This is because the code for the two stopping modes are vastly different and they use different keyword arguments.