def calc_pure_python(desired_width, max_iterations): """Create a list of complex co-ordinates (zs) and complex parameters (cs), build Julia set and display""" x_step = (float(x2 - x1) / float(desired_width)) y_step = (float(y1 - y2) / float(desired_width)) x = [] y = [] ycoord = y2 while ycoord > y1: y.append(ycoord) ycoord += y_step xcoord = x1 while xcoord < x2: x.append(xcoord) xcoord += x_step # build a list of co-ordinates and the initial condition for each cell. # Note that our initial condition is a constant and could easily be removed, # we use it to simulate a real-world scenario with several inputs to our # function zs = [] cs = [] for ycoord in y: for xcoord in x: zs.append(complex(xcoord, ycoord)) cs.append(complex(c_real, c_imag)) print "Length of x:", len(x) print "Total elements:", len(zs) start_time = time.time() output = calculate.calculate_z(max_iterations, zs, cs) end_time = time.time() secs = end_time - start_time print "Took", secs, "seconds" validation_sum = sum(output) print "Total sum of elements (for validation):", validation_sum
def calc_pure_python(desired_width, max_iterations): x_step = (float(x2 - x1) / float(desired_width)) y_step = (float(y1 - y2) / float(desired_width)) x = [] y = [] ycoord = y2 while ycoord > y1: y.append(ycoord) ycoord += y_step xcoord = x1 while xcoord < x2: x.append(xcoord) xcoord += x_step # Build a list of coordinates and the initial condition for each cell. # Note that our initial condition is a constant and could easily be removed; # we use it to simulate a real-world scenario with several inputs to # our function. zs = [] cs = [] for ycoord in y: for xcoord in x: zs.append(complex(xcoord, ycoord)) cs.append(complex(c_real, c_imag)) print("Length of x:", len(x)) print("Total elements:", len(zs)) start_time = time.time() output = calculate.calculate_z(max_iterations, zs, cs) end_time = time.time() secs = end_time - start_time print("Took", secs, "seconds")
def calc_pure_python(desired_width, max_iterations): x_step = (float(x2 - x1) / float(desired_width)) y_step = (float(y1 - y2) / float(desired_width)) x = [] y = [] ycoord = y2 while ycoord > y1: y.append(ycoord) ycoord += y_step xcoord = x1 while xcoord < x2: x.append(xcoord) xcoord += x_step zs = [] cs = [] for ycoord in y: for xcoord in x: zs.append(complex(xcoord, ycoord)) cs.append(complex(c_real, c_imag)) #numpy change zs = numpy.array(zs) cs = numpy.array(cs) #change done print("Length of x:", len(x)) print("Total elemrnt", len(zs)) start_time = time.time() output = calculate.calculate_z(max_iterations, zs, cs) end_time = time.time() secs = end_time - start_time print("Took", secs, "seconds") assert sum(output) == 33219980
def calc_pure_python(desired_width, max_iterations): """Create a list of complex coordinates (zs) and complex parameters (cs), build Julia set, and display""" start_time = time.time() output = calculate.calculate_z(max_iterations, zs, cs) end_time = time.time() secs = end_time - start_time print("Took", secs, "seconds") assert sum(output) == 33219980
def calc_pure_python(desired_width, max_iterations): """Create a list of complex coordinates (zs) and complex parameters (cs), build Julia set, and display""" x_step = (float(x2 - x1) / float(desired_width)) y_step = (float(y2 - y1) / float(desired_width)) x = [] y = [] ycoord = y2 while ycoord > y1: y.append(ycoord) ycoord -= y_step xcoord = x1 while xcoord < x2: x.append(xcoord) xcoord += x_step # Build a list of coordinates and the initial condition for each cell. # Note that our initial condition is a constant and could easily be removed; # we use it to simulate a real-world scenario with several inputs to # our function. zs = [] cs = [] for ycoord in y: for xcoord in x: zs.append(complex(xcoord, ycoord)) cs.append(complex(c_real, c_imag)) print "Length of x:", len(x) print "Total elements:", len(zs) start_time = time.time() output = calculate.calculate_z(max_iteration, zs, cs) fout = open('julia.pgm', 'w') fout.write('P2\n# Julia Set image\n' + str(1000) + ' ' + str(1000) + '\n300\n') for i in range(1000): list_part = output[i*1000:i*1000+1000] for item in list_part: fout.write(str(item) + ' ') fout.write('\n') fout.close() end_time = time.time() secs = end_time - start_time print calculate_z_serial_purepython.func_name + " took", secs, "seconds"
def calc_pure_python(desired_width, max_iterations): """複素数の座標リストzaと、複素数のパラメータリストcsを作り、ジュリア集合を使って表現""" x_step = (float(x2 - x1) / float(desired_width)) y_step = (float(y1 - y2) / float(desired_width)) x = [] y = [] ycoord = y2 while ycoord > y1: y.append(ycoord) ycoord += y_step xcoord = x1 while xcoord < x2: x.append(xcoord) xcoord += x_step # 座標リストを作って各点を初期条件にする # 初期条件は定数で用意に削除可能なので、必要ならこの関数に # 入力値を与えて実生活のシナリオをシミュレーションできる zs = [] cs = [] for ycoord in y: for xcoord in x: zs.append(complex(xcoord, ycoord)) cs.append(complex(c_real, c_imag)) print('Length of x:', len(x)) print('Total elements:', len(zs)) start_time = time.time() output = calculate.calculate_z(max_iterations, zs, cs) end_time = time.time() secs = end_time - start_time print('took', secs, 'seconds') # 1000^2のグリットを繰り返し上限を300としたときの値 # と低入力値を使って、微小な間違いを検出するためのもの assert sum(output) == 33219980