X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flinal%2Fmatrix.h;h=929c48247e517aa47d837df1438c94465e25064a;hb=ffb043ce670d733decc03c6e4240a4e6d980caec;hp=f18eb2f4cfb52504214b84015688e46d0d7be121;hpb=e4b75401bd773201deb00eff672ee34794479671;p=libs%2Fmath.git diff --git a/source/linal/matrix.h b/source/linal/matrix.h index f18eb2f..929c482 100644 --- a/source/linal/matrix.h +++ b/source/linal/matrix.h @@ -30,6 +30,9 @@ public: T &operator()(unsigned i, unsigned j) { return element(i, j); } const T &operator()(unsigned i, unsigned j) const { return element(i, j); } + template + Matrix block(unsigned, unsigned) const; + Matrix &operator*=(T); Matrix &operator/=(T); Matrix &operator+=(const Matrix &); @@ -81,6 +84,17 @@ inline Matrix Matrix::from_rows(const Vector *v) return m; } +template +template +inline Matrix Matrix::block(unsigned y, unsigned x) const +{ + Matrix r; + for(unsigned j=0; j inline Matrix &Matrix::operator*=(T s) {