Minified with pyminify: pyminify –remove-literal-statements vector.py » vectormini.py
from math import acos,atan2,cos,degrees,radians,sin,sqrt,tan def reduce(func,aList): A=aList if A: B=A[0] for C in A[1:]:B=func(B,C) return B return None def rad(degAngle):return radians(degAngle) def deg(radAngle):return degrees(radAngle) def rads(degAngles):return[rad(A)for A in degAngles] def degs(radAngles):return[deg(A)for A in radAngles] def C(degAngle):return cos(rad(degAngle)) def S(degAngle):return sin(rad(degAngle)) def T(degAngle):return tan(rad(degAngle)) def AC(x):return deg(acos(x)) def c2p(x,y):return[r([x,y]),deg(atan2(y,x))] def c2ps(xs,ys):return[c2p(A,B)for(A,B)in(zip(xs,ys))] def p2c(r,th):return[r*C(th),r*S(th)] def p2cs(rs,ths):return[p2c(A,B)for(A,B)in(zip(rs,ths))] I=[1,0,0] J=[0,1,0] K=[0,0,1] def va(a,b):return[A+B for(A,B)in(zip(a,b))] def vs(aList):return reduce(va,aList) def vm(a,n):return[n*A for A in a] def vdist(a,b):return va(b,vm(a,-1)) def r(a):return sqrt(sum([A**2 for A in a])) def u(a):return vm(a,1.0/r(a)) def md2v(m,d):return vm(u(d),m) def cp(a,b): if len(a)==2:return a[0]*b[1]-a[1]*b[0] if len(a)==3:return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]] def dp(a,b):return sum([A*B for(A,B)in(zip(a,b))]) def stp(a,b,c):return dp(a,cp(b,c)) def ang(a,b):return AC(dp(a,b)/(r(a)*r(b))) def axangs(a):return[ang(a,A)for A in((I,J,K))] def comp(a,b):return dp(a,u(b)) def proj(a,b):return vm(u(b),comp(a,b)) def pldist(a,b,c):B=vdist(a,b);A=vdist(b,c);return r(cp(B,A))/r(A) def lldist(p1,d1,p2,d2):return stp(vdist(p1,p2),d1,d2)/r(cp(d1,d2)) def fcsys(rs,Fs,PMs=[[0,0,0]]):A=vs(Fs);B=[cp(C,D)for(C,D)in(zip(rs,Fs))];E=va(vs(B),vs(PMs));return A,E