-
Notifications
You must be signed in to change notification settings - Fork 31
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
Some (many?) proposals #56
Comments
Hello @gpapo, thanks for the proposals, they seem to really improve the code. @dpo had a few modifications regarding type stability, so let's wait for his opinion. |
@dpo Any opinions here? |
Working on it. |
#59 introduces types for internal functions (prod, tprod, ctprod). The main goal is type stability, but we're not there yet and there are some issues. @gpapo All other contributions are very welcome. Thanks! |
@gpapo Some thoughts on your proposals:
Good idea.
Sounds good to me.
I think you're right. Is there a performance advantage if they are immutable, or is the advantage mainly to protect against accidental changes?
I think that's essentially what's going on in #59. Some operations are still type unstable though.
I don't have a strong opinion on this. Is there an advantage?
Could you give elaborate on how this could be used to combine operators more efficiently?
So essentially, the user would "promise" that the operator defined is symmetric/hermitian? I presume we could run the quick checks but we couldn't possibly assert that they are truly symmetric/hermitian. |
For example one could say that linear operator |
I've created two simpler issues related to the proposal here: #113 and #114. Some are already done, and some have been done and undone (like the types of |
Hello, newbie here. I have in mind some features and possible optimization that
could help to improve this package, also in terms of maintainability. I wanted
to open this issue for having a feedback from the maintainers before starting
to open Pull Requests.
My ideas consist of
"basics.jl", "operations.jl", "specials.jl". I think that each file name
is self-explicative.
AbstractLinearOperator
more generic, substitutingexplicit fields invocations (e.g.
op.symmetric
) with traits (e.g.issymmetric(op)
).LinearOperator
immutable (don't have find any function norreason why it should be mutable but, please, correct me if I am wrong).
LinearOperator{T}
with the type of transformationfunction, (to become
LinearOperator{T, Fprod, Ftprod, Fctprod}
) so thatthere is more specialization and in theory a better performance on code
(this has to be tested).
undef
to signal non-specifiedtprod
s andctprod
s insteadof
nothing
, because in my opinion it would be more self-describing.v -> M * v
, something like a callableM
and use it to combine linear operators ina more efficient manner.
fields and creating two new
AbstractLinearOperator
s such asSymmetricLinearOperator
andHermitianLinearOperator
with which todispatch, instead of using many
if-else
statements. Symmetry can thenbe checked as a trait and it could be useful a function
linearoperator(x)
that transform a Matrix or a function in the most informative type.
I am ready to take care of these PRs. None of them seems breaking to me,
but first of all let me know what do you think about them.
The text was updated successfully, but these errors were encountered: