Features
TrajectorySimulator, a Monte-Carlo trajectory simulator for programs with mid-circuit
measurements and resets. It samples pure-state trajectories under JAX, returning the
measurement outcomes alongside the final state;samplestreams trajectories in batches,
data-parallel across the available devices, so the shot count is not bounded by device
memory.computeisjax.jit-traceable (though not differentiable).
(#1861)- A gate angle may be any Quil arithmetic expression over declared memory, so the parametric
programsquilcemits --RX(theta[0]/2 + pi) 0-- simulate without rewriting.
(#1869). Restored from
#1860, where it was errantly dropped during a
rebase (prior to the 4.19.0 release). - The simulators accept an
initial_stateto evolve from, so a circuit can be split in two and
a prefix shared across many runs evolved once instead of once per run.
Fixed
- Tolerant
Circuitequality (and its unhashability, which follows), the split of
Circuit.__post_init__into named coercion and validation steps, and a mypy fix for JAX's
dynamically defined config flags. Restored from
#1860, where it was errantly dropped during a
rebase (prior to the 4.19.0 release). Circuit.to_kraus_mapsno longer truncates the Kraus set.