-
-
Notifications
You must be signed in to change notification settings - Fork 86
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
Feature/update faer 0.21 #575
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #575 +/- ##
==========================================
- Coverage 92.10% 92.10% -0.01%
==========================================
Files 177 177
Lines 23675 23675
==========================================
- Hits 21807 21806 -1
- Misses 1868 1869 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
urgh, the failing CI is related to #574 , which is about the |
Thanks for this PR, it's great to have the most recent version supported as well! :)
"urgh" is the perfect noise for this. About 90% of the time I have available for argmin is spent on things like this ;) It should be fixed in main after merging #576 |
I feel you, and I hope you didn't take it as an insult to you. You have your CI set up really professionally, I'm going to take a page of your playbook for my projects at some point. |
No no, not at all. I just felt like venting a little :D
Thanks and feel free to do so. Don't be surprised if you find a mess in certain corners ;) |
This adds support for
faer-rs
version 0.21.x, while keeping the previously added support for version 0.20. I realize, this looks like a daunting PR again in terms of lines changed, but it's actually not as bad. Sincefaer
underwent a big rewrite between the versions, I had to factor out the actual implementations of theargmin-math
traits into different modules and conditionally compile them. However, I also factored out the tests from the oldfaer_m
module, which is now renamed tofaer_m_0_20
, to a commonfaer_test
module. The tests were just factored out into this module, no changes were made to the tests*. That means the implementations for both faer backends pass the same, unaltered test suite.In summary:
faer_m
(and it's submodules to)faer_m_0_20
faer_test
faer_m_0_21
for implementations in the 0.21 dependencyI hope newer
faer
versions will introduce less breaking changes for the fundamental operations we're using here, so that it won't be necessary to introducefaer_m_x_xx
again. But even if not, this is reasonably simple to do.(*) except at one place where I had to introduce a
matrix_element_at
helper function to access a matrix element across faer versions. But this is not a semantic change.