qartvm 0.9.3 copy "qartvm: ^0.9.3" to clipboard
qartvm: ^0.9.3 copied to clipboard

qartvm (pronounced 'kar-toom') is a Quantum Computing Simulation package for Dart & Flutter

0.9.3 #

Add accessor for output variables.

0.9.2 #

  • Implement "local gates" operating on target/control qubits only (see QMemorySpace._applyLocalGate()).

  • Implement a "joint" measurement mode (see QMemorySpace.measure() and QMemorySpace.read()).

  • Implement QbitAddress as an extension type over int.

  • OpenQASM:

    • Rename ExecutionContext -> StateContext and add StateContext.fork().
    • Implement expression optimization / simplification.
    • Make OpenQASMInterpreter.execute() return a list of InterpreterResult.
  • Shor example finally implemented via OpenQASM code generation!

    • Synthesis: modular exponentiations via precomputed permutations / truth-tables
    • Ripple & QFT: using Ripple-Carry adders or QFT adders

0.9.1 #

Math optimizations:

  • Implement sparse matrices.

OpenQASM update:

  • Add support for external constants (provided at runtime).

Implement Shor algorithm (see example\openqasm\shor_factorization.dart):

  • Usage: dart run shor_factorization.dart "13 * 3"
  • The quantum part is implemented dynamically as a QASM program
  • The classical route is ignored to force quantum evaluation

0.9.0 #

Added OpenQASM 3.0 support:

  • OpenQASMParser: provides an ANTLR4-based parser for OpenQASM 3.0 source code.
  • OpenQASMInterpreter: an asynchronous interpreter to execute OpenQASM 3.0 programs.
    • support for quantum and classical memory spaces.
    • support for complex control flow: if/else, for loops, while loops, break and continue.
    • support for gate and def (subroutines) declarations.
    • included standard gate library (stdgates.inc) with native optimizations for most common gates.
    • supports program observers for step-by-step execution monitoring.
    • extensible IncludeProvider for loading external files.

Other changes:

  • QCircuit: Added ASCII drawer support via QCircuitAsciiDrawer.
  • ComplexMatrix: Performance optimizations for matrix operations.
  • Improved exception handling for quantum circuit operations.

0.0.5 #

qgate_builder.dart (was qgates.dart)

  • Refactored gate builders used when adding a gate to a circuit
    • unitary gates = parallel gates operating on one qubit
    • controlled gates can now be controlled by several qubits

qcircuit.dart

  • Simplify QCircuit APIs to support parallel and controlled gates via a single method.
    • changed hadamard(), pauliX(), ... to accept a single or a set of qubits as input, optionaly controlled by a single or a set of qubits
    • removed parallelHadamard(), controlledHadamard(), parallelPauliX(), controlledPauliX(), ...
  • Added step-by-step execution to facilitate diagnostics during execution.
  • Added the possibility to compile a circuit:
    • successive measurement gates are reduced to a single step measuring several qubits.
    • successive quantum gates are reduced to a single quantum gate obtained by multiplying the gate's matrices together.
    • at the end of the compilation process, the circuit is reduced to a sequence of quantum / measurement gates
    • if there is no measurement gate, it is reduced to a single quantum gate

example

  • Added examples for addition of 2-qubits and 3-qubits values via QFT.

0.0.1 #

  • Initial version.
4
likes
160
points
188
downloads

Documentation

API reference

Publisher

verified publisherd-markey.ovh

Weekly Downloads

qartvm (pronounced 'kar-toom') is a Quantum Computing Simulation package for Dart & Flutter

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

antlr4, meta, squadron

More

Packages that depend on qartvm