v0.4.0
This release introduces some changes to the API, it introduce the class cue.SegmentedPolynomial (and corresponding counterparts) which generalizes the notion of segmented tensor product by allowing to construct non-homogeneous polynomials.
Changelog
Added
- [Torch]
cuet.SegmentedPolynomialmodule giving access to the indexing features of the uniform 1d kernel - [Torch/JAX] Add full support for float16 and bfloat16
- [Torch/JAX] Class
cue.SegmentedOperand - [Torch/JAX] Class
cue.SegmentedPolynomial - [Torch/JAX] Class
cue.EquivariantPolynomialthat contains acue.SegmentedPolynomialand thecue.Repof its inputs and outputs - [Torch/JAX] Add caching for
cue.descriptor.symmetric_contraction - [Torch/JAX] Add caching for
cue.SegmentedTensorProduct.symmetrize_operands - [JAX] ARM config support
- [JAX]
cuex.segmented_polynomialandcuex.equivariant_polynomial - [JAX] Advanced Batching capabilities, each input/output of a segmented polynomial can have multiple axes and any of those can be indexed.
- [JAX] Implementation of the Dead Code Elimination rule for the primitive
cuex.segmented_polynomial
Breaking Changes
- [Torch/JAX] Rename
SegmentedTensorProduct.flop_costtoflop - [Torch/JAX] Rename
SegmentedTensorProduct.memory_costtomemory - [Torch/JAX] Removed
IrrepsArrayin favor ofRepArray - [Torch/JAX] Change folder structure of cuequivariance and cuequivariance-jax. Now the main subfolders are
segmented_polynomialsandgroup_theory - [Torch/JAX] Deprecate
cue.EquivariantTensorProductin favor ofcue.EquivariantPolynomial. The later will have a limited list of features compared tocue.EquivariantTensorProduct. It does not containchange_layoutand the methods to move the operands. Please open an issue if you need any of the missing methods. - [Torch/JAX] The descriptors return
cue.EquivariantPolynomialinstead ofcue.EquivariantTensorProduct - [Torch/JAX] Change
cue.SegmentedPolynomial.canonicalize_subscriptsbehavior for coefficient subscripts. It transposes the coefficients to be ordered the same way as the rest of the subscripts. - [Torch] To reduce the size of the so library, we removed support of math dtype fp32 when using IO dtype fp64 in the case of the fully connected tensor product. (It concerns
cuet.FullyConnectedTensorProductandcuet.FullyConnectedTensorProductConv). Please open an issue if you need this feature.
Fixed
- [Torch/JAX]
cue.SegmentedTensorProduct.sort_indices_for_identical_operandswas silently operating on STP with non scalar coefficient, now it will raise an error to say that this case is not implemented. We should implement it at some point.
List of PRs since last release
- Integrate Release branch into main by @mariogeiger in #92
- rename change log in the doc into release notes by @mariogeiger in #91
- re-design cue/cuex API + DCE rule by @mariogeiger in #87
- Add infos about the cuda packages by @mariogeiger in #93
- [JAX] Advanced batching by @mariogeiger in #94
- [torch] Segmented Polynomial Product by @v0i0 in #97
- Fix some TODOs by @mariogeiger in #98
- Make jvp and transpose to return operand mapping by @mariogeiger in #100
- Fix bug by @mariogeiger in #102
- Check backend version by @mariogeiger in #101
- Update documentation by @mariogeiger in #99
- Make it work with both numpy 1.26.4 and 2.2.4 by @mariogeiger in #103
- convert into np.float64 before using numpy by @mariogeiger in #104
- Update CHANGELOG.md, README.md and index of the documentation by @mariogeiger in #108
New Contributors
Full Changelog: v0.3.0...v0.4.0