Skip to content

Releases: Qaqarot/qaqarot

blueqat 0.4.7 - 2021-09-16

16 Sep 07:19
Compare
Choose a tag to compare

New feature

  • Built-in macros.
    • To activate, run import blueqat.macros.
    • draw, margolus, c3z, c4z, c3x, c4x, mcx_gray, mcz_gray, mcrx_gray, mcry_gray, mcrz_gray, mcr_gray, mcu_gray are available.

API Change

  • blueqat.utils.circuit_to_unitary is moved to blueqat.circuit_utils.circuit_to_unitary.

blueqat 0.4.6 - 2021-07-29

29 Jul 08:25
Compare
Choose a tag to compare

New Features

  • Add JSON serializer/deserializer. Refer here.

Destructive Changes

  • Operation.create method is added. All subclasses of Operation class must implement it.
  • Remove circuit-local default backend, move blueqat.circuit.GATE_SET to blueqat.gateset.GATE_SET.
    • Use GATE_SET directly is not recommended. Please use blueqat.gateset.create or blueqat.gateset.get_op_type.
  • u1/u2/u3, cu1/cu2/cu3 gates are completely deleted.

Advanced Notice

blueqat.wq module will be deleted.

blueqat 0.4.5 - 2021-06-22

22 Jun 06:46
Compare
Choose a tag to compare

New features

  • Add the following methods. These methods are equivalent with Circuit.run() with returns="..." arguments, but these are typed.
    • Circuit.statevector() -> np.ndarray
    • Circuit.shots(n: int) -> Counter
    • Circuit.oneshot() -> Tuple[np.ndarray, str]

Blueqat 0.4.4

10 Jun 08:46
Compare
Choose a tag to compare

Release Date

10, Jun. 2021

Debug

  • Repair 1 qubit gate decomposition function
  • Correct gamma factor of U.matrix()

Blueqat 0.4.3

21 May 06:50
Compare
Choose a tag to compare

Release Date

May. 21, 2021

Enhancement

  • Add ryrz_decomposer

Debug

  • Debug wq (Ising model) module
  • Debug phase/cphase gate matrix

How To Install

Update:
Jupyter Notebook: !pip install -U blueqat
Shell: pip install -U blueqat

Install:
Jupyter Notebook: !pip install blueqat
Shell: pip install blueqat

Blueqat 0.4.2

26 Mar 12:00
Compare
Choose a tag to compare

Release Date

Mar. 26, 2021

Changes

U1/U2/U3/CU1/CU2/CU3 gates are deprecated and no longer working.

  • U1(θ) → RZ(θ)
  • U2(φ, λ) → U(π/2, φ, λ, -0.5 * (φ+λ))
  • U3(θ, φ, λ) → U(θ, φ, λ, -0.5 * (φ+λ))
  • CU1(θ) → CR(θ)
  • CU2(φ, λ) → CU(π/2, φ, λ, -0.5 * (φ+λ))
  • CU3(θ, φ, λ) → CU(θ, φ, λ, -0.5 * (φ+λ))

are alternative.

Enhancement

Add U/CU gate and SX/SXDG gate.

U(θ, φ, λ, γ = 0.0) =
e^iγ * array([
[cos(θ/2), -e^iλ sin(θ/2)],
[e^iφ sin(θ/2), e^i(φ+λ) cos(θ/2)]])

SX = array([[1 + 1j, 1 - 1j], [1 - 1j, 1 + 1j]])
SXDG = SX†

CU is controlled-U gate.

How To Install

Update:
Jupyter Notebook: !pip install -U blueqat
Shell: pip install -U blueqat

Install:
Jupyter Notebook: !pip install blueqat
Shell: pip install blueqat

Blueqat 0.4.1

10 Mar 11:39
Compare
Choose a tag to compare

Release Date

Mar. 10, 2021

Enhancement

  • Input initial statevector for numpy and numba backend. #101
vec = Circuit(2).x[0].run()
count = Circuit().x[1].m[:].run(initial=vec, shots=100)
# => count is {"11": 100}

Changed

  • Cache is not stored after running. If caching is required, use circuit.run(save_cache=True).

Debug

  • Correct qgate backend, SWAP gate error.

Blueqat 0.4.0

02 Mar 03:14
Compare
Choose a tag to compare

Release Date

Mar. 2, 2021

Enhancement

  • Make mat1 gate and basic transpiler. It will facilitate circuit optimizations and execution on the real quantum machine
  • Add ZZ gate, this is for trapped-ion based machine's basis gate
  • Update for next version of qgate (thank you, Morino san!)

Debug

  • CCZ gate was not available. Now, it is available.

Blueqat 0.3.18

13 Aug 06:32
Compare
Choose a tag to compare

Release Date

Aug. 13, 2020

Enhancement

  • Add reset operation. This is equivalent with measurement without recording measured result and apply X gate when 1 is measured.

Debug

  • Correct numba's global phase error.

API Change

  • opt module is renamed to wq.

Blueqat 0.3.17

02 Jun 04:18
Compare
Choose a tag to compare

Release Date

June 2, 2020

Enhancement

  • Improve speed for Pauli operator's to_matrix() method
  • Add n_qubits property for Pauli operator term and expr.

Debug

  • Correct pauli.Term.simplify method
  • Solve the problem that constant value of max_n raises exception

Benchmark data for Pauli operator's to_matrix() method

Machine spec:
CPU: AMD Ryzen 7 3800X
Mem: 16GB

Random generated Hamiltonian

Making CSC (sparse) matrix from random generated Hamiltonian.

row: The number of qubits
column: The number of terms
cell: Time (sec.)

Blueqat 0.3.16 (Previous release)

Screenshot_20200602_132935

Blueqat 0.3.17 (This release)

Screenshot_20200602_133045

Compare

Time in v0.3.16 / Time in v0.3.17
Greater than 1: v0.3.17 is faster than v0.3.16
Less than 1: v 0.3.17 is slower than v0.3.16

Screenshot_20200602_133207

For large Hamiltonian, this release is 100 times faster than previous release

LiH Hamiltonian

Compared with OpenFermion's qubit_operator_sparse.
Normally, the number of qubits is 12, but can be add redundant qubit via n_qubits parameter.
Measure 12 qubits to 19 qubits.

Screenshot_20200602_133715
(*1): Due to lack of memory, so many swap out occurred. Blueqat implementation is less memory consumption than OpenFermion.

How to install

New install
pip install blueqat

Update
pip install -U blueqat