QuantumBFS / Yao.jl

Extensible, Efficient Quantum Algorithm Design for Humans.
https://yaoquantum.org
Other
910 stars 118 forks source link

Reduce the compiling time of the repeat constructor #500

Closed GiggleLiu closed 3 months ago

GiggleLiu commented 3 months ago

It may feeze the compiler when the circuit size is greater than 100.

julia> using Yao

julia> using Random

julia> @time repeat(100, X, shuffle(1:100))
 91.788021 seconds (37.80 M allocations: 2.590 GiB, 1.08% gc time, 99.99% compilation time)
nqubits: 100
repeat on (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
└─ X