1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#!/usr/bin/python
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "py2geom"))
from py2geom import *
import py2geom
P = Point(1,2)
Q = Point(3,5)
print P, Q, P+Q
print L2(P)
print cross(P,Q)
#print dir(py2geom)
import numpy
ply = numpy.poly1d([1,0,2])
print ply(0.5)
t = numpy.poly1d([1,0])
q,r = ply / t
print q,r
print ply
print q*t + r
print ply
def poly_to_sbasis(p):
sb = SBasis()
s = numpy.poly1d([-1, 1, 0])
while True:
q,r = p / s
#print "r:", r
print "r:", repr(r)
x = Linear(r[0],r[1]+r[0])
sb.append(x)
p = q
print "q:", repr(p), len(list(p))
if len(list(p)) <= 1 and p[0] == 0:
return sb
def sbasis_to_poly(sb):
p = numpy.poly1d([0])
s = numpy.poly1d([-1, 1, 0])
sp = numpy.poly1d([1])
for sbt in sb:
p += sp*(sbt[0]*(numpy.poly1d([-1,1])) + sbt[1]*(numpy.poly1d([1,0])))
sp *= s
return p
trial = numpy.poly1d([1,0,2])
sb = poly_to_sbasis(trial)
print repr(trial),"p2sb:", sb
print "and back again:", repr(sbasis_to_poly(sb))
print repr(sbasis_to_poly(derivative(sb))), repr(trial.deriv())
print "unit tests:"
x = Linear(0,1)
sb = SBasis()
sb.append(x)
print sb
sb = sb*sb
print sb
print sb[0]
print "terms"
for i in range(6):
sb = SBasis()
for j in range(3):
sb.append(Linear(i==2*j,i==2*j+1))
print sb
print sbasis_to_poly(sb)
|