double b ( int i , double t ) { switch ( i ) { case - 2 : return ( ( ( - t + 3 ) * t - 3 ) * t + 1 ) / 6 ; case - 1 : return ( ( ( 3 * t - 6 ) * t ) * t + 4 ) / 6 ; case 0 : return ( ( ( - 3 * t + 3 ) * t + 3 ) * t + 1 ) / 6 ; case 1 : return ( t * t * t ) / 6 ; } return 0 ; // we only get here if an invalid i is specified }
the basis function for a cubic B spline