HSL.jl icon indicating copy to clipboard operation
HSL.jl copied to clipboard

Ma86

Open bjack205 opened this issue 3 years ago • 1 comments

Adds the ma86 algorithm.

The wrapper is slightly different than the existing ma97 one. I personally think it's cleaner, keeping the wrappers around the ccalls looking nearly identical to the C functions, and then creating a few convenience methods to call those. If you like this, I can submit another PR that updates the ma97 interface to be similar. I personally found the ma97 wrapper a bit confusing since it used different names and call signatures from the C wrapper. We can keep the existing methods to not break any existing code, or simply deprecate them.

As a quick summary, the proposed API for Ma86 looks like this (as detailed in the docstring):

ma86 = Ma86(A)  # automatically converts to lower triangular
HSL.factor!(ma86)
x = copy(b)
HSL.solve!(ma86, x)
x = HSL.solve(ma86, b)

Or

ma86 = Ma86(A)
x = copy(b)
HSL.factorsolve!(ma86, x)
x = HSL.factorsolve(ma86, b)

Or a wrapper around the LinearAlegbra methods:

ma86 = Ma86(A)
x = ma86 \ b
x = copy(b)
ldiv!(ma86,x)

bjack205 avatar Jan 25 '22 23:01 bjack205

@bjack205 Many thanks. Could you please remove the commits that have already been merged, remove the merge commits?

dpo avatar Jan 26 '22 18:01 dpo