Fixed
- Remove `CartesianTensor._rtp`. Instead recompute the `ReducedTensorProduct` everytime. The user can save the `ReducedTensorProduct` to avoid creating it each time.
- `*equivariance_error` no longer keeps around unneeded autograd graphs
- `CartesianTensor` builds `ReducedTensorProduct` with correct device/dtype when called without one
Added
- Created module for reflected imports allowing for nice syntax for creating `irreps`, e.g. `from e3nn.o3.irreps import l3o same as Irreps("o3")`
- Add `uvu<v` mode for `TensorProduct`. Compute only the upper triangular part of the `uv` terms.
- (beta) `TensorSquare`. computes `x \otimes x` and decompose it.
- `*equivariance_error` now tell you which arguments had which error
Changed
- Give up the support of python 3.6, set `python_requires='>=3.7'` in setup
- Optimize a little bit `ReducedTensorProduct`: solve linear system only once per irrep instead of 2L+1 times.
- Do not scale line width by `path_weight` in `TensorProduct.visualize`
- `*equivariance_error` now transforms its inputs in float64 by default, regardless of the dtype used for the calculation itself