Beispiel #1
0
def getRandomBHinput(n,Type=float,**kargs):
    psAllIncoming =rambo.PS(n,Type,**kargs)
    ps=[
        [-x for x in psAllIncoming[0]],
        [-x for x in psAllIncoming[1]]
         ] +psAllIncoming[2:]
    return BH.BHinput(BH.vectorm(ps),n)
Beispiel #2
0
def treetest():
    nbr = 20
    r = [None] * nbr
    for i in range(1, nbr):
        RG.seed(123456)
        BH.RGMP_set_precision(200 * i)
        ps = rambo.PS(6, RandomGenerator=RGr, Type=BH.RGMP, mathLib=BH)
        cms = [BH.Cmomgmp(*p) for p in ps]
        mc = BH.mcgmp(*cms)
        r[i - 1] = A.eval(mc, ind)

    for i in range(nbr - 2):
        d = abs(r[i + 1] - r[i])
        prec = -BH.log10(d)
        print "%s: %s" % (i, prec.to_double())
Beispiel #3
0
def getNonZeroTree(PRO,
                   excludedList=[],
                   requiredList=[],
                   verbose=False,
                   processTest=lambda x: True):
    ps = rambo.PS(len(PRO))
    cms = [BH.Cmomd(*p) for p in ps]
    mc = BH.mcd(*cms)
    ind = BH.vectori(range(1, len(PRO) + 1))
    for ps in genProcessList(PRO, excludedList, requiredList):
        if verbose: print typesString(ps, True)
        for phs in genAllHelicities(ps):
            pro = BH.process(BH.vectorpID(phs))
            if not processTest(pro): continue
            A = BH.TreeHelAmpl(pro)
            ca = A.eval(mc, ind)
            if abs(ca) != 0.:
                yield pro
Beispiel #4
0
def testTrees(PRO,excludedList=[],requiredList=[],verbose=False,tolerance=0.00000000001,processTest=lambda x: True,StopOnFirstError=False):    
    ntests=0
    nzero=0
    nfailed=0
    npass=0
    nnotpresent=0
    ps =rambo.PS(len(PRO))
    cms = [ BH.Cmomd(*p) for p in ps ]
    mc = BH.mcd(*cms)
    ind = BH.vectori(range(1,len(PRO)+1))
    for ps in genProcessList(PRO, excludedList, requiredList):
        if verbose : print typesString(ps, True)
        for phs in genAllHelicities(ps):
            pro=BH.process(BH.vectorpID(phs))
            if not processTest(pro): continue
            ntests+=1
            A=BH.TreeHelAmpl(pro)
            ca = A.eval(mc,ind)
            if abs(ca) != 0.:
                try:
                    ST = BH.SharedTree(pro)
                    cst = ST.eval(mc,ind)
                    acc=abs((cst-ca)/ca)
                    if acc > tolerance:  
                        print '%s NOT OK, Values are st: %s a: %s ' % ( pro,cst,ca )
                        nfailed+=1               
                    else:
                        if verbose: print '%s OK' % pro
                        npass+=1
                except:    
                    print "Failed to generate SharedTree for process %s" % pro
                    nnotpresent+=1
                    if StopOnFirstError: return pro
            else :
                if verbose: print '%s zero' % pro
                nzero+=1
    print """
    tested: %s
    zero: %s
    passed: %s
    failed: %s
    not present: %s
    """ % (ntests,nzero,npass,nfailed,nnotpresent)
    return (ntests,nzero,nfailed,npass,nnotpresent)
Beispiel #5
0
def printCutInfo():
    for i in range(1, nbr):
        RG.seed(123456)
        BH.RGMP_set_precision(75 * i)
        ps = rambo.PS(6, RandomGenerator=RGr, Type=BH.RGMP, mathLib=BH)
        cms = [BH.Cmomgmp(*p) for p in ps]
        mc = BH.mcgmp(*cms)
        for b in range(1, cp.nbr_bubbles() + 1):
            #print " Bubble %s" % b
            bb = cp.bubble(b)
            res = bb.eval(mc, ind)
            bub[b - 1][i - 1] = res
        for b in range(1, cp.nbr_triangles() + 1):
            #print " Triangle %s" % b
            bb = cp.triangle(b)
            res = bb.eval(mc, ind)
            tri[b - 1][i - 1] = res
        for b in range(1, cp.nbr_boxes() + 1):
            #print " Box %s" % b
            bb = cp.box(b)
            res = bb.eval(mc, ind)
            box[b - 1][i - 1] = res

    for b in range(1, cp.nbr_bubbles() + 1):
        print "bubble %s" % b
        for i in range(nbr - 2):
            d = abs(bub[b - 1][i + 1] - bub[b - 1][i])
            prec = -BH.log10(d)
            print "%s: %s" % (i, prec.to_double())
    for b in range(1, cp.nbr_triangles() + 1):
        print "triangle %s: %s" % (b, (tri[b - 1][0]))
        for i in range(nbr - 2):
            d = abs(tri[b - 1][i + 1] - tri[b - 1][i])
            prec = -BH.log10(d)
            print "%s: %s" % (i, prec.to_double())
    for b in range(1, cp.nbr_boxes() + 1):
        print "box %s" % b
        for i in range(nbr - 2):
            d = abs(bub[b - 1][i + 1] - bub[b - 1][i])
            prec = -BH.log10(d)
            print "%s: %s" % (i, prec.to_double())
