X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flinal%2Fsquarematrix.h;h=0af9a7454852cb5106382fcda2a4f1c5e2aaf824;hb=adb812a194961d542dcb0abd61258cbc8723ecd9;hp=4cdc9e88f7288654d4dcbae9d2ec006517bfb734;hpb=a3d9772a9fd483278b6248a811dc6f4ce968892b;p=libs%2Fmath.git diff --git a/source/linal/squarematrix.h b/source/linal/squarematrix.h index 4cdc9e8..0af9a74 100644 --- a/source/linal/squarematrix.h +++ b/source/linal/squarematrix.h @@ -14,14 +14,18 @@ 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 { public: SquareMatrix() { } - SquareMatrix(const T *); + SquareMatrix(const T *d): Matrix(d) { } template - SquareMatrix(const Matrix &); + SquareMatrix(const Matrix &m): Matrix(m) { } static SquareMatrix identity(); @@ -30,17 +34,6 @@ public: SquareMatrix &invert(); }; -template -SquareMatrix::SquareMatrix(const T *d): - Matrix(d) -{ } - -template -template -SquareMatrix::SquareMatrix(const Matrix &m): - Matrix(m) -{ } - template inline SquareMatrix SquareMatrix::identity() { @@ -53,8 +46,7 @@ inline SquareMatrix SquareMatrix::identity() template SquareMatrix &SquareMatrix::operator*=(const SquareMatrix &m) { - Matrix::operator*=(m); - return *this; + return *this = *this*m; } template