Skip to content

Add HSL wrapper#962

Merged
ChrisRackauckas merged 5 commits into
SciML:mainfrom
AJ0070:fix/51
Jun 11, 2026
Merged

Add HSL wrapper#962
ChrisRackauckas merged 5 commits into
SciML:mainfrom
AJ0070:fix/51

Conversation

@AJ0070

@AJ0070 AJ0070 commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

What this PR adds

  • Weak dependency wiring for HSL with extension activation only when HSL and SparseArrays are loaded.
  • Two new algorithms:
    • HSLMA57Factorization
    • HSLMA97Factorization
  • Full extension implementation for init_cacheval and solve! with:
    • sparse CSC / square / symmetric-or-Hermitian validation
    • HSL exception handling mapped to ReturnCode.Failure
    • cache reuse behavior aligned with existing extension patterns
  • Dedicated HSL test group:
    • GROUP=LinearSolveHSL routing in test harness
    • isolated test environment under test/hsl
    • wrapper behavior tests for both MA57 and MA97
  • License-aware test execution modes:
    • default mode: skip safely when HSL_jll is non-functional
    • strict mode: LINEARSOLVE_HSL_REQUIRE_FUNCTIONAL=true forces failure if licensed binaries are unavailable
  • Manual workflow entry for HSL group execution.

resolves #51

AI Disclosure: Used codex 5.3 to write tests and documentation and verify the implementation of the implementation.

@AJ0070 AJ0070 closed this Apr 27, 2026
@AJ0070 AJ0070 reopened this Apr 27, 2026
@AJ0070

AJ0070 commented May 5, 2026

Copy link
Copy Markdown
Contributor Author

@ChrisRackauckas after completing this I'll start working on MUMPS wrapper

@AJ0070

AJ0070 commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

@ChrisRackauckas I can't test this properly because I don't have HSL licence. Do you know someone who has license and can help me out by testing this?

AJ0070 added 4 commits June 11, 2026 13:57
…nd to solve in-place through the cache instead of allocating via HSL.ma57_solve / HSL.ma97_solve.
Comment thread .github/workflows/HSL.yml Outdated
@@ -0,0 +1,18 @@
name: "HSL Tests"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead use the new test_groups in test.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@ChrisRackauckas ChrisRackauckas merged commit 3778b6a into SciML:main Jun 11, 2026
44 of 52 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HSL.jl wrapper

2 participants