X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flinal%2Fvector.h;h=9ef46fde412f22804535065d6dd59c10b11963e2;hb=7fed55840f8482f8aa961f06f3f8f5b5af2d85c1;hp=369e3ff2435bf44e597e9e9750b4dc1a03d1c10b;hpb=959f6f9d250985e7324d4a07623bee5a5b00faca;p=libs%2Fmath.git diff --git a/source/linal/vector.h b/source/linal/vector.h index 369e3ff..9ef46fd 100644 --- a/source/linal/vector.h +++ b/source/linal/vector.h @@ -81,6 +81,10 @@ public: Vector(T, T, T, T); template Vector(const Vector &); + template + Vector(const Vector &, U); + template + explicit Vector(const Vector &); Vector &operator*=(T); Vector &operator/=(T); @@ -140,6 +144,23 @@ inline Vector::Vector(const Vector &v) (*this)[i] = v[i]; } +template +template +inline Vector::Vector(const Vector &v, U s) +{ + for(unsigned i=0; i +template +inline Vector::Vector(const Vector &v) +{ + for(unsigned i=0; i inline Vector &Vector::operator*=(T s) { @@ -236,6 +257,7 @@ inline T inner_product(const Vector &v1, const Vector &v2) template inline T Vector::norm() const { + using std::sqrt; return sqrt(inner_product(*this, *this)); }