• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python math.fsum函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中math.fsum函数的典型用法代码示例。如果您正苦于以下问题:Python fsum函数的具体用法?Python fsum怎么用?Python fsum使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了fsum函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: step_generation

    def step_generation(self, senders, receivers):
        # x_i(t+1) = (a + u(e^i, x(t)))*x_i(t) / (a + u(x(t), x(t)))
        # a is background (lifetime) birthrate -- set to 0

        s_payoffs = self._data['s_payoffs']
        r_payoffs = self._data['r_payoffs']
        s_fitness = [0.] * len(senders)
        r_fitness = [0.] * len(receivers)

        for (s, sp), (r, (rp, rt)) in itertools.product(enumerate(senders), enumerate(receivers)):
            state_acts = self._interactions[(s, r)]
            s_fitness[s] += math.fsum(s_payoffs[state][act] * rp for state, act in state_acts) / 4.
            r_fitness[r] += math.fsum(r_payoffs[rt][state][act] * sp for state, act in state_acts) / 4.

        avg_s = math.fsum(s_fitness[s] * sp for s, sp in enumerate(senders))
        avg_r = math.fsum(r_fitness[r] * rp for r, (rp, rt) in enumerate(receivers))

        new_senders = [s_fitness[s] * sp / avg_s for s, sp in enumerate(senders)]
        new_receivers = [(r_fitness[r] * rp / avg_r, rt) for r, (rp, rt) in enumerate(receivers)]

        for s, sp in enumerate(new_senders):
            if sp < effective_zero:
                new_senders[s] = 0.
        for r, (rp, rt) in enumerate(new_receivers):
            if rp < effective_zero:
                new_receivers[r] = (0., rt)

        return (tuple(new_senders), tuple(new_receivers))
开发者ID:gsmcwhirter,项目名称:gametheory.deception,代码行数:28,代码来源:simulations.py


示例2: calc_ase

 def calc_ase(self, mod_t, exp_t, args):
     """
     Calculates the normalized average squared difference of the traces.
     
     :param mod_t: the trace obtained from the model as ``list``
     :param exp_t: the input trace as ``list``
     :param args: optional arguments as ``dictionary``
     
     :return: the normalized average squared difference, where the normalization is done by
         the squared range of the input trace
         
     """
     if (args["cov_m"]!=None):
             return self.calc_ase_cov(mod_t,exp_t,args)
     temp = []
     for n in range(min([len(exp_t), len(mod_t)])):
         try:
             temp.append(pow(exp_t[n] - mod_t[n], 2))
         except OverflowError:
             return 1
         #except TypeError:
         #    return 1
     try:
         if self.option.output_level == "1":
             print "ase"
             print fsum(temp) / len(temp) / (pow(max(exp_t) - min(exp_t), 2))
     except OverflowError:
             return 1
     return fsum(temp) / len(temp) / (pow(max(exp_t) - min(exp_t), 2))
开发者ID:pfriedrich,项目名称:optimizer,代码行数:29,代码来源:fitnessFunctions.py


示例3: get_device_local_storage_price

def get_device_local_storage_price(device):
    price = math.fsum(s.get_price() for s in device.storage_set.all())
    if not price and device.model and device.model.type in (
            DeviceType.rack_server.id, DeviceType.blade_server.id,
            DeviceType.virtual_server.id):
        try:
            os = OperatingSystem.objects.get(device=device)
            group = ComponentModelGroup.objects.get(name='OS Detected Storage')
        except (OperatingSystem.DoesNotExist,
                ComponentModelGroup.DoesNotExist):
            pass
        else:
            if not group.per_size:
                return group.price or 0
            else:
                storage = os.storage or 0
                remote_storage_size = math.fsum(
                    m.get_size() for m in device.disksharemount_set.all()
                )
                storage -= remote_storage_size
                if storage > 0:
                    return (storage /
                            (group.size_modifier or 1)) * (group.price or 0)
        if device.model.type != DeviceType.virtual_server.id:
            try:
                group = ComponentModelGroup.objects.get(name='Default Disk')
            except ComponentModelGroup.DoesNotExist:
                pass
            else:
                return group.price
    return price
