Jump to content

Mandelbrot set: Difference between revisions

(→‎{{header|Python}}: Duplicate code removed (see following subsection))
Line 6,521:
z = zero(c)
 
S = zeros(Complex{Float64}, n+1) # calculation of the reference sequence (S)
for k in 1:n+1
S[k] = z
z = z ^ 2 + c
if abs2(z) > abs2(r)
error("ERROR: n is too large (reference sequence diverges for reference point c)!")
end
end
Line 6,536:
C = 5.0e-55 .* (A' .+ B .* im)
 
Z, dZE, EdZ = zero(C), zero(C), zero(C)
D = zeros(size(C))
 
Line 6,568:
z, dz = zero(c), zero(c)
 
S, dS = zeros(Complex{Float64}, n+1), zeros(Complex{Float64}, n+1) # reference sequences (S, dS)
for k in 1:n+1
S[k], dS[k] = z, dz
z, dz = z ^ 2 + c, 2 * z * dz + 1
if abs2(z) > abs2(r)
error("ERROR: n is too large (reference sequence diverges for reference point c)!")
end
end
Line 6,583:
C = (.- 4.0) .* exp.((A' .+ B .* im) .* im)
 
Z, dZE, EdZ, dE = zero(C), zero(C), zero(C), zero(C)
D = zeros(size(C))
 
iteration(S, dSE, EC, dEdS, CdE) = (2 .* S .+ E) .* E .+ C, 2 .* ((S .+ E) .* dE .+ E .* dS)
for k in 1:n
M = abs2.(Z) .< abs2(r)
E[M], dE[M] = iteration(S[k], dSE[kM], EC[M], dEdS[Mk], CdE[M])
Z[M], dZ[M] = S[k+1] .+ E[M], dS[k+1] .+ dE[M]
end
305

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.