source file of the GNU LilyPond music typesetter
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#define DRUL_ARRAY_HH
#include "direction.hh"
+#include "real.hh"
#include <assert.h>
T &elem (Direction d)
{
assert (d==1 || d== -1);
- return array_[(d+1)/2];
+ return array_[ (d+1)/2];
}
T &operator[] (Direction d)
T elem (Direction d) const
{
assert (d==1 || d== -1);
- return array_[(d+1)/2];
+ return array_[ (d+1)/2];
}
- T operator[] (Direction d) const
+ T operator[] (Direction d) const
{
return elem (d);
}
}
};
+template<class T>
+void
+scale_drul (Drul_array<T> * dr, T x)
+{
+ dr->elem (LEFT) *= x;
+ dr->elem (RIGHT) *= x;
+}
+
+inline Real
+linear_combination (Drul_array<Real> const &d, Real x)
+{
+ return ((1.0 - x) * Real (d.elem (LEFT)) + (x + 1.0) * Real (d.elem (RIGHT))) * 0.5;
+}
+
#endif // DRUL_ARRAY_HH