-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add bindings to UMFPACK #327
Conversation
jlogan03
commented
Apr 17, 2023
•
edited
Loading
edited
- Add build, raw bindings, and mid-level wrapper for i32-indexed and i64-indexed, real-valued versions of UMFPACK (the DI and DL variations)
- Same footprint of bindings as scipy and Julia, I believe
- Just covers the most-traveled parts (opaque LU factorization, solution of Ax=b problem type, and recovery of LU factorization components)
- Unlike the other suitesparse integrations, this one only supports dynamic linking
- The build for UMFPACK depends on several of the other packages plus BLAS, and while it's definitely possible to do it, it looks extremely time-consuming and I think it's best to leave that for another time
…ngs to use platform-dependent compatible integer type.
…ing generic on index type
…meric factorizations to build context struct.
Alrighty, ready for another pass of CI & passing lint/test locally |
Resolved the latest round of errors & ready for another go |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is some great work! Just a couple of minor nits and this should be good to go.
I'll be happy to have a look at the static building later on. It should be possible to build this using e.g. cargo check --features suitesparse_ldl_sys/static
, we can add a feature flag to more crates to make this easier to enable
…naming is there to avoid name conflicts
Sounds good - I'll be interested to follow along and might give it another try myself eventually |
Good to go for another round of CI - might even run to completion this time... |
So, I'm not able to reproduce this CAMD test failure locally (on a mac), but my best guess is that it might be a semver-non-compliant change in cc, so I rolled the patch version for suitesparse-src's cc dep back to what it was before. Other than that, I don't think anything I've changed here should have an effect. |
For the first failed job, that looks like a network issue. The second one (the failing camd tests on mac) are the same as before, and I have no idea why it's happening. I'm able to run those tests locally on mac without issue:
|
Ok, on further inspection, I realized that test is running on nightly - I do get that error locally running on the nightly channel, but not on stable. Seems to be a bug in nightly unrelated to the changes on this PR |
I find the random CI error strange. I reran CI from master which gives no errors: https://github.com/sparsemat/sprs/actions/runs/4705082629 I am not sure if this is a miscompilation or a bug in some code we have here. |
This is running successfully on nightly on my mac now - looks like whatever was busted on nightly, they must have fixed it overnight |
...aaaand it's breaking again. I guess since it's a pointer alignment issue, it will probably be intermittent |
...and running again - definitely intermittent |
The benign changes to suitesparse-src that were leftover from reversing my attempt to do the static build have been removed just in case those are somehow the problem, and this is ready for another CI attempt |
Figured out how to get rid of all those trailing underscores & I believe this should be ready to merge |
Thanks a lot for your work in this @jlogan03! |