bsc-quantic/Qrochet.jl

`Quantum(circ::Quac.Circuit)` fails for `Circuit`s with `SU{N}` gates in it

Closed this issue · 0 comments

Right now, we can not create a Quantum object from a Quac.Circuit if that one contains a SU{N} gate:

julia> using Quac

julia> using Qrochet

julia> n = 4
4

julia> depth = 4
4

julia> circ = Quac.Algorithms.QuantumVolume(n, depth)

julia> qtn = Quantum(circ)
ERROR: MethodError: no method matching Array{ComplexF64, 4}(::SU{2})

Closest candidates are:
  Array{T, N}(::UndefInitializer, ::Tuple{Vararg{Int64, N}}) where {T, N}
   @ Core boot.jl:489
  Array{T, N}(::UndefInitializer, ::Tuple{Vararg{Integer, N}}) where {T, N}
   @ Base baseext.jl:36
  Array{T, N}(::UndefInitializer, Int64...) where {T, N}
   @ Core boot.jl:483
  ...

Stacktrace:
 [1] Array{ComplexF64, 4}(x::Gate{SU{2}, 2})
   @ Quac ~/.julia/packages/Quac/9bB1B/src/Array.jl:40
 [2] Quantum(circuit::Circuit)
   @ QrochetQuacExt ~/git/Qrochet.jl/ext/QrochetQuacExt.jl:24
 [3] top-level scope
   @ REPL[12]:1