# SPAM errors

One of the celebrated features of RB is its independence of SPAM errors. In simple terms, it does not matter if your initial state and final measurement are not perfect, the protocol will provide the same average gate fidelity as in the ideal case.

Unfortunately, for non Clifford gate sets by default the protocol is not independent of SPAM errors. It actually matters if your initial state is the ideal or not. To address this issue, we found a relation that solves this at the cost of needing more survival probabilities and thus, more samples.

ConvolutionHyper.longlongexperiment_xzMethod
longlongexperiment_xz(basefilename::String, interval::StepRange, error::Error)

Computes a list of overlaps storing the result in files with common name basefilename. Moreover, it outputs the theoretical eigenvalues (the values we want to estimate by fitting), and the theoretical AGF. Note this also uses a random state to verify the SPAM-free error formulas from the manuscript.

Examples

julia> error = Error(ConvolutionHyper.diagerror, ConvolutionHyper.overrotation, .9999, .99)
julia> longlongexperiment_xz("unique005_1to20_diag9999rot99_", 1:1:100,error)
source
ConvolutionHyper.longlongexperiment_xzMethod
longlongexperiment_xz(basefilename::String, fidelity::Float64, interval::StepRange, error::Error)

Computes a list of overlaps storing the result in files with common name basefilename. Moreover, it outputs the theoretical eigenvalues (the values we want to estimate by fitting), and the theoretical AGF. Note it uses the state 0 depolarized by fidelity.

Examples

julia> error = Error(ConvolutionHyper.diagerror, ConvolutionHyper.overrotation, .9999, .99)
julia> longlongexperiment_xz("unique005_1to20_diag9999rot99_", .99999, 1:1:100,error)
source