private double GetVolForAbsoluteStrike(double strike, IInterpolator1D interp) { var cp = strike < 0 ? OptionType.Put : OptionType.Call; Func <double, double> testFunc = (deltaK => { var vol = interp.Interpolate(-deltaK); var absK = AbsoluteStrikefromDeltaKAnalytic(_fwd, deltaK, 0, _tExp, vol); return(absK - strike); }); var solvedStrike = -Brent.BrentsMethodSolve(testFunc, -0.999999999, -0.000000001, 1e-8); return(interp.Interpolate(solvedStrike)); }