Код: Выделить всё
def test(Xa,Xb,Xc,Xd,Ya,Yb,Yc,Yd):
Xb1=(Xa+Xb)/2
XX=(Xb+Xc)/2
Xc2=(Xc+Xd)/2
Xc1=(Xb1+XX)/2
Xb2=(XX+Xc2)/2
Xd1a2=(Xc1+Xb2)/2
Yb1=(Ya+Yb)/2
YY=(Yb+Yc)/2
Yc2=(Yc+Yd)/2
Yc1=(Yb1+YY)/2
Yb2=(YY+Yc2)/2
Yd1a2=(Yc1+Yb2)/2
return XX,YY
def test1(ax,bx,cx,dx,ay,by,cy,dy,t):
x = ax*t**3 + bx*t*t + cx*t + dx
y = ay*t**3 + by*t*t + cy*t + dy
return x,y
def test2(ax,bx,cx,dx,ay,by,cy,dy,t):
x = ((ax*t+ bx)*t +cx)*t+dx
y = ((ay*t+by)*t+cy)*t+dy
return x,y
import random
ax,bx,cx,dx,ay,by,cy,dy = [random.random()*1000 for i in range(8)]
if __name__=='__main__':
from timeit import Timer
t = Timer("test(ax,bx,cx,dx,ay,by,cy,dy)", "from __main__ import test, ax,bx,cx,dx,ay,by,cy,dy")
f = t.timeit(number=100000)
print "%s sec for 100 000 pass = %s ns for each pass" % (f,1000000*f/100000)
t = Timer("test1(ax,bx,cx,dx,ay,by,cy,dy,.5)", "from __main__ import test1,ax,bx,cx,dx,ay,by,cy,dy")
f = t.timeit(number=100000)
print "%s sec for 100 000 pass = %s ns for each pass" % (f,1000000*f/100000)
t = Timer("test2(ax,bx,cx,dx,ay,by,cy,dy,.5)", "from __main__ import test2,ax,bx,cx,dx,ay,by,cy,dy")
f = t.timeit(number=100000)
print "%s sec for 100 000 pass = %s ns for each pass" % (f,1000000*f/100000)