开发者ID:ReJeCtAll,项目名称:ralph,代码行数:31,代码来源:pricing.py


示例4: yules_k

 def yules_k(self):
     freqs = self.self_wordfreq()
     freq_set = list(set(freqs))
     M1 = math.fsum([freqs.count(f)*f for f in freq_set])
     M2 = math.fsum([(f**2)*freqs.count(f) for f in freq_set])
     K = (10000)*(M2 - M1)/(M1**2)
     return K
开发者ID:drewokane,项目名称:Document_Tokenizer,代码行数:7,代码来源:legdoc.py


示例5: calc_grad_dif

    def calc_grad_dif(self, mod_t, exp_t, args):
        """
        Calculates the normalized average squared differences of derivatives of the given traces.
        The gradient is calculated as follows:
        ::

            grad_a=((mod_t[i+1]-mod_t[i-1])/(2*dt))

        where dt is the step between to points in the trace
        
        :param mod_t: the trace obtained from the model as ``list``
        :param exp_t: the input trace as ``list``
        :param args: optional arguments as ``dictionary``
        
        :return: the normalized average squared differences of derivatives where the normalization is done
            by the squared range of the input trace    
        """
        dt = self.reader.data.step
        grad_a = 0
        grad_b = 0
        tmp = []
        for i in range(1, min(len(mod_t), len(exp_t)) - 1):
            grad_a = ((mod_t[i + 1] - mod_t[i - 1]) / (2 * dt))
            grad_b = ((exp_t[i + 1] - exp_t[i - 1]) / (2 * dt))
            tmp.append((grad_a - grad_b) ** 2)
        try:
            if self.option.output_level == "1":
                print "grad dif"
                print fsum(tmp) / len(tmp) / (pow(max(grad_b) - min(grad_b), 2))
        except OverflowError:
                return 1
            
            
        return fsum(tmp) / len(tmp) / (pow(max(grad_b) - min(grad_b), 2))  
开发者ID:pfriedrich,项目名称:optimizer,代码行数:34,代码来源:fitnessFunctions.py


示例6: simpsons

def simpsons(a,b,n):
    Xk = (float) (b-a)/n
    x2 = arange(a+2*Xk, b-Xk, 2*Xk) # 3rd, 5th, 7th... (n-2)th x values
    x4 = arange(a+Xk, b, 2*Xk) # 2nd, 4th, 6th... (n-1)th x values
    sum_of_2s = 2*fsum(f(x2))
    sum_of_4s = 4*fsum(f(x4))
    return Xk/3*(f(a) + sum_of_2s + sum_of_4s + f(b))
开发者ID:dmonopoly,项目名称:math126,代码行数:7,代码来源:problem2.py


示例7: weightedOverhead

    def weightedOverhead(self, numpy=False):
        ns = 'weighted.numpy' if numpy else 'weighted'
        factors = {
            'strConcat': 0.8171743283710745,
            'objectInit': 162.78282024428898,
            'getListItem': 12.018827808252004,
            'functionCall': 48.613475069418904,
            'getDictItem': 0.2148913920265531,
            'methodCall': 75.36797944163118,
            'numpy': 1.0,
            }
        runtimes = {
            'strConcat': self.totalStrConcatRuntime(),
            'objectInit': self.totalObjectCreations() * PYTHON_OBJECT_CREATION_COST,
            'functionCall': self.totalPythonCalls() * PYTHON_CALL_COST,
            'getListItem': self.totalGetitemRuntime(),
            }
        if numpy:
            runtimes['numpy'] = self.totalNumpyRuntime()

        total_runtime = fsum(runtimes.values())
        c_runtimes = {key:(runtime / factors[key]) for key, runtime in runtimes.iteritems()}
        total_c_runtime = fsum(c_runtimes.values())

        self.store(ns, 'total_tt', self.total_tt)
        self.store(ns, 'total_runtime', total_runtime)
        self.store(ns, 'total_c_runtime', total_c_runtime)
        self.store(ns, 'runtimes', runtimes)
        self.store(ns, 'factors', factors)
        self.store(ns, 'c_runtimes', c_runtimes)

        return 1 - (total_c_runtime / total_runtime), (total_runtime / self.total_tt)
