def newPopulation(x0, a, b, npop): nx = len(x0) nf = 0 ninf = 0 pop = [] n = 0 ntries = 0 x = x0 while ((n < npop) & ((ntries + 1) < 3 * npop)): vctr = x[:] try: nf = nf + 1 y = f.eval(x) ny = len(y) for i in range(ny): vctr.append(y[i]) pop.append(vctr) n = n + 1 except Exception as e: ninf = ninf + 1 #print(e) r = [] for i in range(nx): r.append(random.uniform(0, 1)) x = sum(mult(r, res(b, a)), a) #print("n: " + str(n) + " ninf: " + str(ninf) + " x: " + str(x)) return [pop, nx, ny, nf, ninf]
def mc_stack_n_data_sum(wrps, merge_mc_key_func=None, use_all_data_lumi=False): """ Stacks MC histos and merges data, input needs to be sorted and grouped. The output are tuples of MC stacks and data histograms. ATTENTION: This crashes, if the proper histograms are not present! :param wrps: Iterables of HistoWrapper (grouped) :param merge_mc_key_func: key function for python sorted(...), default tries to sort after stack position :yields: (StackWrapper, HistoWrapper) """ if not merge_mc_key_func: merge_mc_key_func = lambda w: settings.get_stack_position(w.sample) for grp in wrps: # split stream data, mc = split_data_mc(grp) # sum up data data_sum = None try: data_sum = op.sum(data) except op.TooFewWrpsError: print "WARNING generators.mc_stack_n_data_sum(..): "\ "No data histos present! I will yield only mc." if use_all_data_lumi: data_lumi = settings.data_lumi_sum_wrp() else: data_lumi = op.lumi(data_sum) # merge mc samples (merge also normalizes to lumi = 1.) mc_sorted = sorted(mc, key=merge_mc_key_func) mc_groupd = group(mc_sorted, merge_mc_key_func) mc_merged = (op.merge(g) for g in mc_groupd) mc_colord = apply_histo_fillcolor(mc_merged) # stack mc mc_norm = gen_prod( itertools.izip(mc_colord, itertools.repeat(data_lumi))) mc_stck = None try: mc_stck = op.stack(mc_norm) except op.TooFewWrpsError: print "WARNING generators.mc_stack_n_data_sum(..): " \ "No mc histos present! I will yield only data" if mc_stck and data_sum: yield mc_stck, data_sum elif mc_stck: yield (mc_stck, ) elif data_sum: yield (data_sum, ) else: raise op.TooFewWrpsError("Neither data nor mc histos present!")
def mc_stack_n_data_sum(wrps, merge_mc_key_func=None, use_all_data_lumi=False): """ Stacks MC histos and merges data, input needs to be sorted and grouped. The output are tuples of MC stacks and data histograms. ATTENTION: This crashes, if the proper histograms are not present! :param wrps: Iterables of HistoWrapper (grouped) :param merge_mc_key_func: key function for python sorted(...), default tries to sort after stack position :yields: (StackWrapper, HistoWrapper) """ if not merge_mc_key_func: merge_mc_key_func = lambda w: settings.get_stack_position(w.sample) for grp in wrps: # split stream data, mc = split_data_mc(grp) # sum up data data_sum = None try: data_sum = op.sum(data) except op.TooFewWrpsError: print "WARNING generators.mc_stack_n_data_sum(..): "\ "No data histos present! I will yield only mc." if use_all_data_lumi: data_lumi = settings.data_lumi_sum_wrp() else: data_lumi = op.lumi(data_sum) # merge mc samples (merge also normalizes to lumi = 1.) mc_sorted = sorted(mc, key=merge_mc_key_func) mc_groupd = group(mc_sorted, merge_mc_key_func) mc_merged = (op.merge(g) for g in mc_groupd) mc_colord = apply_histo_fillcolor(mc_merged) # stack mc mc_norm = gen_prod(itertools.izip(mc_colord, itertools.repeat(data_lumi))) mc_stck = None try: mc_stck = op.stack(mc_norm) except op.TooFewWrpsError: print "WARNING generators.mc_stack_n_data_sum(..): " \ "No mc histos present! I will yield only data" if mc_stck and data_sum: yield mc_stck, data_sum elif mc_stck: yield (mc_stck, ) elif data_sum: yield (data_sum, ) else: raise op.TooFewWrpsError("Neither data nor mc histos present!")
def plantPopulation(x0, a, b, ngen, npop, nrmax, output): plPop = NewPopulation.newPopulation(x0, a, b, npop) phi = plPop[0] nx = plPop[1] ny = plPop[2] nf = plPop[3] ninf = plPop[4] #print(plPop) pop = PlantSort.plantSort(phi, nx, ny) #print(pop) gen = 0 x = [] y = [] while gen < ngen: N = PlantFitness.computeFitness(pop, nx, ny, npop) N = N[0] phi = [] for i in range(npop): phi.append(pop[i]) # print(N[p]) nr = ceil(nrmax * (1 - N[i]) * random.random()) if nr < 1: nr = 1 for j in range(nr): dx = [] for n in range(nx): dx.append(random.random() * nx) dx = mult(res(dx, 0.5), (2 * (1 - N[i]))) x = [] for k in range(nx): x.append(pop[i][k]) x = sum(x, dx) #print("x:"); print(x); # reset boundaries x = resetBoundaries(x, a, True, b) #print("xa:"); print(x); x = resetBoundaries(x, b, False, b) #print("xb:"); print(x); nf = 0 try: nf = nf + 1 y = f.eval(x) for k in range(len(y)): x.append(y[k]) phi.append(x) except Exception as e: ninf = ninf + 1 pop = PlantSort.plantSort(phi, nx, ny) gen = gen + 1 x = [] y = [] #print(pop); #stop = input("prompt: ") for c in range(len(pop)): tX = [] tY = [] for i in range(nx): tX.append(pop[c][i]) for j in range(len(pop[0]) - nx): tY.append(pop[c][j + (nx)]) x.append(tX) y.append(tY) return [x, y, nf, ninf]
while True: array1 = [] print("Enter 10 positive or negative integers into a list: ") elms = 0 while elms != 10: try: array1.append(int(input())) elms += 1 except ValueError: print("INCORRECT INPUT, TRY AGAIN") print("Your array is:") print(array1) print("The sum of the elements in the array is " + str(sum(array1))) print("The largest element of the array is " + str(getLargestNum(array1))) print("The smallest element of the array is " + str(getSmallestNum(array1))) print("The even elements of the array are " + str(getEvenNums(array1))) print("The odd elements of the array are " + str(getOddNums(array1))) print("The positive elements of the array are " + str(printPositiveNums(array1))) print("All of the elements converted to positive: " + str(convertPositiveNums(array1))) factor = int(input("Enter a factor to multiply elements of the array: ")) print("The elements multipled by the inputed factor are: " + str(multiplyList(array1, factor))) #print(vectorMultiply(testArray,testArray2))
def mc_stack_n_data_sum(wrps, merge_mc_key_func=None, use_all_data_lumi=True): """ Stacks MC histos and merges data, input needs to be sorted and grouped. Yields tuples of an MC stack, signal histograms, and a data histogram, if all kinds of data are present. Raises an exception if no histograms are given at all. :param wrps: Iterables of HistoWrapper (grouped) :param merge_mc_key_func: key function for python sorted(...), default tries to sort after stack position :yields: WrapperWrapper of wrappers for plotting """ if not merge_mc_key_func: merge_mc_key_func = analysis.get_stack_position for grp in wrps: # split stream dat, bkg, sig = split_data_bkg_sig(grp) # data dat_sum = None try: dat_sum = op.sum(dat) except op.TooFewWrpsError: monitor.message('generators.mc_stack_n_data_sum', 'DEBUG No data histograms present!') if dat_sum and not use_all_data_lumi: data_lumi = op.lumi(dat_sum) else: data_lumi = analysis.data_lumi_sum_wrp() # background (op.merge normalizes to lumi = 1.) bkg = sorted(bkg, key=merge_mc_key_func) is_2d = bkg and 'TH2' in bkg[0].type bkg = group(bkg, merge_mc_key_func) bkg = (op.merge(g) for g in bkg) bkg = apply_fillcolor(bkg) if settings.stack_line_color: bkg = apply_linecolor(bkg, settings.stack_line_color) if data_lumi.float != 1.: bkg = gen_prod(itertools.izip(bkg, itertools.repeat(data_lumi))) try: if is_2d: bkg_stk = gen_squash_sys_acc(bkg, op.sum) else: bkg_stk = gen_squash_sys_acc(bkg, op.stack) except op.TooFewWrpsError: bkg_stk = None monitor.message('generators.mc_stack_n_data_sum', 'DEBUG No background histograms present!') # signal sig = sorted(sig, key=merge_mc_key_func) sig = group(sig, merge_mc_key_func) sig = list(op.merge(g) for g in sig) if any(s.sys_info for s in sig): sig = sorted(sig, key=lambda s: s.sample) sig = group(sig, lambda s: s.sample) sig = (gen_squash_sys(s) for s in sig) sig = apply_linecolor(sig) sig = apply_linewidth(sig) sig = list(sig) if not sig: monitor.message('generators.mc_stack_n_data_sum', 'DEBUG No signal histograms present!') # return in order for plotting: bkg, signals, data res = [bkg_stk] + sig + [dat_sum] res = list(r for r in res if r) if res: yield wrappers.WrapperWrapper(res, name=grp.name) else: raise op.TooFewWrpsError('No histograms present!')