You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor ABFPlusPlus to decouple the algorithm from the Eigen library. The algorithm will now interact with a Backend object constrained by a C++20 Concept.
Tasks
Define include/OpenABF/Backend/Concepts.hpp using C++20 template <typename T> concept MathBackend.
Implement include/OpenABF/Backend/Eigen.hpp as the primary reference backend.
Update ABFPlusPlus::Compute to utilize the backend for:
Sparse matrix assembly from std::span<Triplet>.
Linear algebra primitives (spmv, axpy, invert_diagonal).
Preserving Eigen's expression templates through proxy return types.
Unit test: Ensure current ABF++ results are identical after the refactor.
Description
Refactor
ABFPlusPlusto decouple the algorithm from the Eigen library. The algorithm will now interact with aBackendobject constrained by a C++20 Concept.Tasks
include/OpenABF/Backend/Concepts.hppusing C++20template <typename T> concept MathBackend.include/OpenABF/Backend/Eigen.hppas the primary reference backend.ABFPlusPlus::Computeto utilize the backend for:std::span<Triplet>.