-
Notifications
You must be signed in to change notification settings - Fork 41
Use internal sparse solver to replace EIGEN and MKL #77
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
Conversation
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Tony Xiang <[email protected]>
Signed-off-by: Peter Salemink <[email protected]>
Signed-off-by: Peter Salemink <[email protected]>
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.
I'm not done with my review yet, but here's some comments for the. sparse_lu_solver
For features this large: next time please only implement the feature and do refactoring/renaming afterwards in a new PR. This way it will be easier to review large changes like this. |
In general, please add more documentation to classes/functions |
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.
Good work, very impressive!
In general, please try to avoid refactoring code in such a large pull request, because that makes it much harder to review. And in some cases it would be more readable to use a little less template magic (even at the cost of some code duplication, imho). For example, the is_block
constexpr in SparseLUSolver
basically splits most functions in two; one part for scalars and one for blocks. I would prefere to have two separate functions.
Signed-off-by: Tony Xiang <[email protected]>
d6acd4d
Signed-off-by: Tony Xiang <[email protected]>
Introduction
This PR implements an internal sparse solver which replaces EIGEN and MKL solver.
Closes #75
Design choices
Adjustment outside sparse solver
Implementation of LU sparse solver
(i, j)
is non-zero, position(j, i)
is also non-zero.-The solver is a class template with types of block matrices. The compiler can then optimize (e.g. loop unrolling) for difference block sizes.