text: #! /usr/bin/env python
  # -*- coding: utf-8 -*-
  from __future__ import print_function, division, absolute_import
  
  from timeit import default_timer as timer
  from matplotlib.pylab import imshow, show
  import numpy as np
  
  from numba import jit
  
  
  @jit
  def mandel(x, y, max_iters):
      """
      Given the real and imaginary parts of a complex number,
      determine if it is a candidate for membership in the Mandelbrot
      set given a fixed number of iterations.
      """
      i = 0
      c = complex(x, y)
      z = 0.0j
      for i in range(max_iters):
          z = z * z + c
          if (z.real * z.real + z.imag * z.imag) >= 4:
              return i
  
      return 255
  
  
  @jit
  def create_fractal(min_x, max_x, min_y, max_y, image, iters):
      height = image.shape[0]
      width = image.shape[1]
  
      pixel_size_x = (max_x - min_x) / width
      pixel_size_y = (max_y - min_y) / height
      for x in range(width):
          real = min_x + x * pixel_size_x
          for y in range(height):
              imag = min_y + y * pixel_size_y
              color = mandel(real, imag, iters)
              image[y, x] = color
  
      return image
  
  
  image = np.zeros((500 * 10, 750 * 10), dtype=np.uint8)
  
  s = timer()
  create_fractal(-2.0, 1.0, -1.0, 1.0, image, 20)
  e = timer()
  print("Execution time: %f seconds" % (e - s))
  
  imshow(image)
  show()
  