开发者ID:Anderrb,项目名称:Dynamic-benchmark,代码行数:32,代码来源:PstatsUtil.py


示例8: genStats

def genStats(times):
    N = len(times)
    avgTime = math.fsum(times)/ N
    timesMinusMean = [x - avgTime for x in times]
    timesMMSquared = [math.pow(x,2) for x in timesMinusMean]
    var = math.fsum(timesMMSquared) / N
    return avgTime, var
开发者ID:raman-lab,项目名称:HTCondor_scripts,代码行数:7,代码来源:condorBatchTime.py


示例9: _generalised_sum

def _generalised_sum(data, func):
    """_generalised_sum(data, func) -> len(data), sum(func(items of data))

    Return a two-tuple of the length of data and the sum of func() of the
    items of data. If func is None, use just the sum of items of data.
    """
    # Try fast path.
    try:
        count = len(data)
    except TypeError:
        # Slow path for iterables without len.
        # We want to support BIG data streams, so avoid converting to a
        # list. Since we need both a count and a sum, we iterate over the
        # items and emulate math.fsum ourselves.
        ap = add_partial
        partials = []
        count = 0
        if func is None:
            # Note: we could check for func is None inside the loop. That
            # is much slower. We could also say func = lambda x: x, which
            # isn't as bad but still somewhat expensive.
            for count, x in enumerate(data, 1):
                ap(x, partials)
        else:
            for count, x in enumerate(data, 1):
                ap(func(x), partials)
        total = math.fsum(partials)
    else: # Fast path continues.
        if func is None:
            # See comment above.
            total = math.fsum(data)
        else:
            total = math.fsum(func(x) for x in data)
    return count, total
开发者ID:bmcculley,项目名称:pycalcstats,代码行数:34,代码来源:utils.py


示例10: collapse_duplicates

def collapse_duplicates(raw_data):
	# Create dictionary of lists of duplicates
	dup_data = raw_data.get_array()
	set_sp = {}
	set_ab = {}
	set_co = {}
	set_sz = {}
	set_plasmids = {}
	for sp,ab,co in dup_data:
		if 'taxid' in sp: # retain useful information
			name = sp.rpartition('|')[0] # last segment is usually the original chromosome etc name
		else:
			name = sp.partition('_gi|')[0].partition('|')[0].partition('_gca')[0] #the prepended strain name
		set_sp.setdefault(name,[]).append(sp)
		set_ab.setdefault(name,[]).append(ab)
		set_co.setdefault(name,[]).append(co)
		set_sz.setdefault(name,[]).append(co)

	assert(set_ab.keys() == set_co.keys() == set_sp.keys())

	# New, clean dataset for data without duplicates
	undupe = Dataset()

	# Note: we include plasmids in the count total solely because i100 was simulated to include 1x plasmid coverage.
	for k,v in set_sp.items():
		if len(v) == 1: # just add record directly if it has no duplicates
			undupe.add_record(k,set_ab[k][0],set_co[k][0],set_sz[k][0])
		else: # sum counts and average abundances
			undupe.add_record(k,math.fsum(set_ab[k])/len(v),math.fsum(set_co[k]),math.fsum(set_sz[k]))

	print "Number of entries after combining duplicates: {0}".format(len(undupe.species))

	return undupe
开发者ID:pachterlab,项目名称:metakallisto,代码行数:33,代码来源:compare_metagenomic_results_to_truth.py


示例11: stats

