This PR builds onto PR 9 ("clang format config & includes & gitignore").
This Pullrequest is most likely still a "Work in Progress" as you are reading this but it tries to provide the following in its final state:
- Tests for the added functionality (using Googles gtest framework) which
- test correct functionality of the added classes & functions
- are executing for diffrent template parameters (currently stuff like
int
,float
,double
,std::complex<float>
,std::complex<double>
- are easy to execute and have information on obtaining necessary tooling
- also define the interface of the tested code and show sample usages
- A well designed interface for a SparseMatrix Class which
- is intuitive to beginner programmers
- uses current c++ features and programming style
- operates well given sensible template parameters
- is similar to DenseMatrix
- enables a somewhat efficient implementation for the features (since this is still a numerics library)
Future Work (PR after this one is done) will include:
- Full implementation of the features
- iterative Methods to utilize the structure of the matrix
- examples for the
examples/num0
folder - Benchmarks to compare the speed differences betweeen DenseMatrix and SparseMatrix
- ? updates to DenseMatrix to fullfill a common interface
I am always open for feedback on the way and will try to keep this branch updated so it reflects my local changes, but so far its day one and there is a lot of work to do.
Activity
added 2 commits
Maybe you could split this up:
-
Have one merge request that adds the CMake and gtest parts together with a minimal test that does basically nothing except testing the setup.
-
And then have the merge request about your sparse matrix interface.
This way others in your group could also do test driven development and use the test infrastructure. Note: I know that splitting a merge request into two is always annoying, so this is just a suggestion but we don't have to do it.
-
mentioned in merge request !11 (merged)
added 6 commits
- f376cd0f - add the relevant methods to the builder class
- 58c8c113 - add methods to prettyprint the builder and SparseMatrix classes
- e0c219e6 - enable iterating over non-zero elements in a matrix
- 3b04a76a - add some weak testcases for the builder class
- 5913c4ea - remove tests for conversion from hdnum::DenseMatrix
- 748670ae - also add the flags for the linker
Toggle commit list