From 197778389b7f94b873e63d0a1110a954d0fd5650 Mon Sep 17 00:00:00 2001 From: Roger-luo Date: Thu, 2 May 2019 22:00:43 +0800 Subject: [PATCH 1/3] fix https://github.com/QuantumBFS/Yao.jl/issues/189 --- src/instruct.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/instruct.jl b/src/instruct.jl index 3a3b320d2..85ef04063 100644 --- a/src/instruct.jl +++ b/src/instruct.jl @@ -73,6 +73,7 @@ end YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::NTuple{N, Int}) where N = state YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Int) = state +YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Tuple{Int}) = state # one-qubit instruction YaoBase.instruct!(state::AbstractVecOrMat{T}, g::AbstractMatrix{T}, locs::Tuple{Int}) where T = From 3ce4646643f2329f9bc25b9b87263a2efd75e6dc Mon Sep 17 00:00:00 2001 From: Roger-luo Date: Thu, 2 May 2019 22:08:05 +0800 Subject: [PATCH 2/3] better fix --- src/instruct.jl | 3 +-- test/instruct.jl | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/instruct.jl b/src/instruct.jl index 85ef04063..9043ac6cd 100644 --- a/src/instruct.jl +++ b/src/instruct.jl @@ -73,10 +73,9 @@ end YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::NTuple{N, Int}) where N = state YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Int) = state -YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Tuple{Int}) = state # one-qubit instruction -YaoBase.instruct!(state::AbstractVecOrMat{T}, g::AbstractMatrix{T}, locs::Tuple{Int}) where T = +YaoBase.instruct!(state::AbstractVecOrMat, g::AbstractMatrix, locs::Tuple{Int}) = instruct!(state, g, locs...) function YaoBase.instruct!(state::AbstractVecOrMat{T}, U1::AbstractMatrix{T}, loc::Int) where T diff --git a/test/instruct.jl b/test/instruct.jl index 317b07289..58a249847 100644 --- a/test/instruct.jl +++ b/test/instruct.jl @@ -90,3 +90,8 @@ end ST = randn(ComplexF64, 1 << 2) @test instruct!(copy(ST), Val(:SWAP), (1, 2)) ≈ SWAP * ST end + +@testset "Yao.jl/#189" begin + st = rand(1<<4) + @test instruct!(st, IMatrix{2, Float64}(), 1) == st +end From c2e3574a8b530c432db18302eb52b865c43cbcf4 Mon Sep 17 00:00:00 2001 From: Roger-luo Date: Thu, 2 May 2019 22:10:12 +0800 Subject: [PATCH 3/3] fix test --- src/instruct.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/instruct.jl b/src/instruct.jl index 9043ac6cd..4c238d0f0 100644 --- a/src/instruct.jl +++ b/src/instruct.jl @@ -73,6 +73,7 @@ end YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::NTuple{N, Int}) where N = state YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Int) = state +YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Tuple{Int}) = state # one-qubit instruction YaoBase.instruct!(state::AbstractVecOrMat, g::AbstractMatrix, locs::Tuple{Int}) =