Unitaries

Types

QBase.Unitaries — Module

Quantum states evolve under unitary transformations. The Unitaries submodule provides:

  • Types and Constructors for unitary operators.
source
QBase.Unitaries.is_unitary — Function
is_unitary( U :: Matrix ) :: Bool

Returns true if matrix U is unitary. The hermitian adjoint of a unitary matrix is its inverse:

  • U' * U == I where I is the identity matrix.

A unitary matrix must be square. A DomainError is thrown if input U is not square.

source
QBase.Unitaries.AbstractUnitary — Type
AbstractUnitary <: AbstractMatrix{Complex{Float64}}

The abstract type representing unitary operators. An AbstractUnitary cannot be instantiated, it serves as a supertype from which concrete types are derived.

source
QBase.Unitaries.Unitary — Type
Unitary( U :: Matrix ) <: AbstractUnitary

Unitary matrices represent the physical evolution of quantum states. The Constructor, Unitary(U), throws a DomainError if the provided matrix, U is not unitary.

source
QBase.Unitaries.QubitUnitary — Type
QubitUnitary( U :: Matrix ) <: AbstractUnitary

Constructs a 2x2 unitary for qubit evolution. Throws a DomainError if input U is not of dimension 2x2 or if U is not unitary.

source

Constructors

QBase.Unitaries.qubit_rotation — Function
qubit_rotation( θ :: Real; axis="x" :: String ) :: QubitUnitary

Returns a unitary which performs a qubit rotation along bloch sphere. θ designates the angle of rotation and axis ("x", "y", "z") designates the cartesian axis about which the qubit is rotated.

source

Constants

QBase.Unitaries.paulis — Constant
paulis :: Vector{QubitUnitary}

Returns a vector containing the three qubit pauli matrices, [σx, σy, σz].

source
QBase.Unitaries.σx — Constant
σx :: QubitUnitary

Pauli-X unitary:

julia> Unitaries.σx
2×2 QBase.Unitaries.QubitUnitary:
 0.0+0.0im  1.0+0.0im
 1.0+0.0im  0.0+0.0im
source
QBase.Unitaries.σy — Constant
σy :: QubitUnitary

Pauli-Y unitary:

julia> Unitaries.σy
2×2 QBase.Unitaries.QubitUnitary:
 0.0+0.0im  0.0-1.0im
 0.0+1.0im  0.0+0.0im
source
QBase.Unitaries.σz — Constant
σz :: QubitUnitary

Pauli-Z unitary:

julia> Unitaries.σz
2×2 QBase.Unitaries.QubitUnitary:
 1.0+0.0im   0.0+0.0im
 0.0+0.0im  -1.0+0.0im
source