]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/polynomial.cc
Run `make grand-replace'.
[lilypond.git] / flower / polynomial.cc
index 4d9687de38a3acdfe359f569b4a34a3cfeb5c7c4..56deefb714f739b111a150df40b69bd9b541e899 100644 (file)
@@ -1,12 +1,16 @@
 /*
   poly.cc -- routines for manipulation of polynomials in one var
 
-  (c) 1993--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1993--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "polynomial.hh"
 
+#include "warn.hh"
+
 #include <cmath>
+
+
 using namespace std;
 
 /*
@@ -88,7 +92,7 @@ Polynomial::clean ()
     We only do relative comparisons. Absolute comparisons break down in
     degenerate cases.  */
   while (degree () > 0
-        && (fabs (coefs_.back ()) < FUDGE * fabs (coefs_.top (1))
+        && (fabs (coefs_.back ()) < FUDGE * fabs (back (coefs_, 1))
             || !coefs_.back ()))
     coefs_.pop_back ();
 }
@@ -167,14 +171,11 @@ Polynomial::check_sol (Real x) const
   Real d = p.eval (x);
 
   if (abs (f) > abs (d) * FUDGE)
-    ;
-  /*
-    warning ("x=%f is not a root of polynomial\n"
-    "f (x)=%f, f' (x)=%f \n", x, f, d);        */
+    programming_error ("not a root of polynomial\n");
 }
 
 void
-Polynomial::check_sols (std::vector<Real> roots) const
+Polynomial::check_sols (vector<Real> roots) const
 {
   for (vsize i = 0; i < roots.size (); i++)
     check_sol (roots[i]);
@@ -203,10 +204,10 @@ iszero (Real r)
   return !r;
 }
 
-std::vector<Real>
+vector<Real>
 Polynomial::solve_cubic ()const
 {
-  std::vector<Real> sol;
+  vector<Real> sol;
 
   /* normal form: x^3 + Ax^2 + Bx + C = 0 */
   Real A = coefs_[2] / coefs_[3];
@@ -295,10 +296,10 @@ Polynomial::degree ()const
 /*
   all roots of quadratic eqn.
 */
-std::vector<Real>
+vector<Real>
 Polynomial::solve_quadric ()const
 {
-  std::vector<Real> sol;
+  vector<Real> sol;
   /* normal form: x^2 + px + q = 0 */
   Real p = coefs_[1] / (2 * coefs_[2]);
   Real q = coefs_[0] / coefs_[2];
@@ -316,16 +317,16 @@ Polynomial::solve_quadric ()const
 }
 
 /* solve linear equation */
-std::vector<Real>
+vector<Real>
 Polynomial::solve_linear ()const
 {
-  std::vector<Real> s;
+  vector<Real> s;
   if (coefs_[1])
     s.push_back (-coefs_[0] / coefs_[1]);
   return s;
 }
 
-std::vector<Real>
+vector<Real>
 Polynomial::solve () const
 {
   Polynomial *me = (Polynomial *) this;
@@ -340,7 +341,7 @@ Polynomial::solve () const
     case 3:
       return solve_cubic ();
     }
-  std::vector<Real> s;
+  vector<Real> s;
   return s;
 }