]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/vector.hh
release: 1.0.1
[lilypond.git] / flower / include / vector.hh
index 323d03db887d6d5bba4cde317f6cbbac4c6683f6..8b4d280cf5e940783692facc1198103b8a1d1e18 100644 (file)
@@ -3,11 +3,10 @@
 
 #include <math.h>
 #include "real.hh"
-#include "varray.hh"
+#include "array.hh"
 
 class Dstream;
 class String;
-void set_matrix_debug(Dstream&ds);
 
 /**  a row of numbers. 
     a vector. Storage is handled in Array, Vector only does the mathematics.
@@ -16,66 +15,72 @@ class Vector  {
     Array<Real> 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<Real> d );
-    Vector(Vector const &n);
-    Vector(int n) {
-       dat.set_size(n);
-       fill(0);
+    Vector (Array<Real> 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 insert(Real v, int i) {
-       dat.insert(v,i);
+    void set_dim (int i)
+    {
+       dat.set_size (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<Real> () { return dat; }
+    Real norm() {
+       return sqrt (norm_sq());
+    }
+    operator Array<Real>() { 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
@@ -97,7 +102,7 @@ operator*(Vector v, Real a) {
 }
 
 inline Vector
-operator*( Real a,Vector v) {
+operator*(Real a,Vector v) {
     v *= a;
     return v;
 }