`On Wednesday, 21 September 2016 at 01:34:06 UTC, Nicholas Wilson`

`wrote:`

On Tuesday, 20 September 2016 at 12:35:18 UTC, Basile B. wrote:I've recently started an easing/interpolation family offunction in my D user library. It's based on something I knowwell since I've already used them in 2012 in a VST plugincalled GrainPlot (RIP).## Advertising

However for one of the function, I can't manage to get theinverse.A function that's fully implemented: https://github.com/BBasile/iz/blob/master/import/iz/math.d#L598 - f(x,c) = x*x*x - x*x*c + x*c; - c(f(0.5)) = 4 * (y - 0.125)); Another: https://github.com/BBasile/iz/blob/master/import/iz/math.d#L749 - f(x,c) = pow(x, c); - c(f(0.5)) = log(y) / log(0.5)); The problem is here: https://github.com/BBasile/iz/blob/master/import/iz/math.d#L849 - f(x,c) = 1.0 - pow(1.0 - pow(x, 2.0/c), c * 0.5); - c(f0.5)) = ? Which means that I ask you if you can isolate c for y = 1.0 - pow(1.0 - pow(0.5, 2.0/c), c * 0.5); y is always f(0.5,c)So if we rearrange and take the logs of both sides and divideby c we get2*log(1-y)/c = log(1-2^(-2/c))and then that we have one occurrence of c on each side do aniterative back substitution to find the intersection given thatyou know for y=0.5 ,c = 2.We used this method for finding voltages and currents incircuits with semiconductors.

`Y is a floating point value. I think I'm gonna make a LUT for`

`let's say 100 values to find the initial range where the result`

`stands.`