Changelog

The different kinds of changes may have varying impact on existing workflows.

(BUG)

Bugfix, may impact existing functionality.

(CHANGE)

Modified behaviour, does impact existing functionality.

(IMPROVED)

Improvement, does not impact existing functionality.

(NEW)

Newly added feature.

v1.1.0b1

  • Removed __iadd__, __isub__, __imul__ for Complex type due to unintended effects. (BUG)

  • Removed excessive use of deepcopy when implementing the transformations and specified what needs to be copied whenever necessary. May save up to 35% in runtime. (IMPROVED)

  • Implemented __iadd__, __isub__ and __imul__ for LinearComb to again avoid unnecessary use of deepcopy. Also adapted other code parts to make use of these changes. (IMPROVED)

v1.0.0b2

  • Fixed mistake declaring any template read from file in CompressedBasis.getTemplates as a total derivative even if stored otherwise. (BUG)

  • Added a missing simplify in constructDreps, which is needed when building the representation matrices from operators that involve total derivatives or left-acting covariant derivatives. (BUG)

  • Added support for slice being used for specifying indices of Matrix. (IMPROVED)

v1.0.0b1

  • Now a call to findMinBases actually returns the promised linearly independent LinearComb and not just their string-representations. (BUG)

  • Began thoroughly testing of Complex type beyond multiplication:

    • String representation of purely imaginary number was missing the imaginary unit. (BUG)

    • Fixed wrong implementation of __rtruediv__ of type Complex. (BUG)

    • Changed name of Complex.conjugate to comply with Python nomenclature. (CHANGE)

    • abs now supports Complex with rational numbers as long as real and imaginary part sum to a fraction of squares. (IMPROVED)

    • Added @property Complex.real and Complex.imag to be compatible with Python-internal number conventions. (IMPROVED)

  • Changed the way the templates are being stored in CompressedBasis.add to ensure identical ordering within two identical runs. This ensures

    diff -r old/ new/
    

    agrees if old and new are uncompressed bases originating from identical runs. (IMPROVED)

  • Transitioned to built-in Matrix.rank to compute the rank of the matrix formed by the current set of eigenvectors considered, when trying to find a minimal basis in findMinBases. This now allows eigenvectors with rational complex coefficients and no reliance on floating-point precision (or NumPy for that matter). (IMPROVED)

  • Added reps.py submodule to deal with (irreducible) representations more easily:

    • Projection into a representation chosen by characters. (NEW)

    • Working out representation matrices for higher-dimensional irreps. (NEW)

    • Projecting into (some choice of) rows of higher-dimensional irreps. (NEW)

v0.9.8

  • Fixed bug when reading fractions from file due to unexpected Python behaviour only allowing string input for integer-valued fractions. (BUG)

v0.9.7

  • Significantly improved performance for larger canonical mass-dimensions by keeping track of already used building blocks in overcompleteBasis. (IMPROVED)