-
Notifications
You must be signed in to change notification settings - Fork 8
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
russell_lab blas build #75
Comments
Hi, thank you for your suggestions! I've implemented most of them in the crate version 0.8.0 (pull request: #76) First, Concerning Second, it is a great idea to use Rust's features approach! So, I've implemented two optional features:
For instance, to use Intel MKL: cargo build --features intel_mkl Third, I've tried to use Good to hear that the pseudo inverse matches Octave's Cheers. |
Nice that was fast! I tested latest git, and can confirm, this now works without env variables on my system, out of the box, and building with On that note, w.r.t. features the only general recommendation I've heard is that they are "additive" (i.e., two separate crates both dependent on a library with two features, one turning on one feature, and another crate turning on a separate feature, does not cause breakage in the downstream crate that might include both, as it has an "action at a distance feel", e.g., they change the signature of a function, depending on which is set, etc.); given how you've implemented it, this seems to satisfy this condition, though it can be tricky/not feasible when it comes to different build flags, using different native libraries, etc. Thanks for working on this library :) will close this issue as confirmed it is fixed |
Hello, nice library!
On my archlinux system, I have openblas installed, and it's headers are at
/usr/include/openblas/cblas.h
; for whatever reason, when building I get this error:In attempting to debug, I discovered I can pass:
However, more rustish would (probably) be to use a feature flag to opt into using the intel api.
Regardless I think finding the headers should succeed, it looks like this else branch in the build.rs needs slightly better handling:
There is also
pkgconf
which people usually use for this purpose to find headers, etc., e.g.:returns the correct path (and there is a rust crate to use at build time for this).
Lastly, and this is only partially related, the only function I'm using here is: https://docs.rs/russell_lab/0.7.2/russell_lab/matrix/fn.mat_pseudo_inverse.html
which works perfectly for me (thank you, it's results are identical in my test cases to the matlab and octave
pinv
), and it would be more ideal if this were pure rust and I could opt out of the blas linkage, but that is probably infeasible, and anyway, another issue entirely :)Anyway, thanks for the great library!
The text was updated successfully, but these errors were encountered: