JuliaSmoothOptimizers / LDLFactorizations.jl

Factorization of Symmetric Matrices
GNU Lesser General Public License v3.0
35 stars 12 forks source link

supporting Intervals #90

Open JeffreySarnoff opened 3 years ago

JeffreySarnoff commented 3 years ago

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.
dpo commented 3 years ago

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.

JeffreySarnoff commented 3 years ago

thank you

JeffreySarnoff commented 3 years ago

(I am giving others a window to try just that before closing this issue)