diff --git a/benchmark/tune.json b/benchmark/tune.json new file mode 100644 index 000000000..5df4e77be --- /dev/null +++ b/benchmark/tune.json @@ -0,0 +1 @@ +[{"Julia":"1.1.0","BenchmarkTools":"0.2.2"},[["BenchmarkGroup",{"data":{"specialized":["BenchmarkGroup",{"data":{"single qubit":["BenchmarkGroup",{"data":{"Y":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Z":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"S":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Sdag":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"X":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"T":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Tdag":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"multi qubit":["BenchmarkGroup",{"data":{"Y":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Z":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"S":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Sdag":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"X":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"T":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Tdag":["BenchmarkGroup",{"data":{"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"matrices":["BenchmarkGroup",{"data":{"single qubit":["BenchmarkGroup",{"data":{"random":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":192,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":3,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":981,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":993,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":189,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":955,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":982,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":190,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":976,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Array{Complex{Float64},2}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":192,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":985,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":218,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":6,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":988,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":992,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"ordered":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":149,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":973,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":190,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":963,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":984,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":185,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":985,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":994,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"Array{Complex{Float64},2}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":193,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":4,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":980,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":994,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkGroup",{"data":{"9":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":217,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"13":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":6,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"25":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"17":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"5":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":986,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"21":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"1":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"in-contiguous":["BenchmarkGroup",{"data":{"random":["BenchmarkGroup",{"data":{"2":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{4,4},Complex{Float64},2,16}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{4,4},Complex{Float64},2,16}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"3":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"1":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":10,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":10,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":16,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":16,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":120,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"ordered":["BenchmarkGroup",{"data":{"2":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{4,4},Complex{Float64},2,16}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{4,4},Complex{Float64},2,16}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"3":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"1":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":11,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":10,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":16,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":16,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":74,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"contiguous":["BenchmarkGroup",{"data":{"random":["BenchmarkGroup",{"data":{"7":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"9":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"3":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"5":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{32,32},Complex{Float64},2,1024}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{32,32},Complex{Float64},2,1024}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"1":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":993,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":984,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":993,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":993,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":992,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}],"ordered":["BenchmarkGroup",{"data":{"7":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"9":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"3":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{8,8},Complex{Float64},2,64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"5":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SArray{Tuple{32,32},Complex{Float64},2,1024}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{32,32},Complex{Float64},2,1024}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":1,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}],"1":["BenchmarkGroup",{"data":{"Complex{Float64}":["BenchmarkGroup",{"data":{"SArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"SparseMatrixCSC{Complex{Float64},Int64}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":986,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"MArray{Tuple{2,2},Complex{Float64},2,4}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"Array{Complex{Float64},2}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":995,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}],"PermMatrix{Complex{Float64},Int64,Array{Complex{Float64},1},Array{Int64,1}}":["BenchmarkTools.Parameters",{"gctrial":true,"time_tolerance":0.05,"samples":10000,"evals":994,"gcsample":false,"seconds":5.0,"overhead":0.0,"memory_tolerance":0.01}]},"tags":[]}]},"tags":[]}]},"tags":[]}]},"tags":[]}]},"tags":[]}]},"tags":[]}]]] \ No newline at end of file diff --git a/src/instruct.jl b/src/instruct.jl index 04f6f4b94..45880e50e 100644 --- a/src/instruct.jl +++ b/src/instruct.jl @@ -18,6 +18,15 @@ const SPECIALIZATION_LIST = Symbol[:X, :Y, :Z, :S, :T, :Sdag, :Tdag] const Locations{T} = NTuple{N, T} where N const BitConfigs{T} = NTuple{N, T} where N +function YaoBase.instruct!( + state::AbstractVecOrMat{T1}, + operator::AbstractMatrix{T2}, + locs::Tuple{}, + control_locs::NTuple{C, Int}=(), + control_bits::NTuple{C, Int}=()) where {T1, T2, M, C} + return state +end + function YaoBase.instruct!( state::AbstractVecOrMat{T1}, operator::AbstractMatrix{T2}, @@ -44,6 +53,15 @@ function YaoBase.instruct!(state::AbstractVecOrMat{T1}, U1::SDDiagonal{T2}, loc: return instruct!(state, copyto!(similar(U1, T1), U1), loc) end +function YaoBase.instruct!( + state::AbstractVecOrMat{T}, + operator::AbstractMatrix{T}, + locs::Tuple{}, + control_locs::NTuple{C, Int} = (), + control_bits::NTuple{C, Int} = ()) where {T, M, C} + return state +end + function YaoBase.instruct!( state::AbstractVecOrMat{T}, operator::AbstractMatrix{T}, @@ -192,6 +210,9 @@ for (G, FACTOR) in zip([:Z, :S, :T, :Sdag, :Tdag], [:(-1), :(im), :($(exp(im*π/ @eval YaoBase.instruct!(state::AbstractVecOrMat, g::Val{$(QuoteNode(G))}, locs::Tuple{Int}) = instruct!(state, g, locs...) + # no effect (to fix ambiguity) + @eval YaoBase.instruct!(st::AbstractVecOrMat, ::Val{$(QuoteNode(G))}, ::Tuple{}) = st + @eval function YaoBase.instruct!(state::AbstractVecOrMat{T}, ::Val{$(QuoteNode(G))}, locs::Int) where T mask = bmask(locs) step = 1<<(locs-1) diff --git a/test/instruct.jl b/test/instruct.jl index 58a249847..7eeaf4dc9 100644 --- a/test/instruct.jl +++ b/test/instruct.jl @@ -95,3 +95,13 @@ end st = rand(1<<4) @test instruct!(st, IMatrix{2, Float64}(), 1) == st end + +@testset "test empty locs" begin + st = rand(ComplexF64, 1<<4) + pm = pmrand(ComplexF64, 2) + @test instruct!(copy(st), pm, ()) == st + + for G in [:Z, :S, :T, :Sdag, :Tdag] + @test instruct!(copy(st), Val(G), ()) == st + end +end