|
|
|
C++ Matrix Template Library
|
|
|
|
|
|
|
|
Library to provide mathematical matrices as standard C++ types that behave like standard types.
|
|
|
|
|
|
|
|
Features:
|
|
|
|
* Allows any size of Matrix
|
|
|
|
* Either fixed size, size given as template parameter
|
|
|
|
* Or variable size, size is given in constructor
|
|
|
|
* Allows any type of values, given as template parameter
|
|
|
|
* Supports matrix specific functions:
|
|
|
|
* transposition
|
|
|
|
* gaussian algorithm
|
|
|
|
* determinant using gauss algorithm
|
|
|
|
* inversion using gauss-jordan algorithm
|
|
|
|
* Supports mathematical operations:
|
|
|
|
* addition
|
|
|
|
* subtraction
|
|
|
|
* multiplication
|
|
|
|
* division (using the inverse matrix)
|
|
|
|
* Higly stable and well tested in >200 tests
|
|
|
|
|
|
|
|
Example with templated size:
|
|
|
|
|
|
|
|
const Matrix<T,2,4> m1(1, 2, 3, 4,
|
|
|
|
5, 6, 7, 8);
|
|
|
|
const Matrix<T,2,4> m2(2, 4, 6, 8,
|
|
|
|
1, 3, 5, 7);
|
|
|
|
const Matrix<T,2,4> m(m1+m2);
|
|
|
|
const Matrix<T,2,4> res(3, 6, 9, 12,
|
|
|
|
6, 9, 12, 15);
|
|
|
|
if (m==res) {
|
|
|
|
std::cout<<"Yes, it is that easy!\n"<<m<<"\n";
|
|
|
|
} else {
|
|
|
|
std::cerr<<"Ooops!\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
Example with templated size:
|
|
|
|
|
|
|
|
const Matrix<T> m1(2, 4,
|
|
|
|
1, 2, 3, 4,
|
|
|
|
5, 6, 7, 8);
|
|
|
|
const Matrix<T> m2(2, 4,
|
|
|
|
2, 4, 6, 8,
|
|
|
|
1, 3, 5, 7);
|
|
|
|
const Matrix<T> m(m1+m2);
|
|
|
|
const Matrix<T> res(2, 4,
|
|
|
|
3, 6, 9, 12,
|
|
|
|
6, 9, 12, 15);
|
|
|
|
if (m==res) {
|
|
|
|
std::cout<<"Yes, it is that easy!\n"<<m<<"\n";
|
|
|
|
} else {
|
|
|
|
std::cerr<<"Ooops!\n";
|
|
|
|
}
|