Skip to content

LDLTFactorization #732

@timweiland

Description

@timweiland

What kind of problems is it mostly used for? Please describe.

SPD matrices. I know there's already CholeskyFactorization, BunchKaufmanFactorization and CHOLMODFactorization. But none of these call ldlt first (as far as I understand, CHOLMODFactorization only calls it if cholesky fails.) I'm mainly interested in this because my application sometimes involves SymTridiagonal matrices, for which ldlt has a brutally fast specialized implementation.

I opened #671 a while ago, the solution to which apparently involved an algorithm that just calls ldiv!. Looking at the ldiv implementation for SymTridiagonal, this literally just delegates to ldlt. So we can save compute here if we just cache the ldlt result and use that for all future solves.

Describe the algorithm you’d like

An algorithm that literally just calls Julia's built-in ldlt and saves the resulting factorisation in the cache, reusing it for future solves. The default algorithm should use this new LDLTFactorization algorithm if it detects a SymTridiagonal matrix.

Other implementations to know about

/

References

/

If there's interest in this, I can try to contribute. Personally I'd be very interested in this as otherwise I'd have to come up with a hacky workaround to sidestep LinearSolve.jl somehow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions