def S2(phi): p = math.sqrt(dot(phi.T,phi)) a = phi/p sp2 = math.sin(0.5 * p) sp = math.sin(p) ax = asrl.crossMx(a) px = asrl.crossMx(phi) return eye(3) - (2/p) * sp2 * sp2 * ax + (1/p)*(p - sp)*np.dot(ax,ax)
def S2(phi): p = math.sqrt(dot(phi.T, phi)) a = phi / p sp2 = math.sin(0.5 * p) sp = math.sin(p) ax = asrl.crossMx(a) px = asrl.crossMx(phi) return eye(3) - (2 / p) * sp2 * sp2 * ax + (1 / p) * (p - sp) * np.dot( ax, ax)
def S(phi): p = math.sqrt(dot(phi.T,phi)) a = phi/p sp2 = math.sin(0.5 * p) ax = asrl.crossMx(a) px = asrl.crossMx(phi) c1 = (-2 * sp2 * sp2) / (p * p) c2 = (p - math.sin(p))/(p * p * p) S = eye(3) + c1 * px + c2 * np.dot(px,px) return S
def S(phi): p = math.sqrt(dot(phi.T, phi)) a = phi / p sp2 = math.sin(0.5 * p) ax = asrl.crossMx(a) px = asrl.crossMx(phi) c1 = (-2 * sp2 * sp2) / (p * p) c2 = (p - math.sin(p)) / (p * p * p) S = eye(3) + c1 * px + c2 * np.dot(px, px) return S
def invS2(p): return ( dot(p,p.T) + eye(3) + asrl.crossMx(p) )
def invS(phi): p = math.sqrt(dot(phi.T,phi)) a1 = ( 1 / (p*p) ) * ( 1 - 0.5 * p / math.tan(0.5 * p)) px = asrl.crossMx(phi) return eye(3) + 0.5 * px + a1 * dot(px,px)
def invS2(p): return (dot(p, p.T) + eye(3) + asrl.crossMx(p))
def invS(phi): p = math.sqrt(dot(phi.T, phi)) a1 = (1 / (p * p)) * (1 - 0.5 * p / math.tan(0.5 * p)) px = asrl.crossMx(phi) return eye(3) + 0.5 * px + a1 * dot(px, px)