def stats(results, optimal=None):
    sum, notfound, worst = first_stats(results)
    avg = sum / len(results)
    varianza = fsum([(x - avg) ** 2 for x in results]) / len(results)
    scarto = fpformat.fix(sqrt(varianza), 2)
    valori = set(results)
    frequenze = dict(zip(valori, [results.count(v) for v in valori]))
    sorted_frequenze = sorted(frequenze, key=frequenze.get, reverse=True)
    sorted_frequenze = sorted_frequenze[:10]
    if optimal:
        opt_sum, opt_nf, opt_worst = first_stats(optimal)
        opt_avg = opt_sum / len(optimal)
        opt_scarto = fpformat.fix(sqrt(fsum([(x - opt_avg) ** 2 for x in optimal]) / len(optimal)), 2)
        ratio_avg = avg / opt_avg
        ratio_worst = worst / opt_worst
        ratio_scarto = fpformat.fix((float(scarto) / float(opt_scarto)), 2)

    print "-------------------------------------------------"
    print "Statistiche:\t\t\t\tOffline\tOnline\tRapporto"
    print "Numero di test eseguiti:\t\t " + str(len(results)) + "\t" + str(len(optimal))
#    print "Carburante esaurito:\t\t\t " + str(notfound)
    print "Caso peggiore:\t\t\t\t " + str(worst) + "\t" + str(opt_worst) + "\t" + str(ratio_worst)
    print "Media aritmetica dei risultati:\t\t " + str(avg) + "\t" + str(opt_avg) + "\t" + str(ratio_avg)
    print "Scarto quadratico medio:\t\t " + str(scarto) + "\t" + str(opt_scarto) + "\t" + str(ratio_scarto)
    print "I dieci risultati piu' riscontrati:"
    print "Costo:\tOttenuto:\tSotto la media?"
    for el in sorted_frequenze:
        sotto = "media"
        if el < avg:
            sotto = "si"
        elif el > avg:
            sotto = "no"
        print str(el) + "\t" + str(frequenze[el]) + "\t\t" + sotto
开发者ID:Psykopear,项目名称:DroneGame,代码行数:33,代码来源:tests.py


示例12: render_summary

def render_summary(stats):
    """
    Render summary of an event stream run.
    :param stats: Dictionary('clock':list()<float>, 'rss':list()<int>)
    :return: Void.
    """
    print('\nSummary profile from stream execution:')
    print('Samples: %i' % len(stats['clock']))
    if -1 in stats['clock']:
        print('(ERRORS DETECTED: Removing timing samples from aborted invocations.)')
        stats['clock'] = [x for x in stats['clock'] if x > 0]
        print('New sample size: %i' % len(stats['clock']))
    median = sorted(stats['clock'])[math.trunc(len(stats['clock']) / 2)]
    print(stats['clock'])
    mean =  math.fsum(stats['clock'])/len(stats['clock'])
    print('Clock time:\n'
          '\tMin: %ims, Max: %ims, Median: %ims, Median Billing Bucket: %ims, Rounded Standard Deviation: %sms' % (
              min(stats['clock']),
              max(stats['clock']),
              median,
              billing_bucket(median),
              math.trunc(math.ceil(math.sqrt(math.fsum((x-mean)**2 for x in stats['clock'])/(len(stats['clock'])-1))))
          )) if len(stats['clock']) > 0 else print("No valid timing samples!")
    print('Peak resident set size (memory):\n'
          '\tMin: %s, Max: %s' % (
              size(min(stats['rss'])),
              size(max(stats['rss']))
          ))
开发者ID:dougie,项目名称:emulambda,代码行数:28,代码来源:render.py


示例13: inTheGrandSchemeOfThings

