+/*
+ misc.hh -- declare miscellaneous functions.
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
#ifndef MISC_HH
#define MISC_HH
-#include "real.hh"
-#include "varray.hh"
+#include <cstdlib>
+
+#include "array.hh"
#include "interval.hh"
-double log_2(double x) ;
-int intlog2(int d);
-#if ! defined(_ABS_)
-inline int
-abs (int i){
- return (i < 0)?-i:i;
-}
-#endif
+double log_2 (double x) ;
+int intlog2 (int d);
+
inline int
-sign (int i) {
- if (i<0) return -1;
- else if (i) return 1;
- else return 0;
+sign (int i)
+{
+ if (i<0)
+ return -1;
+ else if (i)
+ return 1;
+ else return 0;
}
-#ifndef STANDALONE
-#include "lily-proto.hh"
-Interval itemlist_width (const Array<Item*> &its);
-#endif
+Array<String> split_string (String s, char c);
-int get_lower_bound (Array<Real> const& positions, Real x);
-Slice get_bounds_slice (Array<Real> const& positions, Real x);
-Interval get_bounds_iv (Array<Real> const& positions, Real x);
-Interval quantise_iv (Array<Real> const& positions, Real period, Real x);
+inline Real
+linear_interpolate (Real x, Real x1, Real x2, Real y1, Real y2)
+{
+ return (x2 - x) / (x2 - x1) * y1 +
+ (x - x1) / (x2 - x1) * y2 ;
+}
#endif