]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/polynomial.hh
Run `make grand-replace'.
[lilypond.git] / flower / include / polynomial.hh
index df79274bdc96d45e9408953b4655327cde2d77f3..144ba3d1d1dadd0c8b0671b2d9580b7f13e55d8a 100644 (file)
@@ -2,13 +2,13 @@
 /*
  * poly.h -- routines for manipulation of polynomials in one var
  *
- * (c) 1993, 1996,1999 Han-Wen Nienhuys
+ * (c) 1993--2008 Han-Wen Nienhuys
  */
 
 #ifndef POLY_H
 #define POLY_H
 
-#include "array.hh"
+#include "std-vector.hh"
 #include "arithmetic-operator.hh"
 #include "real.hh"
 
@@ -19,66 +19,63 @@ struct Polynomial
   int degree ()const;
 
   /// coefficients 
-  Array<Real>     coefs_;
+  vector<Real> coefs_;
 
   // leading coef
-  Real &lc();
+  Real &lc ();
 
   // leading coef
-  Real lc() const;
-  void print() const ; 
-  Real eval(Real) const ;
-  void print_sols(Array<Real>) const ;
-  void check_sols(Array<Real>) const ;
-  void check_sol(Real x) const;
-  static Polynomial multiply(const Polynomial & p1, const Polynomial & p2);
-  static Polynomial power(int exponent, const Polynomial & src);
+  Real lc () const;
+  void print () const;
+  Real eval (Real) const;
+  void print_sols (vector<Real>) const;
+  void check_sols (vector<Real>) const;
+  void check_sol (Real x) const;
+  static Polynomial multiply (const Polynomial &p1, const Polynomial &p2);
+  static Polynomial power (int exponent, const Polynomial &src);
 
   /// chop low coefficients
-  void clean();
+  void clean ();
 
   /// eliminate #x#  close to  zero
-  void real_clean();
-  static Polynomial add(const Polynomial & p1, const Polynomial & p2);
-  void scalarmultiply(Real fact);
-  void operator *= (Real f) { scalarmultiply(f); }
-  void operator /= (Real f) { scalarmultiply(1/f); }
+  void real_clean ();
+  void scalarmultiply (Real fact);
+  void operator *= (Real f) { scalarmultiply (f); }
+  void operator /= (Real f) { scalarmultiply (1 / f); }
   void operator += (Polynomial const &p2);
   void operator *= (Polynomial const &p2);
   void operator -= (Polynomial const &p2);
-  Polynomial (Real a, Real b =0.0);
+  Polynomial (Real a, Real b = 0.0);
   Polynomial (){}
-  static Polynomial subtract(const Polynomial & p1, const Polynomial & p2);
-  void set_negate(const Polynomial & src);
-    
+  void set_negate (const Polynomial &src);
+
   /// take the derivative
-  void differentiate();
-  int set_mod(const Polynomial &u, const Polynomial &v);
+  void differentiate ();
+  int set_mod (const Polynomial &u, const Polynomial &v);
 
-  void debug_clean();
+  void debug_clean ();
 
-  Array<Real> solve_quadric()const;
-  Array<Real> solve_cubic()const;
-  Array<Real> solve_linear()const;
+  vector<Real> solve_quadric ()const;
+  vector<Real> solve_cubic ()const;
+  vector<Real> solve_linear ()const;
 
-  Array<Real> solve () const;
+  vector<Real> solve () const;
 };
 
-
-IMPLEMENT_ARITHMETIC_OPERATOR(Polynomial, - );
-IMPLEMENT_ARITHMETIC_OPERATOR(Polynomial, + );
-IMPLEMENT_ARITHMETIC_OPERATOR(Polynomial, * );
+IMPLEMENT_ARITHMETIC_OPERATOR (Polynomial, -);
+IMPLEMENT_ARITHMETIC_OPERATOR (Polynomial, +);
+IMPLEMENT_ARITHMETIC_OPERATOR (Polynomial, *);
 
 inline Polynomial
 operator * (Polynomial p, Real a)
 {
-  p *=a;
+  p *= a;
   return p;
 }
 inline Polynomial
-operator * (Real a,Polynomial p)
+operator * (Real a, Polynomial p)
 {
-  p *=a;
+  p *= a;
   return p;
 }
 #endif