def halley_step(x, mu, sigma, lamda, r): f = py_cdf(x, mu, sigma, lamda) - r d1, d2 = py_cdf_d1_and_2(x, mu, sigma, lamda) num = 2*f*d1 denom = 2*d1*d1 - f*d2 #print "Halley", num, denom, "d1", d1, "f", f, "d2", d2 return x - num/(5*denom)
def halley_step(x, mu, sigma, lamda, r): f = py_cdf(x, mu, sigma, lamda) - r d1, d2 = py_cdf_d1_and_2(x, mu, sigma, lamda) num = 2 * f * d1 denom = 2 * d1 * d1 - f * d2 #print "Halley", num, denom, "d1", d1, "f", f, "d2", d2 return x - num / (5 * denom)
def FD_d1(x, mu, sigma, lamda): return (py_cdf(x+1e-6, mu, sigma, lamda) - py_cdf(x-1e-6, mu, sigma, lamda))/2e-6
def nm_step(x, mu, sigma, lamda, r): f = py_cdf(x, mu, sigma, lamda) - r d = 1e-12 + py_cdf_d1(x, mu, sigma, lamda) #print x, f, d, f/d return x - f/max(0.1, d)
def nm_step(x, mu, sigma, lamda, r): f = py_cdf(x, mu, sigma, lamda) - r d = 1e-12 + py_cdf_d1(x, mu, sigma, lamda) #print x, f, d, f/d return x - f / max(0.1, d)
def FD_d1(x, mu, sigma, lamda): return (py_cdf(x + 1e-6, mu, sigma, lamda) - py_cdf(x - 1e-6, mu, sigma, lamda)) / 2e-6