X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flinal%2Fsquarematrix.h;h=1cdc56726455f9ab2b97589b1b93bacbad702eac;hb=827b227ae53884109b6885ccd1424dda8c0b3725;hp=ee86e13921219702fa58a682c4b5ab2bb5cfb290;hpb=e0d926c9c177ec28f1aaf326a6921438de9db9a3;p=libs%2Fmath.git diff --git a/source/linal/squarematrix.h b/source/linal/squarematrix.h index ee86e13..1cdc567 100644 --- a/source/linal/squarematrix.h +++ b/source/linal/squarematrix.h @@ -1,6 +1,7 @@ #ifndef MSP_LINAL_SQUAREMATRIX_H_ #define MSP_LINAL_SQUAREMATRIX_H_ +#include #include #include "matrix.h" @@ -14,6 +15,10 @@ public: virtual ~not_invertible() throw() { } }; +/** +A mathematical matrix with S rows and columns. Some operations are provided +here that are only possible for square matrices. +*/ template class SquareMatrix: public Matrix { @@ -48,6 +53,8 @@ SquareMatrix &SquareMatrix::operator*=(const SquareMatrix &m) template SquareMatrix &SquareMatrix::invert() { + using std::abs; + SquareMatrix r = identity(); for(unsigned i=0; i