def inTheGrandSchemeOfThings(nrNodesMin, nrNodesMax, algorithm):
    listOfAverage = [[0.0], []]
    listOfMaximum = [[0.0], []]
    listOfMedian = [[0.0], []]

    for nrNodes in range(nrNodesMin, nrNodesMax, 2):
        listOfNodes = setupDesign(nrNodes, algorithm)
        maxLevel = len(listOfNodes) - 1
        while len(listOfAverage) <= maxLevel and len(listOfMaximum) <= maxLevel and len(listOfMedian) <= maxLevel:
            listOfAverage.append([])
            listOfMaximum.append([])
            listOfMedian.append([])
        for level in range(1, maxLevel + 1):
            average = Measurements.averageDistance(listOfNodes, level)
            listOfAverage[level].append(average / level)
            maximum = Measurements.maximumDistance(listOfNodes, level)
            listOfMaximum[level].append(maximum / level)
            median = Measurements.distanceMedian(listOfNodes, level)
            listOfMedian[level].append(median / level)
    for i in range(1, len(listOfAverage)):
        listOfAverage[i] = math.fsum(listOfAverage[i]) / len(listOfAverage[i])
        listOfMaximum[i] = math.fsum(listOfMaximum[i]) / len(listOfMaximum[i])
        listOfMedian[i] = math.fsum(listOfMedian[i]) / len(listOfMedian[i])
    del listOfAverage[0]
    del listOfMaximum[0]
    del listOfMedian[0]
    plt.plot(range(1, 1 + len(listOfAverage)), listOfAverage, label = 'Average')
    plt.plot(range(1, 1 + len(listOfMaximum)), listOfMaximum, label = 'Maximum')
    plt.plot(range(1, 1 + len(listOfMedian)), listOfMedian, label = 'Median')
    plt.legend(loc=3)
    plt.axis([0, maxLevel, 0, 1.1])
    plt.show()
开发者ID:PvdPal,项目名称:ANL,代码行数:32,代码来源:Measurements.py


示例14: compute_volume

def compute_volume(mesh):
    if "tetra" in mesh.cells:
        vol = math.fsum(
            get_simplex_volumes(*prune_nodes(mesh.points, mesh.cells["tetra"]))
        )
    elif "triangle" in mesh.cells or "quad" in mesh.cells:
        vol = 0.0
        if "triangle" in mesh.cells:
            # triangles
            vol += math.fsum(
                get_triangle_volumes(*prune_nodes(mesh.points, mesh.cells["triangle"]))
            )
        if "quad" in mesh.cells:
            # quad: treat as two triangles
            quads = mesh.cells["quad"].T
            split_cells = numpy.column_stack(
                [[quads[0], quads[1], quads[2]], [quads[0], quads[2], quads[3]]]
            ).T
            vol += math.fsum(
                get_triangle_volumes(*prune_nodes(mesh.points, split_cells))
            )
    else:
        assert "line" in mesh.cells
        segs = numpy.diff(mesh.points[mesh.cells["line"]], axis=1).squeeze()
        vol = numpy.sum(numpy.sqrt(numpy.einsum("...j, ...j", segs, segs)))

    return vol
开发者ID:gdmcbain,项目名称:pygmsh,代码行数:27,代码来源:helpers.py


示例15: get_init_nation_data

def get_init_nation_data(nation_set, all_games):
    nation_data = {}
    for nation in nation_set:
        nation_data[nation] = {"games":[],"GF":[],"GA":[],"weight":[], \
            "Off":0, "Def":0, "error":1}
    total_goals = []
    total_weight = []
    for game in all_games:
        team1 = game["team1"]
        team2 = game["team2"]
        nation_data[team1]["games"].append(game)
        nation_data[team1]["GF"].append(game["goals1"]*game["weight"])
        nation_data[team1]["GA"].append(game["goals2"]*game["weight"])
        nation_data[team1]["weight"].append(game["weight"])
        nation_data[team2]["games"].append(game)
        nation_data[team2]["GF"].append(game["goals2"]*game["weight"])
        nation_data[team2]["GA"].append(game["goals1"]*game["weight"])
        nation_data[team2]["weight"].append(game["weight"])
        total_goals.append((game["goals1"]+game["goals2"]) * game["weight"])
        total_weight.append(game["weight"])
    
    for nation in nation_set:
        # initial estimates of Offense/Defense are GF/GA divided by weight
        nation_data[nation]["GF"] = math.fsum(nation_data[nation]["GF"])
        nation_data[nation]["GA"] = math.fsum(nation_data[nation]["GA"])
        nation_data[nation]["Offense"] = nation_data[nation]["GF"]
        nation_data[nation]["weight"]=math.fsum(nation_data[nation]["weight"])
        nation_data[nation]["Defense"] = nation_data[nation]["GA"]
        nation_data[nation]["Offense"] /= nation_data[nation]["weight"]
        nation_data[nation]["Defense"] /= nation_data[nation]["weight"]
        
    total_goals = math.fsum(total_goals)
    total_weight = math.fsum(total_weight)
    return nation_data, total_goals/total_weight/2 # PER TEAM
