-
Notifications
You must be signed in to change notification settings - Fork 55
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
SYMMLQ improvements #138
SYMMLQ improvements #138
Conversation
src/symmlq.jl
Outdated
|
||
rNorm = sqrt(γ * γ * ζ * ζ + ϵold * ϵold * ζold * ζold) | ||
rcgNorm = abs(rcgNorm*s*cold/c) | ||
rcgNorm = β * abs(s * ζ - c * ζbar) |
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.
Could you provide more information on these two changes?
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.
Should we check if gammabar = 0 ?
a3a5d63
to
7a44db5
Compare
I rebase this pull request. Contrary to I also add test problems where |
Codecov Report
@@ Coverage Diff @@
## master #138 +/- ##
==========================================
- Coverage 97.16% 97.05% -0.12%
==========================================
Files 26 26
Lines 2155 2176 +21
==========================================
+ Hits 2094 2112 +18
- Misses 61 64 +3
Continue to review full report at Codecov.
|
I'm not thrilled about having Infs in the code when gammabar = 0. I think we should test like in the other solvers?! |
My problem is what should we do with |
How do you do it in BiLQ? We could insert a |
7a44db5
to
70f86df
Compare
70f86df
to
cb6a961
Compare
In BiLQ and USYMLQ, residual norms are computed only if CG point exists (δbarₖ ≠ 0). With those methods, a SimpleStats is returned at the end. So it's not a problem if rcgNorms are not computed because we don't need to store them. |
BiLQ and USYMLQ could (should) also return CG residuals, even if they don't form the CG iterate until the end. |
I think we could change |
sounds good. |
Thank you. |
I modified SYMMLQ to be able to compute
x_lq
whenx_cg
doesn't exist.ζ = ζbar * c
is equal toInf
ifζbar = Inf
/γbar = 0
.The
η
variable has been introduce to solve this problem.