Posted to tcl by kbk at Tue May 03 21:16:04 GMT 2011view raw

  1. inline static float
  2. Interpolate1D(float x, /* Abscissa, in the interval [0,1) */
  3. float ym1, /* Ordinate at x=-1 */
  4. float y0, /* Ordinate at y=0 */
  5. float y1, /* Ordinate at y=1 */
  6. float y2) /* Ordinate at y=2 */
  7. {
  8. float A = -0.5f * ym1 + 1.5f * y0 - 1.5f * y1 + 0.5f * y2;
  9. float B = ym1 - 2.5f * y0 + 2.0f * y1 - 0.5f * y2;
  10. float C = -0.5f * ym1 + 0.5f * y1;
  11.  
  12. return ((A * x + B) * x + C) * x + y0;
  13. }