开发者ID:PsyMar,项目名称:FutbolRatings,代码行数:34,代码来源:main.py


示例16: calcDistance

def calcDistance(*coords):
    """    Calculate distance according to :
    ((sum of all distances^-6)/number of distances)^-1/6
    or (sum of all distances^-6)^-1/6

    calcDistance.method should be set before use
    """
    result = None

    try:
        distance_list = (sqrt(fsum(sub(*coord) ** 2 for coord in izip(*atoms))) for atoms in product(*coords))
        sum6 = fsum(pow(distance, -6) for distance in distance_list)
        if calcDistance.method == 'ave6':
            number_of_distances = reduce(mul, (len(coord) for coord in coords))
        elif calcDistance.method == 'sum6':
            number_of_distances = 1
        result = pow(sum6/number_of_distances, -1./6)
    except(ValueError, TypeError):
        errors.add_error_message("Problem using coordinates : " +
                                 str(coords) + "\n" +
                                 " and distances list : " +
                                 str([distance for distance in distance_list]) + "\n")
    except AttributeError:
        sys.stderr.write("Please set calcDistance.method before using calcDistance()\n")

    return result
开发者ID:oserve,项目名称:PyNMR,代码行数:26,代码来源:Geom.py


示例17: P_Nbpi

    def P_Nbpi(self, obs, Nbpi):
        top=PoissonApprox2(obs.Nmi,obs.Ci*Nbpi)
        #print(top, obs.Nmi, obs.Ci, Nbpi)

        if obs.Nmi>5:
            bottom=1.0/(obs.Ci)
        else:
            poissonrange=(obs.Npi*3+obs.Nmi*3+30)
            #memoize the bottom part
            if obs.Nmi in self.memoizedict2:
                if obs.Ci*Nbpi in self.memoizedict2[obs.Nmi]:
                    bottom=self.memoizedict2[obs.Nmi][obs.Ci*Nbpi]
                else:
                    self.memoizedict2[obs.Nmi][obs.Ci*Nbpi]=math.fsum(\
                        [PoissonApprox2(obs.Nmi,obs.Ci*Nbpi2)\
                        for Nbpi2 in range(poissonrange)])
                    bottom=self.memoizedict2[obs.Nmi][obs.Ci*Nbpi]
            else:
                self.memoizedict2[obs.Nmi]={}
                self.memoizedict2[obs.Nmi][obs.Ci*Nbpi]=math.fsum(\
                    [PoissonApprox2(obs.Nmi,obs.Ci*Nbpi2)\
                    for Nbpi2 in range(poissonrange)])
                bottom=self.memoizedict2[obs.Nmi][obs.Ci*Nbpi]
        if bottom==0.0:
            print("%s/%s" % (top, bottom))
            print("Nbpi: %s" % Nbpi)
            print("Nmi: %s" % obs.Nmi)
            print("Ci: %s" % obs.Ci)
        prob=top/bottom

        return prob
开发者ID:ryanxcharles,项目名称:dwarfs-bayes,代码行数:31,代码来源:bayes.py


示例18: test_Poisson_sum_times

	def test_Poisson_sum_times(self):
		print("Testing Poisson sum times")
		k_max=400000
		lmbda=100000
		print("k_max=%s, lmbda=%s" % (k_max,lmbda))
		gt1=time.clock()
		s=math.fsum([bayes.PoissonApprox2(x,lmbda) for x in range(k_max)])
		gt2=time.clock()
		print("Time: %s seconds" % (gt2-gt1,))
		k_max=400000
		lmbda=200000
		print("k_max=%s, lmbda=%s" % (k_max,lmbda))
		gt1=time.clock()
		s=math.fsum([bayes.PoissonApprox2(x,lmbda) for x in range(k_max)])
		gt2=time.clock()
		print("Time: %s seconds" % (gt2-gt1,))
		k_max=600000
		lmbda=200000
		print("k_max=%s, lmbda=%s" % (k_max,lmbda))
		gt1=time.clock()
		s=math.fsum([bayes.PoissonApprox2(x,lmbda) for x in range(k_max)])
		gt2=time.clock()
		print("Time: %s seconds" % (gt2-gt1,))
		k_max=800000
		lmbda=200000
		print("k_max=%s, lmbda=%s" % (k_max,lmbda))
		gt1=time.clock()
		s=math.fsum([bayes.PoissonApprox2(x,lmbda) for x in range(k_max)])
		gt2=time.clock()
		print("Time: %s seconds" % (gt2-gt1,))
