clifford.tools.omoh¶
- clifford.tools.omoh(A: Union[clifford._frame.Frame, List[clifford._multivector.MultiVector]], B: Union[clifford._frame.Frame, List[clifford._multivector.MultiVector]]) → numpy.ndarray[source]¶
Determines homogenization scaling for two
Frame
s related by a RotorThis is used as part of the
orthoFrames2Versor()
algorithm, when the frames are given in CGA. It is required because the model assumes,B = R*A*~R
, but if data is given in the original space, onlylambda*B' == homo(B)
is observable.We need to determine lambda before the Cartan-based algorithm can be used. The name of this function is the reverse of
homo()
, which is the method used to homogenize.- Parameters
A (list of vectors, or clifford.Frame) – the set of vectors before the transform
B (list of vectors, or clifford.Frame) – the set of vectors after the transform, and homogenzation. ie
B=B/(B|einf)
- Returns
out – weights on B, which produce inhomogenous versions of B. If you multiply the input B by lam, it will fulfill B = R*A*~R
- Return type
array of floats
Examples
>>> lam = omoh(A, B) >>> B_ohom = Frame([B[k]*lam[k] for k in range(len(B)])