Mandelbrot set: Difference between revisions

Content added Content deleted
Line 8,966: Line 8,966:
for k in range(n):
for k in range(n):
M = Z.real ** 2 + Z.imag ** 2 < r ** 2
M = Z.real ** 2 + Z.imag ** 2 < r ** 2
ZM, CM, dZM, ddZM = Z[M], C[M], dZ[M], ddZ[M]
ZM, dZM, ddZM, CM = Z[M], dZ[M], ddZ[M], C[M]
Z[M], dZ[M], ddZ[M] = ZM ** 2 + CM, 2 * ZM * dZM + 1, 2 * (dZM ** 2 + ZM * ddZM)
Z[M], dZ[M], ddZ[M] = ZM ** 2 + CM, 2 * ZM * dZM + 1, 2 * (dZM ** 2 + ZM * ddZM)


Line 9,013: Line 9,013:
for k in range(n):
for k in range(n):
M = Z.real ** 2 + Z.imag ** 2 < r ** 2
M = Z.real ** 2 + Z.imag ** 2 < r ** 2
ZM, CM, dZM = Z[M], C[M], dZ[M]
ZM, dZM, CM = Z[M], dZ[M], C[M]
Z[M], dZ[M] = ZM ** 2 + CM, 2 * ZM * dZM + 1
Z[M], dZ[M] = ZM ** 2 + CM, 2 * ZM * dZM + 1


Line 9,112: Line 9,112:
M, R = Z2 < r ** 2, Z2 < E.real ** 2 + E.imag ** 2
M, R = Z2 < r ** 2, Z2 < E.real ** 2 + E.imag ** 2
E[R], I[R] = Z[R], 0 # rebase if z is closer to zero
E[R], I[R] = Z[R], 0 # rebase if z is closer to zero
EM, IM, CM = E[M], I[M], C[M]
EM, CM, IM = E[M], C[M], I[M]
E[M], I[M] = (2 * S[IM] + EM) * EM + CM, IM + 1
E[M], I[M] = (2 * S[IM] + EM) * EM + CM, IM + 1
Z[M], dZ[M] = S[IM+1] + E[M], 2 * Z[M] * dZ[M] + 1
Z[M], dZ[M] = S[IM+1] + E[M], 2 * Z[M] * dZ[M] + 1