Beispiel #6
0
#PRO=BH.process(m,m,qbp,qm,q2m,m,qb2p)
PRO=BH.process(qbp,qm,q2m,m,m,qb2p,m)
PRO2=BH.process(m,m,q2m,qm,qbp,m,qb2p)

PROfailed=BH.process(qbp,qm,q2m,qb2p,p,m,m)

#PRO2=BH.process(qbm,qp,q2m,m,m,qb2p)
#PRO2=BH.process(p,qp,qbm,q2p,qb2m)
#PRO3=BH.process(p,q2p,qb2m,qp,qbm)
#PRO4=BH.process(p,qbm,qp,qb2m,q2p)
A1=BH.TreeHelAmpl(PRO)
A2=BH.TreeHelAmpl(PRO2)
#A3=BH.TreeHelAmpl(PRO3)
#A4=BH.TreeHelAmpl(PRO4)

ps =rambo.PS(len(PRO))
cms = [ BH.Cmomd(*p) for p in ps ]
mc = BH.mcd(*cms)
ind = BH.vectori(range(1,len(PRO)+1))
ind2 = BH.vectori([2,1,7,6,5,4,3])

c1=A1.eval(mc,ind)
c2=A2.eval(mc,ind2)
#c3=A3.eval(mc,ind)
#c4=A4.eval(mc,ind2)

print c1,c2


Beispiel #7
0
import BH

p = BH.cvar.p
m = BH.cvar.m
PRO = BH.process(p, m, p, m, p, m)
A = BH.TreeHelAmpl(PRO)
ind = BH.vectori([1, 2, 3, 4, 5, 6])

RG = BH.GMP_random()
RGr = RG.random
RG.seed(123456)
BH.RGMP_set_precision(1024)

import rambo

ps = rambo.PS(6, RandomGenerator=RGr, Type=BH.RGMP, mathLib=BH)
cms = [BH.Cmomgmp(*p) for p in ps]
mc = BH.mcgmp(*cms)
r1 = A.eval(mc, ind)

RG.seed(123456)
BH.RGMP_set_precision(2048)

ps = rambo.PS(6, RandomGenerator=RGr, Type=BH.RGMP, mathLib=BH)
cms = [BH.Cmomgmp(*p) for p in ps]
mc = BH.mcgmp(*cms)
r2 = A.eval(mc, ind)

ps = rambo.PS(4, RandomGenerator=RGr, Type=BH.RGMP, mathLib=BH)
cms = [BH.Cmomgmp(*p) for p in ps]
mc = BH.mcgmp(*cms)
Beispiel #8
0
            fnString = ' '.join(ts_permuted)
            if fnString in available:
                if isPreferred:
                    print 'found permutation with preferred order for ', ts, ' index ', ind, ' (mapped to %s)' % ts_permuted
                else:
                    print 'found permutation without preferred order for ', ts, ' index ', ind, ' (mapped to %s)' % ts_permuted
                needed.append(' '.join(ts_permuted))
                return (True, 'normal', fnString)
            else:
                if verbose: print '%s not available' % fnString
    return (False, 'normal', '')


N = 7

ps = rambo.PS(7)
cms = [BH.Cmomd(*p) for p in ps]
mc = BH.mcd(*cms)
ind = BH.vectori(range(1, N + 1))
indRev = BH.vectori(range(N, 0, -1))


def FindReverseSolution(pro, notPreferredOK=False, **kwargs):
    ps = list(pro.particle_IDs())
    ps.reverse()
    inversePro = BH.process(BH.vectorpID(ps))
    print pro
    print inversePro
    found, fnString = isThere(inversePro)
    if found:
        A1 = BH.TreeHelAmpl(pro)
def genMomenta(n):
    psAllIncoming = rambo.PS(n)
    ps = [[-x for x in psAllIncoming[0]], [-x for x in psAllIncoming[1]]
          ] + psAllIncoming[2:]
    return ps
Beispiel #10
0
def getRandomMC(n):
	ps =rambo.PS(n)
	cms = [ BH.Cmomd(*p) for p in ps ]
	return BH.mcd(*cms)