Skip to main content

Aleph - 0.42.0

✨ New Features

  • Quality of life improvements for numerical Pauli strings:
    • Added * overloads for PauliTerm and PauliSum.
    • Can now compute the expectation value langleSrangle\\langle S \\rangle of a PauliSum with a Qbit.
    • The Pauli string of a PauliTerm or PauliSum can now be printed in a more readable format using display.
    • Added a transform_coefficients method for PauliSum that applies a function to each element of the sum.
    • Added adjoint and adjointed methods, which perform the Hermitian conjugate in-place and out-of-place on a PauliSum, respectively.
  • Aleph fermionic operators are now unified under a shared FermionOperator type. Factory functions such as Create, Destroy, Number, TransferSum, PairingSum, QuadraticSum, and the tensor-based fermion operator factories now all return FermionOperator values.
  • Fermionic operators in Aleph now support consistent introspection through name(), sites(), and parameters():
    • name() returns the operator kind as a string.
    • sites() returns the operator sites in definition order.
    • parameters() returns the operator payload when present, such as a parameter list, a rank-4 tensor, or a quadratic sparse matrix.

🛠 Improvements

  • Quadratic fermion helper methods such as get_bdg_matrix() and get_bdg_shift() now work through the shared FermionOperator binding surface.

🐛 Fixes

  • Fixed MPO generation from lattice models and operators in more than one dimension.

⚠️ Breaking Changes

  • Aleph fermionic operator values now report the unified FermionOperator type instead of older binding-specific concrete type names.

🧪 Migration Notes

  • If your code compared fermionic operator type_name() results against older binding-specific names, update those checks to use FermionOperator.
  • If you were inspecting fermionic operators through binding-specific type distinctions, switch to the shared name(), sites(), and parameters() accessors.