Scotty 0.4.0 Released

Published on August 06, 2019 by Vasily Vasinov

This release focuses on adding new gates, a new StateReader for single qubits that generates Bloch sphere vector coordinates and angles, and a multi-trial abstraction that lets developers run the same circuit many times in parallel. Changes since 0.3.0:

• Remove Scala 2.11 support. Now Scotty only runs on Scala 2.12 and 2.13.
• Add BlochSphereReader that works for any superposition of a single qubit. The reader shows $\phi$ and $\theta$ angles and $x$, $y$, and $z$ coordinates of the qubit superposition on the Bloch sphere.
• Change SuperpositionReader to StateReader that now works with superpositions and collapsed states. This change is mainly about convenience, so developers don’t have to pattern match on circuit results in order to use state readers.
• Drop custom complex number implementation in favor of the Apache Commons Math implementation.
• Add densityMatrix for qubits and outerProduct for superpositions to QuantumContext.
• Add several new gates to completely match the Quil gate set: ISWAP, PSWAP, CPHASE, CPHASE00, CPHASE10, and CPHASE01.
• Add usability helpers to Bit, Qubit, and State abstractions.
• Add a multiple trial abstraction called ExperimentResult that can be used with a new variation of the runAndMeasure method that allows to specify a custom number of experiment trials as well as the level of parallelism. The Scotty simulator uses a ForkJoinPool to run multiple simulations in parallel.

Next version will be focused on (actually) improving simulator performance and adding better DSL abstractions for multi-qubit gates.