Skip to main content

Aleph - 0.36.0

🚀 Highlights


✨ New Features

  • Add language server support for formatting Aleph code files (beta).

  • Added logarithmic binning accumulators to statistics support. These can be used to estimate auto correlation times and can be constructor by calling accumulator("logarithmic"). Includes parameters base and initial_depth to set the bin size of each level of the logarithmic accumulation and the initial depth of the levels.

  • MPS and MPO arithmetic operations now support integer, real and complex scalar types.

    • In-place product and division with scalar: mps *= scalar and mps /= scalar, mpo *= scalar and mpo /= scalar.
    • Symmetric scalar multiplication: scalar * mps, scalar * mpo, mps * scalar and mpo* scalar.
    • Division by scalar: mps / scalar and mpo / scalar.
    • Tensors now support in-place element-wise scalar arithmetic operations: +=, -=, *=, /=.
  • Integrated aliased discrete distribution into Aleph which offers O(1) sampling speed as opposed to O(N) from a standard discrete distribution. Can be built using random_distribution("aliased_discrete", ["probabilities" : [...]]).

  • Universal operator identity and zero factories: Identity() and Zero().

  • More fermionic operator transformations have been added:

    • anticommuted : anticommutes two fermionic operators A,BA,B and returns {A,B}BA\{ A , B \} - BA while respecting the canonical commutation relations of f,ff,f^{\dag}. Supported for Create, Destroy, and Number operators.
    • site_canonicalized : orders a a fermionic operator into site canonical order k(fk)mk(fk)nk\prod_k (f^{\dag}_k)^{m_k} (f_k)^{n_k} with mk,nk{0,1}m_k,n_k \in \{ 0,1 \}.
    • canonicalize : orders a site-canonical product into complete canonical order kfklfl\prod_k f^{\dag}_{k} \prod_l f_l.
  • Added a size() method to OperatorProducts to enable easier for looping over terms.


🐛 Fixes

  • Fixed an error that prevented creating or writing HDF5 files in subfolders.

⚙️ Internal / Technical Changes

  • Aleph now uses the Xoshiro256 algorithm as the default random number generator as opposed to Mersenne Twister. Xoshiro offers generally superior performance in terms of both time and space requirements.

⚠️ Breaking Changes

  • Removed ID and FermiId in favor of the unified Identity() operator factory. Use Identity() for universal identity operators across all operator types.