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 parametersbaseandinitial_depthto 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,realandcomplexscalar types.- In-place product and division with scalar:
mps *= scalarandmps /= scalar,mpo *= scalarandmpo /= scalar. - Symmetric scalar multiplication:
scalar * mps,scalar * mpo,mps * scalarandmpo* scalar. - Division by scalar:
mps / scalarandmpo / scalar. - Tensors now support in-place element-wise scalar arithmetic operations:
+=,-=,*=,/=.
- In-place product and division with scalar:
-
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()andZero(). -
More fermionic operator transformations have been added:
anticommuted: anticommutes two fermionic operators and returns while respecting the canonical commutation relations of . Supported forCreate,Destroy, andNumberoperators.site_canonicalized: orders a a fermionic operator into site canonical order with .canonicalize: orders a site-canonical product into complete canonical order .
-
Added a
size()method toOperatorProducts to enable easier for looping over terms.
🐛 Fixes
- Fixed an error that prevented creating or writing HDF5 files in subfolders.
⚙️ Internal / Technical Changes
Alephnow 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
IDandFermiIdin favor of the unifiedIdentity()operator factory. UseIdentity()for universal identity operators across all operator types.