196 {
197 if( t == 0 || t == 1 )
198 return t;
199
200 float scaledTime = t / 1;
201 float scaledTime1 = scaledTime - 1;
202
203 float p = 1 - magnitude;
204 float s = p / ( 2 * Math.PI ) * Math.Asin( 1 );
205
206 return -(Math.Pow( 2, 10 * scaledTime1 ) * Math.Sin( ( scaledTime1 - s ) * ( 2 * Math.PI ) / p ));
207 }