pederson / linearalgebra Goto Github PK
View Code? Open in Web Editor NEWbasic linear algebra routines and classes
basic linear algebra routines and classes
this is the slowest part of the AMG setup phase... probably could be optimized
Currently using direct interpolation. Standard interp. is introducing some Inf and NaN values...
Come up with set of requirements... Do we really care about saving memory when assigning a matrix to a submatrix? possibly yes for householder algorithm. But it could cause problems upon deletion of the larger matrix
often, an error is thrown as char*, rather than printed to screen. This doesnt give enough info about the error to the user
Need to define vector= matrix_vector multiplication in the abstract type (also possibly transpose matrix_vector). The problem is that this requires that Vector_Vector multiplication be define. But in general, Vector_Vector returns a matrix. So, defining Vector = Vector*Vector is wrong in general. How can I get around this? (Can I define implicit conversion from 1x1 matrix to double?)
Do this to have code that works with complex values
should be able to do something like this:
make_vector_stack(create_vector_1(), create_vector_2(), ...)
so that the arguments to make_vector_stack are rvalues
need to check if the dimensions are consistent for all operations and for all linear solvers
When assigning a row vector, it gets changed to a column vector... something in the assignment operator or a rowvector*Matrix product
move all functions residing in cpp file to the header file. More easily portable that way
After transposing a sparsematrix, the matrix-vector multply doesn't work.... using Tmult(Vector) as a workaround is fine, but this needs to be fixed
transposing sparse matrix has an issue . The transpose issue is originating from the swap operation (I think it's related to the iterators in m_row_ptr)
use copy swap for all assignment operators!
cannot make a const Matrix_Proxy in the current implementation because a parent matrix is a data member. Need to change this so that the data member isn't a parent matrix, but rather a pointer to data with rowstride and columnstride info.
do it
slow for matrix sizes above ~ 1000x1000.... a better idea would be to randomly select (i,j) values according to the fill ratio, rather than iterating and rejecting a ton of values.
Use the proxy paradigm and make a Matrix_Impl class that stores the actual matrix data. Then the Matrix class can decide how to implement submatrix assignment, transpose, etc...
Need to have strong type safety with good compile-time failure messages especially for the vector container functor/multifunctor because these rely on preprocessor macros defined in Macros.hpp
gmres, incomplete LU, and incomplete cholesky are not working
Assignment to a vector that has not been instantiated causes problems
This would help keep the code general if I wanted to add other matrix types (like Matrix_Free implementation or Sparse_Matrix implementation)
does weird things when assigning a sparsematrix to an empty sparsematrix stub...
for example:
SparseMatrix D;
D = spdiag(diag(A));
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.