This release improves performance in certain cases via better quantum gate decompositions as default `QInterface` implementations in the underlying Qrack library. As a result, certain gates like `add()` and `sub()` become possible to simulate at high width with a stack involving `QPager`, since these methods no longer divert to single "page" `QEngine` implementations.
`CloneEmpty()` has been added to the `QEngine` API, such that internal operations which need to "clone" a simulator peer can do so without a redundant duplication of the original simulator's state vector.
Finally, `QBdt` (for "quantum binary decision trees") has been overhauled. Support for this simulation method is still at the experimental phase, but it can potentially reduce RAM footprint for CPU-based simulation in cases of limited entanglement, at the cost of (for now) greatly increased execution time. (The compression technique of this simulation method is somewhat redundant with Schmidt decomposition, but not entirely, and the two can be used at the same time.)