Unitaries

Types

QBase.UnitariesModule

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

  • Types and Constructors for unitary operators.
source
QBase.Unitaries.is_unitaryFunction
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.AbstractUnitaryType
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.UnitaryType
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.QubitUnitaryType
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_rotationFunction
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.paulisConstant
paulis :: Vector{QubitUnitary}

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

source
QBase.Unitaries.σxConstant
σ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.σyConstant
σ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.σzConstant
σ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