I noticed that if I wanted to do jacobian after playing around with some matrix math, the output is a <class 'symengine.lib.symengine_wrapper.Add'> and not something like <class 'symforce.geo.matrix.Matrix31'>. To reproduce:
v.squared_norm() will return a scalar type, so it has .diff() defined instead of .jacobian(). To make a vector, you can call geo.V1(v2). Does that help?
I noticed that if I wanted to do jacobian after playing around with some matrix math, the output is a <class 'symengine.lib.symengine_wrapper.Add'> and not something like <class 'symforce.geo.matrix.Matrix31'>. To reproduce:
dv2 will throw an error. Is this by design?