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
I am working on my pull request aiming to add the iterative solving method JFNK. However, it relies on a lot of upper triangular matrix manipulation. At the moment it is hardcoded in the solver itself. But it could be nice to begin to think of a way to implement matrixes in the crate.
Here are some ideas of methods and structures to implement.
Matrix Vec<Vec<T>>
Upper Triangular matrix
Lower Triangular matrix
Matrix product
Matrix inversion (knowing there are efficient algorithms for upper and lower triangular matrix)
Adding column
Adding row
The text was updated successfully, but these errors were encountered:
Instead of implementing this by ourself, it could be intersting to use nalgebra which seems to be really common and well supported. Thereby, scilib could use strong basics (with high parallelism already implemented) and could be oriented on the scientist part.
I have indeed been considering it and I believe it could indeed be a good idea, at least in a first approach. My main reasoning for the crate is to try and make sure everything is in pure Rust, and has as few dependencies as possible. I don't doubt that the nalgebra crate is fast, but it is a dependency.
In the grand scheme of things it's not a big deal though. My suggestion is to use nalgebra to get everything to work, then if it becomes necessary (or someone is motivated) we can implemented our own version of matrices in the crate.
I am working on my pull request aiming to add the iterative solving method JFNK. However, it relies on a lot of upper triangular matrix manipulation. At the moment it is hardcoded in the solver itself. But it could be nice to begin to think of a way to implement matrixes in the crate.
Here are some ideas of methods and structures to implement.
Vec<Vec<T>>
The text was updated successfully, but these errors were encountered: