Skip to content

Releases: qojulia/SecondQuantizedAlgebra.jl

v0.7.2

22 Jun 21:03

Choose a tag to compare

SecondQuantizedAlgebra v0.7.2

Diff since v0.7.1

Merged pull requests:

  • perf(breaking): the operator types collapsed into one concrete (#187) (@oameye)

v0.7.1

21 Jun 20:40
725b543

Choose a tag to compare

SecondQuantizedAlgebra v0.7.1

Diff since v0.7.0

Merged pull requests:

Closed issues:

  • Cache uses_phys_key as a QTerm field (#141)

v0.7.0

21 Jun 14:09
7b7310d

Choose a tag to compare

SecondQuantizedAlgebra v0.7.0

Diff since v0.6.5

Breaking changes

Fixed

  • Averaging an indexed sum whose coefficient depends on the summation index no longer drops the scope or lets the index dangle outside the Σ. average previously stamped SumIndices/SumNonEqual metadata on the average leaf and emitted coeff * leaf; SymbolicUtils discards metadata on composite/numerically-scaled nodes, so average(Σ(u(kk,k), k)) collapsed to a bare u(kk,k) and an index-dependent coefficient was hoisted outside the sum. Index-dependent terms are now wrapped in a dedicated moment-layer node (SumFunc/sym_sum) carrying the summation scope as a SumScope argument, so the whole averaged body stays inside the sum and the representation survives Add/Mul canonicalization. Because the scope rides as an argument (not metadata, which isequal/hash ignore), differently-scoped sums over the same body no longer wrongly cancel in a subtraction. New is_indexed_sum predicate; has_sum_metadata/get_sum_indices/get_sum_non_equal retained and now read the node (#175).

Changed

  • make_time_dependent on an averaged indexed sum now yields Σ(i) ⟨a_i⟩(t) (per-site time-dependent moments under the sum) instead of ⟨Σ_i a_i⟩(t) (one collective lumped variable), matching the non-lifted display Σ(i) ⟨a_i⟩ and giving indexable per-site unknowns for indexed equations.
  • Operator prefactors are stored as a concrete Coeff with three forms (a native ComplexF64 fast path, a sparse parameter polynomial for products and sums of named parameters, and a Complex{Num} fallback) instead of always Complex{Num}. Numeric and parameter-polynomial coefficient arithmetic stays native and never routes through SymbolicUtils hashconsing; a coefficient lowers to Complex{Num} only at the symbolic boundaries (substitute/average/printing/prefactor). The polynomial arithmetic is fully type-stable, with factor identity via objectid/=== (which assumes SymbolicUtils hashconsing is enabled, the default). Polynomial coefficients are kept in canonical expanded form, so (g+h)^2 is stored as g^2 + 2*g*h + h^2. Measured speedups over Complex{Num}: numeric power expansion about 2.1×, single-mode H^4 about 2.65×, many-mode H^2 about 3.5×, nested commutator about 2.4× (#164, #183).

Merged pull requests:

  • Averaging an indexed sum (#179) (@oameye)
  • fix: point Benchmarks badge to live /benchmark/ dir (#180) (@oameye)
  • build(ci): only run Downstream when changes in src (#181) (@oameye)
  • fix: point Benchmarks badge to live /benchmark/ dir (#182) (@oameye)
  • perf: Native numeric and parameter-polynomial coefficients (#183) (@oameye)

Closed issues:

  • test downstream packages (#16)
  • Indexed sums lose scope at the moment layer: introduce a dedicated sum node (#175)

v0.6.5

20 Jun 19:45
8c66766

Choose a tag to compare

SecondQuantizedAlgebra v0.6.5

Diff since v0.6.4

Merged pull requests:

v0.6.4

16 Jun 13:06
061991d

Choose a tag to compare

SecondQuantizedAlgebra v0.6.4

Diff since v0.6.3

Merged pull requests:

  • fix: change_index now correctly zeros DoubleIndexedVariable (#174) (@oameye)

v0.6.3

16 Jun 10:09
3780093

Choose a tag to compare

SecondQuantizedAlgebra v0.6.3

Diff since v0.6.2

Merged pull requests:

  • fix: Render lifted time-dependent averages as ⟨op⟩(t) (#173) (@oameye)

v0.6.2

14 Jun 09:54
fe7d49c

Choose a tag to compare

SecondQuantizedAlgebra v0.6.2

Diff since v0.6.1

Merged pull requests:

v0.6.1

13 Jun 08:54
e4d0371

Choose a tag to compare

SecondQuantizedAlgebra v0.6.1

Diff since v0.6.0

Merged pull requests:

  • Add order_key: total identity-faithful operator ordering (#169) (@oameye)

v0.6.0

12 Jun 12:10
c34c002

Choose a tag to compare

SecondQuantizedAlgebra v0.6.0

Diff since v0.5.2

Breaking changes

  • Average expressions now use Number as their Symbolics symtype, and the new make_time_dependent helper lifts them into ModelingToolkit-style time-dependent unknowns while preserving average metadata for round-tripping.

Merged pull requests:

v0.5.2

09 Jun 16:01
1d963dc

Choose a tag to compare

SecondQuantizedAlgebra v0.5.2

Diff since v0.5.1

Merged pull requests:

  • perf: for commuting commutators and symbolic rational coefficients (#162) (@oameye)