]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/vector.hh
release: 1.0.1
[lilypond.git] / flower / include / vector.hh
index 7ad3f655c168ed1a553429655b38714dda3a7016..8b4d280cf5e940783692facc1198103b8a1d1e18 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <math.h>
 #include "real.hh"
-#include "varray.hh"
+#include "array.hh"
 
 class Dstream;
 class String;
@@ -16,9 +16,18 @@ class Vector  {
 public:
     void OK() const { dat.OK();}
     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);
+
+    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);
@@ -32,11 +41,8 @@ public:
        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;
-    }
+
+    String str () const;
 
     void operator +=(Vector v) {
        assert (v.dim() == dim ());
@@ -44,24 +50,12 @@ public:
            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 ());
        for (int i=0; i < dim(); 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 ());
@@ -69,13 +63,20 @@ public:
            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));
     }
+    Real norm() {
+       return sqrt (norm_sq());
+    }
     operator Array<Real>() { return dat; }
     void print() const;
     /// set to j-th element of unit-base