symforce.ops package¶
API for mathematical groups in python with minimal dependencies. Assumes elements have appropriate methods, or for the case of scalar types (ints, floats, sympy.Symbols) assumes that the group is reals under addition.
This is the recommended API for using these concepts, rather than calling directly on a type.
- class ScalarExpr(*args, **kwargs)[source]¶
Bases:
ABC
Metaclass for scalar expressions
symforce.symbolic.DataBuffer
is a subclass ofsf.Expr
but we do not want it to be registered underScalarLieGroupOps
.
- class LieGroupSymClass[source]¶
Bases:
ABC
Metaclass for generated numeric geo classes
We use a metaclass here to avoid having symforce.ops depend on sym, which would make it impossible to generate sym from scratch.
TODO(aaron): SymClassLieGroupOps does the wrong thing for some methods, e.g. storage_D_tangent returns the wrong type. We should also implement this for the cam classes, which aren’t lie groups.
Subpackages¶
- symforce.ops.impl package
- Submodules
- symforce.ops.impl.abstract_storage_ops module
- symforce.ops.impl.abstract_vector_group_ops module
- symforce.ops.impl.abstract_vector_lie_group_ops module
- symforce.ops.impl.array_lie_group_ops module
- symforce.ops.impl.array_storage_ops module
- symforce.ops.impl.class_group_ops module
- symforce.ops.impl.class_lie_group_ops module
- symforce.ops.impl.class_storage_ops module
- symforce.ops.impl.databuffer_storage_ops module
- symforce.ops.impl.dataclass_group_ops module
- symforce.ops.impl.dataclass_lie_group_ops module
- symforce.ops.impl.dataclass_storage_ops module
- symforce.ops.impl.nonetype_lie_group_ops module
- symforce.ops.impl.scalar_lie_group_ops module
- symforce.ops.impl.sequence_group_ops module
- symforce.ops.impl.sequence_lie_group_ops module
- symforce.ops.impl.sequence_storage_ops module
- symforce.ops.impl.sym_class_lie_group_ops module
- symforce.ops.impl.vector_class_lie_group_ops module
- Submodules
- symforce.ops.interfaces package