Skip to content

Instantly share code, notes, and snippets.

@DavidButts
Created January 26, 2018 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavidButts/2e5c1705a7e12f3b082e4e9c01de6dd3 to your computer and use it in GitHub Desktop.
Save DavidButts/2e5c1705a7e12f3b082e4e9c01de6dd3 to your computer and use it in GitHub Desktop.
import time
import numpy as np
from numba import njit, prange
x_dim = 1000
y_dim = 1000
x_min = -1.8
x_max = 1.8
y_min = -1.8j
y_max = 1.8j
z = np.zeros((y_dim,x_dim),dtype='complex128')
for l in range(y_dim):
z[l] = np.linspace(x_min,x_max,x_dim) -np.linspace(y_min,y_max,y_dim)[l]
@njit(parallel = True)
def julia_raw_python_numba(c,z):
it = 0
max_iter = 100
while(it < max_iter):
#These will be expensive!
for y in prange(y_dim): #special loops for Numba! range -> prange
for x in prange(x_dim):
if abs(z[y][x]) < 10: #Runaway condition
z[y][x] = z[y][x]**2 + c #square and add c everywhere
it += 1
return z
start = time.perf_counter()
julia_raw_python_numba(-.4+.6j,z)
end = time.perf_counter()
print(end-start)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment