Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/EelcoHoogendoorn/numga
/ types & classes
Types & classes
73 in github.com/EelcoHoogendoorn/numga
⨍
Functions
937
◇
Types & classes
73
↓ 42 callers
Class
NumpyContext
NumpyEinsumOperator is the default operator type Unroled sparse operators would only make sense for large batch sizes, and high dimensional products
numga/backend/numpy/context.py:8
↓ 27 callers
Class
Algebra
Generate algebra by associating bit-patterns of integers with blade patterns This implementation uses vectorized numpy code, and implements the com
numga/algebra/algebra.py:10
↓ 27 callers
Class
SubspaceDispatch
Register methods that dynamically dispatch according to the subspace of a multivector
numga/dynamic_dispatch.py:50
↓ 22 callers
Class
Operator
Multi-Linear symbolic operator
numga/operator/operator.py:11
↓ 11 callers
Class
SparseTensor
numga/operator/sparse_tensor.py:9
↓ 5 callers
Class
MatrixContainer
Plain sparse container type it is not yet bound to a product type knowledge of how to actually multiply is left to Operator classes
numga/examples/ga_sparse.py:48
↓ 4 callers
Class
IndexHelper
numga/multivector/helper.py:11
↓ 3 callers
Class
JaxContext
numga/backend/jax/context.py:8
↓ 3 callers
Class
JaxEinsumOperator
Implement product using JAX einsum. This seems to provide a nice balance between compilation speed and runtime speed, though sparse evaluation seems
numga/backend/jax/operator.py:143
↓ 3 callers
Class
NumpyEinsumOperator
Implement multilinear operator using einsum on dense kernel in numpy This is the best implementation in numpy for small subspaces or unbatched multi
numga/backend/numpy/operator.py:102
↓ 3 callers
Class
TorchEinsumOperator
Implement product using einsum.
numga/backend/torch/operator.py:123
↓ 2 callers
Class
Builder
Coordinate Matrix to be used as a construction helper
numga/examples/ga_sparse.py:30
↓ 2 callers
Class
PythonContext
numga/backend/python/context.py:6
↓ 2 callers
Class
TorchContext
numga/backend/torch/context.py:8
↓ 1 callers
Class
AlgebraDescription
All the boilerplate bookkeeping which is generic to any particular implementation of the algebra's logic
numga/algebra/description.py:37
↓ 1 callers
Class
BoundMatrixOperator
matrix with a specific operator and bound operand subspace given knowledge of what product and subspace we are multiplying with, we can 'write our G
numga/examples/ga_sparse.py:201
↓ 1 callers
Class
ConcreteOperatorFactory
Caches the creation of concrete operator instances from abstract operator instances NOTE: this is more a warehouse than a factory. also, whats the
numga/context.py:17
↓ 1 callers
Class
Conformal
numga/examples/conformal.py:148
↓ 1 callers
Class
Constraint
A simple point-to-point constraint between rigid bodies I can say from experience that more complex joints can be implemented in GA with comparative
numga/examples/physics/core.py:90
↓ 1 callers
Class
InNamespace
numga/subspace/namespaces.py:9
↓ 1 callers
Class
IsNamespace
numga/subspace/namespaces.py:26
↓ 1 callers
Class
MatrixOperator
matrix container bound to an unbound operator
numga/examples/ga_sparse.py:152
↓ 1 callers
Class
MultiVectorFactory
Groups together some convenience functionality to allocate concrete MultiVector types
numga/multivector/factory.py:8
↓ 1 callers
Class
OperatorFactory
Contains constructors for a rich set of geometric linear operators, and acts as a cache of those operators. Note that the operators merely manage t
numga/operator/factory.py:38
↓ 1 callers
Class
RestrictNamespace
numga/multivector/namespaces.py:29
↓ 1 callers
Class
RestrictNamespace
numga/subspace/namespaces.py:64
↓ 1 callers
Class
SelectNamespace
numga/multivector/namespaces.py:11
↓ 1 callers
Class
SelectNamespace
numga/subspace/namespaces.py:43
↓ 1 callers
Class
SetterHelper
Helper objects to extend .at[].set syntax of jax arrays to multivectors and operators
numga/multivector/helper.py:2
↓ 1 callers
Class
SubSpace
Describes a subspace of a full geometric algebra, by means of an array of bit-blades, denoting the blades present in the subspace
numga/subspace/subspace.py:14
↓ 1 callers
Class
SubSpaceFactory
Namespace for subspace constructors, and a place to provide caching / flyweight mechanism
numga/subspace/factory.py:14
Class
AbstractConcreteOperator
Interface to wrap an abstract linear operator, with a concrete implementation in a specific framework Abstract in the sense that this should not be
numga/operator/abstract.py:12
Class
AbstractContainer
numga/examples/ga_sparse.py:17
Class
AbstractContext
Abstract context object; to be overridden by backend specific logic
numga/context.py:55
Class
AbstractMultiVector
Abstract multivector type; To be used as a base class for implementations in specific backends Note that there is essentially no GA-logic in this c
numga/multivector/multivector.py:10
Class
AntiBiVector
numga/multivector/types.py:23
Class
AntiVector
numga/multivector/types.py:15
Class
BiVector
numga/multivector/types.py:19
Class
BiVector
rates are encoded as a bivector
numga/examples/physics/base.py:12
Class
Blade
single grade that squares to a scalar
numga/multivector/types.py:7
Class
Body
numga/examples/physics/core.py:41
Class
BodyBase
numga/examples/physics/base.py:24
Class
ConformalContextMixin
numga/examples/conformal.py:65
Class
ConformalMultiVectorFactory
numga/examples/conformal.py:51
Class
ConformalSubspaceFactory
numga/examples/conformal.py:37
Class
ConstraintBase
Anchors are a pair of points, describing the location of the constraint in the body local frame
numga/examples/physics/base.py:133
Class
DynamicDispatch
Register methods that dynamically dispatch according to static type-like attributes of its arguments This is an abstract base class; specific imple
numga/dynamic_dispatch.py:3
Class
Even
like a motor that does not obey m*~m==1
numga/multivector/types.py:27
Class
FlyweightFactory
numga/flyweight.py:13
Class
FlyweightMixin
numga/flyweight.py:6
Class
JaxDenseOperator
Implement product using plain broadcasting in JAX. This is identical to the approach used for quaternion multiplication in alphafold. The JAX compil
numga/backend/jax/operator.py:111
Class
JaxMultiVector
Concrete realization of abstract type in JAX
numga/backend/jax/multivector.py:9
Class
JaxOperator
numga/backend/jax/operator.py:32
Class
JaxSparseOperator
Unroll a (generally sparse) kernel into computations on individual nonzero entries This will give very good performance in jax in high dimension, d
numga/backend/jax/operator.py:180
Class
Line
Dual to 2-vec; momenta, forques note; questionable to call momenta a line in higher dims, if it cant be factored into the join of two points in gen
numga/examples/physics/base.py:17
Class
Motor
numga/multivector/types.py:31
Class
Motor
Positions/rotation states are encoded as even-graded multivectors
numga/examples/physics/base.py:9
Class
NumpyMultiVector
Concrete realization of abstract type in numpy
numga/backend/numpy/multivector.py:6
Class
NumpyOperator
numga/backend/numpy/operator.py:13
Class
NumpySparseOperator
Unroll a (generally sparse) kernel into computations on individual nonzero entries For small batches or small subspaces, this is unlikely to be the
numga/backend/numpy/operator.py:135
Class
Point
dual to 1-vec. encodes positions
numga/examples/physics/base.py:15
Class
PythonCodegenOperator
quick and dirty python codegen example
numga/backend/python/operator.py:23
Class
PythonMultiVector
Concrete realization of abstract type in JAX
numga/backend/python/multivector.py:6
Class
PythonSparseOperator
Unroll a (generally sparse) kernel into computations on individual nonzero entries
numga/backend/python/operator.py:8
Class
Scalar
numga/multivector/types.py:3
Class
Scalar
numga/examples/physics/base.py:7
Class
Study
numga/multivector/types.py:35
Class
SubSpaceInterface
All functionality that can be implemented with just access to the blades and algebra Note: both the subspace and operator class implement this inter
numga/subspace/base.py:5
Class
TorchDenseOperator
Implement product using plain broadcasting.
numga/backend/torch/operator.py:102
Class
TorchMultiVector
Concrete realization of abstract type in torch
numga/backend/torch/multivector.py:6
Class
TorchOperator
numga/backend/torch/operator.py:13
Class
TorchSparseOperator
Unroll a (generally sparse) kernel into computations on individual nonzero entries
numga/backend/torch/operator.py:147
Class
Vector
numga/multivector/types.py:11