Example #1
0
def division(p,q):
    r=[]
    m=len(p)
    n=len(q)
    if(islesser(p,q)):
        r=[]
    else:
        i=m-n
        rest=p[0:i]
        temp=p[i:m]
        while(i>0):
            rest=p[0:i]
            x=smalldiv(temp,q)
            r[0:0]=x
            temp=trnctr(subtract(trnctr(temp),trnctr(multiply(x,q))))
            temp[0:0]=[rest[i-1]]
            rest[i-1:]=[]
            i=i-1
        x=smalldiv(temp,q)
        r[0:0]=x
    r=trnctr(r)
    return r
Example #2
0
def bsearch(l,r,p,q):
    temp1=p[:]
    temp2=q[:]
    m=(l+r)/2
    if(isgreater(p,multiply([r],q))):
        return [r]
    elif(isequal(p,multiply([r],q))):
        return [r]
    elif(l-r==1):
        return [l]
    elif(isequal(p,multiply([l],q))):
        return [l]
    elif(isgreater(multiply([l+1],q),p)):
        return [l]
    elif(isequal(multiply([m],q),p)):
        return [m]
    elif(isgreater(multiply([m],q),p)):
        return bsearch(l,m,p,q)
    else:
        return bsearch(m,r,p,q)