Skip to content

v0.4.0

Choose a tag to compare

@mariogeiger mariogeiger released this 25 Apr 05:43

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.SegmentedPolynomial module 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.EquivariantPolynomial that contains a cue.SegmentedPolynomial and the cue.Rep of 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_polynomial and cuex.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_cost to flop
  • [Torch/JAX] Rename SegmentedTensorProduct.memory_cost to memory
  • [Torch/JAX] Removed IrrepsArray in favor of RepArray
  • [Torch/JAX] Change folder structure of cuequivariance and cuequivariance-jax. Now the main subfolders are segmented_polynomials and group_theory
  • [Torch/JAX] Deprecate cue.EquivariantTensorProduct in favor of cue.EquivariantPolynomial. The later will have a limited list of features compared to cue.EquivariantTensorProduct. It does not contain change_layout and the methods to move the operands. Please open an issue if you need any of the missing methods.
  • [Torch/JAX] The descriptors return cue.EquivariantPolynomial instead of cue.EquivariantTensorProduct
  • [Torch/JAX] Change cue.SegmentedPolynomial.canonicalize_subscripts behavior 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.FullyConnectedTensorProduct and cuet.FullyConnectedTensorProductConv). Please open an issue if you need this feature.

Fixed

  • [Torch/JAX] cue.SegmentedTensorProduct.sort_indices_for_identical_operands was 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

New Contributors

  • @v0i0 made their first contribution in #97

Full Changelog: v0.3.0...v0.4.0