X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Fvector.hh;h=8b4d280cf5e940783692facc1198103b8a1d1e18;hb=1cf3d59c1559fb9774c4c1c8cae155cfe54a927c;hp=7f7573534498fdd125edccaf5a2dcaa51ece4187;hpb=5e98b3e282d175f1908dc3017412431f443642c1;p=lilypond.git diff --git a/flower/include/vector.hh b/flower/include/vector.hh index 7f75735344..8b4d280cf5 100644 --- a/flower/include/vector.hh +++ b/flower/include/vector.hh @@ -3,7 +3,7 @@ #include #include "real.hh" -#include "varray.hh" +#include "array.hh" class Dstream; class String; @@ -15,71 +15,72 @@ class Vector { Array dat; public: void OK() const { dat.OK();} - int dim() const { return dat.size(); } + int dim() const { return dat.size (); } + void fill (Real r) { + for (int i=0; i < dim(); i++) + dat[i] =r; + } + Vector() { } - Vector(Array d ); - Vector(Vector const &n); - Vector(int n) { - dat.set_size(n); - fill(0); + Vector (Array d); + Vector (Vector const &n); + + Real &operator()(int i) { return dat[i]; } + Real operator()(int i) const { return dat[i]; } + Real elem (int i) { return dat[i]; } + Vector (int n) { + dat.set_size (n); + fill (0); } - void set_dim(int i) + void set_dim (int i) { - dat.set_size(i); + dat.set_size (i); } - void insert(Real v, int i) { - dat.insert(v,i); - } - void del(int i) { dat.del(i); } - operator String() const; - void fill(Real r) { - for (int i=0; i < dim(); i++) - dat[i] =r; + void insert (Real v, int i) { + dat.insert (v,i); } + void del (int i) { dat.del (i); } + + String str () const; void operator +=(Vector v) { - assert(v.dim() == dim()); + assert (v.dim() == dim ()); for (int i=0; i < dim(); i++) dat[i] += v.dat[i]; } - void operator /=(Real a) { - (*this) *= 1/a; - } - - void operator *=(Real a) { - for (int i=0; i < dim(); i++) - dat[i] *= a; - } - void operator -=(Vector v) { - assert(v.dim() == dim()); + assert (v.dim() == dim ()); for (int i=0; i < dim(); i++) - dat[i] -= v(i); + dat[i] -= v (i); } - Real &operator()(int i) { return dat[i]; } - Real operator()(int i) const { return dat[i]; } - Real elem(int i) { return dat[i]; } Real operator *(Vector v) const { Real ip=0; - assert(v.dim() == dim()); + assert (v.dim() == dim ()); for (int i=0; i < dim(); i++) - ip += dat[i] *v(i); + ip += dat[i] *v (i); return ip; } - Vector operator-() const; - Real norm() { - return sqrt(norm_sq() ); + void operator *=(Real a) { + for (int i=0; i < dim(); i++) + dat[i] *= a; + } + void operator /=(Real a) { + (*this) *= 1/a; } + Vector operator-() const; Real norm_sq() { return ((*this) * (*this)); } - operator Array () { return dat; } + Real norm() { + return sqrt (norm_sq()); + } + operator Array() { return dat; } void print() const; /// set to j-th element of unit-base - void set_unit(int j) ; + void set_unit (int j) ; }; inline Vector @@ -101,7 +102,7 @@ operator*(Vector v, Real a) { } inline Vector -operator*( Real a,Vector v) { +operator*(Real a,Vector v) { v *= a; return v; }