# -----------------------------------------------------------------------------# This file was autogenerated by symforce from template:# ops/CLASS/lie_group_ops.py.jinja# Do NOT modify by hand.# -----------------------------------------------------------------------------# ruff: noqa: PLR0915, F401, PLW0211, PLR0914importmathimporttypingasTimportnumpyimportsym
[docs]classLieGroupOps(object):""" Python LieGroupOps implementation for :py:class:`symforce.geo.rot2.Rot2`. """
[docs]@staticmethoddeffrom_tangent(vec,epsilon):# type: (numpy.ndarray, float) -> sym.Rot2# Total ops: 2# Input arraysifvec.shape==(1,):vec=vec.reshape((1,1))elifvec.shape!=(1,1):raiseIndexError("vec is expected to have shape (1, 1) or (1,); instead had shape {}".format(vec.shape))# Intermediate terms (0)# Output terms_res=[0.0]*2_res[0]=math.cos(vec[0,0])_res[1]=math.sin(vec[0,0])returnsym.Rot2.from_storage(_res)
[docs]@staticmethoddefretract(a,vec,epsilon):# type: (sym.Rot2, numpy.ndarray, float) -> sym.Rot2# Total ops: 8# Input arrays_a=a.dataifvec.shape==(1,):vec=vec.reshape((1,1))elifvec.shape!=(1,1):raiseIndexError("vec is expected to have shape (1, 1) or (1,); instead had shape {}".format(vec.shape))# Intermediate terms (2)_tmp0=math.cos(vec[0,0])_tmp1=math.sin(vec[0,0])# Output terms_res=[0.0]*2_res[0]=_a[0]*_tmp0-_a[1]*_tmp1_res[1]=_a[0]*_tmp1+_a[1]*_tmp0returnsym.Rot2.from_storage(_res)