Intrinsics
AddressConflictError <: ExceptionAddress conflict error in Block Construction.
Yao.Intrinsics.IterControl — Type.IterControl{N, C}N is the size of hilber space, C is the number of shifts.
QubitMismatchError <: ExceptionQubit number mismatch error when applying a Block to a Register or concatenating Blocks.
Base.LinAlg.ishermitian — Method.ishermitian(op) -> Boolcheck if this operator is hermitian.
Yao.Intrinsics.basis — Method.basis(num_bit::Int) -> UnitRange{Int}
basis(state::AbstractArray) -> UnitRange{Int}Returns the UnitRange for basis in Hilbert Space of num_bit qubits. If an array is supplied, it will return a basis having the same size with the first diemension of array.
Yao.Intrinsics.batch_normalize — Function.batch_normalizenormalize a batch of vector.
Yao.Intrinsics.batch_normalize! — Function.batch_normalize!(matrix)normalize a batch of vector.
Yao.Intrinsics.bdistance — Method.bdistance(i::DInt, j::DInt) -> IntReturn number of different bits.
Yao.Intrinsics.bit_length — Method.bit_length(x::Int) -> IntReturn the number of bits required to represent input integer x.
Yao.Intrinsics.bitarray — Method.bitarray(v::Vector, [num_bit::Int]) -> BitArray
bitarray(v::Int, num_bit::Int) -> BitArray
bitarray(num_bit::Int) -> FunctionConstruct BitArray from an integer vector, if num_bit not supplied, it is 64. If an integer is supplied, it returns a function mapping a Vector/Int to bitarray.
Yao.Intrinsics.bmask — Function.bmask(ibit::Int...) -> Int
bmask(bits::UnitRange{Int}) ->IntReturn an integer with specific position masked, which is offten used as a mask for binary operations.
Yao.Intrinsics.breflect — Function.breflect(num_bit::Int, b::Int[, masks::Vector{Int}]) -> IntReturn left-right reflected integer.
Yao.Intrinsics.bsizeof — Method.bsizeof(x) -> IntReturn the size of object, in number of bit.
Yao.Intrinsics.controller — Method.controller(cbits, cvals) -> FunctionReturn a function that test whether a basis at cbits takes specific value cvals.
Yao.Intrinsics.cunapply! — Function.control-unitary
Yao.Intrinsics.fidelity_mix — Method.fidelity_mix(m1::Matrix, m2::Matrix)Fidelity for mixed states.
Reference: http://iopscience.iop.org/article/10.1088/1367-2630/aa6a4b/meta
Yao.Intrinsics.fidelity_pure — Method.fidelity for pure states.
Yao.Intrinsics.flip — Method.flip(index::Int, mask::Int) -> IntReturn an Integer with bits at masked position flipped.
Yao.Intrinsics.general_controlled_gates — Method.general_controlled_gates(num_bit::Int, projectors::Vector{Tp}, cbits::Vector{Int}, gates::Vector{AbstractMatrix}, locs::Vector{Int}) -> AbstractMatrixReturn general multi-controlled gates in hilbert space of num_bit qubits,
- projectorsare often chosen as- P0and- P1for inverse-Control and Control at specific position.
- cbitsshould have the same length as- projectors, specifing the controling positions.
- gatesare a list of controlled single qubit gates.
- locsshould have the same length as- gates, specifing the gates positions.
Yao.Intrinsics.hilbertkron — Method.hilbertkron(num_bit::Int, gates::Vector{AbstractMatrix}, locs::Vector{Int}) -> AbstractMatrixReturn general kronecher product form of gates in Hilbert space of num_bit qubits.
- gatesare a list of matrices.
- start_locsshould have the same length as- gates, specifing the gates starting positions.
Yao.Intrinsics.indices_with — Method.indices_with(num_bit::Int, poss::Vector{Int}, vals::Vector{Int}) -> Vector{Int}Return indices with specific positions poss with value vals in a hilbert space of num_bit qubits.
Yao.Intrinsics.isreflexive — Method.isreflexive(op) -> Boolcheck if this operator is reflexive.
Yao.Intrinsics.isunitary — Method.isunitary(op) -> Boolcheck if this operator is a unitary operator.
Yao.Intrinsics.itercontrol — Method.itercontrol(num_bit::Int, poss::Vector{Int}, vals::Vector{Int}) -> IterControlReturn the iterator for basis with poss controlled to values vals, with the total number of bits num_bit.
Yao.Intrinsics.log2i — Function.log2i(x::Integer) -> IntegerReturn log2(x), this integer version of log2 is fast but only valid for number equal to 2^n. Ref: https://stackoverflow.com/questions/21442088
Yao.Intrinsics.neg — Method.neg(index::Int, num_bit::Int) -> IntReturn an integer with all bits flipped (with total number of bit num_bit).
Yao.Intrinsics.onehotvec — Method.onehotvec(::Type{T}, num_bit::Int, x::DInt) -> Vector{T}one-hot wave vector.
Yao.Intrinsics.packbits — Method.packbits(arr::AbstractArray) -> AbstractArraypack bits to integers, usually take a BitArray as input.
Yao.Intrinsics.reordered_basis — Method.Reordered Basis
Yao.Intrinsics.setbit — Method.setbit(index::Int, mask::Int) -> Intset the bit at masked position to 1.
Yao.Intrinsics.swapbits — Method.swapbits(num::Int, mask12::Int) -> IntReturn an integer with bits at i and j flipped.
Yao.Intrinsics.takebit — Method.takebit(index::Int, ibit::Int) -> IntReturn a bit at specific position.
Yao.Intrinsics.testall — Method.testall(index::Int, mask::Int) -> BoolReturn true if all masked position of index is 1.
Yao.Intrinsics.testany — Method.testany(index::Int, mask::Int) -> BoolReturn true if any masked position of index is 1.
Yao.Intrinsics.testval — Method.testval(index::Int, mask::Int, onemask::Int) -> BoolReturn true if values at positions masked by mask with value 1 at positions masked by onemask and 0 otherwise.
Base.sort — Method.sort(t::Tuple; lt=isless, by=identity, rev::Bool=false) -> ::TupleSorts the tuple t.
Base.sortperm — Method.sortperm(t::Tuple; lt=isless, by=identity, rev::Bool=false) -> ::TupleComputes a tuple that contains the permutation required to sort t.
Yao.Intrinsics.autostatic — Method.turn a vector/matrix to static vector/matrix (only if its length <= 256).