开发者ID:ryanxcharles,项目名称:dwarfs-bayes,代码行数:30,代码来源:test.py


示例19: h2jpopx

def h2jpopx(t,v,maxj,maxv):
    j = np.arange(maxj + 1, dtype = float)  #Array of j values
    g_j = 2.0*j + 1.0
    E_j = h2ejx(v,maxj)                  #cm^-1

    nj = g_j*np.exp(-(E_j*h*c)/(kb*t)) #Herzberg pg. 124

    #Need to properly normalize now (follow Herzberg pgs. 123-125)
    #For most astrophysically relevant temperatures, a max j of 100
    #should be adequate for getting the Q sum to converge

    highj = 25   #TOO MUCH HIGHER AND THE NUMBERS GET SO SMALL THEY ROLLOVER
    E_i = h2ejx(v,highj)
    i = np.arange(highj + 1, dtype = float)

    Qr = (2.0*i + 1.0)*np.exp(-(E_i*h*c)/(kb*t))
    njn = nj/math.fsum(Qr)

    #Get vibrational population (only relevant for large temperatures)
    E_v = np.zeros(maxv+1)

    for m in range(0,maxv+1):
        E_v[m] = h2ejx(m,0)      #cm^-1
    Qv = np.exp(-(E_v*h*c)/(kb*t))
    nvn = Qv/math.fsum(Qv)
    njn = njn*nvn[v]
    return njn
开发者ID:wevonosky,项目名称:Molecular-Hydrogen-Fluorescence-Model,代码行数:27,代码来源:Model_Chi_Grid_Complete_July6.py


示例20: kl_measures

def kl_measures(sender_pop, receiver_pop, n=2):
    msgs = list(itertools.product(range(n), range(n)))
    states = list(itertools.product(range(n), range(n)))
    state_probs = [1. / float(len(states))] * len(states)

    all_cprobs_msg_given_state = collections.defaultdict(list)
    all_cprobs_state_given_msg = collections.defaultdict(list)
    information_contents = collections.defaultdict(list)
    for i, msg in enumerate(msgs):
        cprobs_msg_given_state = []
        for j, state in enumerate(states):
            pr = 0.
            for (sender, sender_prob) in sender_pop:
                if simulation.sender_matrix(sender)[j][i] == 1:
                    pr += sender_prob
            cprobs_msg_given_state.append(pr)
        all_cprobs_msg_given_state[i] = cprobs_msg_given_state

        for j, state in enumerate(states):
            if math.fsum(cprobs_msg_given_state) > 0.:
                prob_state_given_msg = ((state_probs[j] * cprobs_msg_given_state[j]) /
                                        math.fsum(state_probs[k] * cprobs_msg_given_state[k]
                                                    for k in xrange(len(states))))
            else:
                prob_state_given_msg = float('inf')

            all_cprobs_state_given_msg[j].append(prob_state_given_msg)

            if prob_state_given_msg > 0. and not math.isinf(prob_state_given_msg):
                information_contents[i].append(math.log(prob_state_given_msg / state_probs[j]))
            else:
                information_contents[i].append(- float('inf'))

    return (information_contents, all_cprobs_state_given_msg, all_cprobs_msg_given_state)
开发者ID:gsmcwhirter,项目名称:deception,代码行数:34,代码来源:stats.py



注:本文中的math.fsum函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python math.gamma函数代码示例发布时间:2022-05-27
下一篇:
Python math.frexp函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap