LDLFactorizations.jl
LDLFactorizations.jl copied to clipboard
supporting Intervals
A current conversation on Slack # Intervals asks is it reasonably easy to do?
bottine 01:39
I'm wondering how much work would be needed to be able to plug interval types into tulip
Jeffrey Sarnoff 2 hours ago
:wink: ? ask @mtanneau
Only visible to you
Slackbot 2 hours ago
OK! I’ve invited @mtanneau to this channel.
Mathieu Tanneau 2 hours ago
Hmm :male-detective:
Mathieu Tanneau 2 hours ago
On the top of my head, to support computations in arithmetic T,
it would need the following methods to be implemented (the list is non-exhaustive):
eps(T) to compute tolerances
sqrt(::T) to be used within factorizations
abs(::T) for some tolerances & step size computation
classical operations +, *, -, /
binary comparisons like >= and <=
Some norm(::Vector{T}, Inf) computations
Mathieu Tanneau 1 hour ago
The first step would be trying to compute an LDLt factorization of
a symmetric positive definite matrix with Interval eltype, using LDLFactorizations.jl.
If that fails badly and can't be resolved, then there's little change Tulip would work
Jeffrey Sarnoff 1 hour ago
IntervalArithmetic.jl supports all of those arithmetic T ops
(for norm(::Vector{T}, Inf) first do using LinearAlgebra). (edited)
Jeffrey Sarnoff 1 hour ago
@dpsanders do we have LDLt ___ with Interval eltype?
Mathieu Tanneau 30 minutes ago
Damn, I thought LDLFactorizations.jl supported any arithmetic... Turns out it requires T <: Real.
It might be fixable by "just" relaxing the type restrictions in the LDLFactorizations code.
It's possible to relax T <: Real. I've done it before for the symbolic factorization to factorize matrices of strings :-). No idea if that would be sufficient for intervals, but I have a feeling it could be made to work. The best way is to just try.
thank you
(I am giving others a window to try just that before closing this issue)