-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Right now only tf's dtypes as coefficients are supported. Multivector coefficients could be convenient for example to use dual numbers for automatic differentiation (although this is already possible without them since we are using tensorflow of course).
Possible implementation
- N blades in the algebra
- For each blade, we have a coefficient that is a multivector itself, so an [N, N] tensor.
- Take elementwise geometric product of N multivector-coefficients with the N blades to get a single multivector
ga = tfga.GeometricAlgebra(metric=[0])
# Coefficient 5 + e_0 for all blades
# coefficients.shape: [2, 2]
# [5 + e_0, 5 + e_0]
coefficients = tf.tile(tf.expand_dims(ga.e0 + 5.0 * ga.e(""), axis=0), [ga.num_blades, 1])
# blades.shape: [2, 2]
# [1, e_0]
blades = ga.blade_mvs
# mv = [5 + e_0, 5 + e_0] elementwise geom. prod. [1, e_0] = [5 + e_0, 5 e_0]
# mv.shape: [2, 2]
mv = ga.geom_prod(coefficients, blades)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request