Unitaries
Types
QBase.Unitaries — ModuleQuantum states evolve under unitary transformations. The Unitaries submodule provides:
- Types and Constructors for unitary operators.
QBase.Unitaries.is_unitary — Functionis_unitary( U :: Matrix ) :: BoolReturns true if matrix U is unitary. The hermitian adjoint of a unitary matrix is its inverse:
U' * U == IwhereIis the identity matrix.
A unitary matrix must be square. A DomainError is thrown if input U is not square.
QBase.Unitaries.AbstractUnitary — TypeAbstractUnitary <: 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.
QBase.Unitaries.Unitary — TypeUnitary( U :: Matrix ) <: AbstractUnitaryUnitary matrices represent the physical evolution of quantum states. The Constructor, Unitary(U), throws a DomainError if the provided matrix, U is not unitary.
QBase.Unitaries.QubitUnitary — TypeQubitUnitary( U :: Matrix ) <: AbstractUnitaryConstructs a 2x2 unitary for qubit evolution. Throws a DomainError if input U is not of dimension 2x2 or if U is not unitary.
Constructors
QBase.Unitaries.qubit_rotation — Functionqubit_rotation( θ :: Real; axis="x" :: String ) :: QubitUnitaryReturns 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.
QBase.Unitaries.random — Functionrandom( d :: Int64 ) :: UnitaryConstructs a d x d random unitary matrix.
Constants
QBase.Unitaries.paulis — Constantpaulis :: Vector{QubitUnitary}Returns a vector containing the three qubit pauli matrices, [σx, σy, σz].
QBase.Unitaries.σx — Constantσx :: QubitUnitaryPauli-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.0imQBase.Unitaries.σy — Constantσy :: QubitUnitaryPauli-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.0imQBase.Unitaries.σz — Constantσz :: QubitUnitaryPauli-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