# ConvolutionHyper.jl

Documentation for ConvolutionHyper.jl

## Trending methods

`ConvolutionHyper.longlongexperiment`

— Method`longlongexperiment(basefilename::String, error::Error, interval::StepRange)`

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. It uses as input states, automatically, state 0 and state +.

**Arguments**

`basefilename`

root of the filename.`error`

gate set. See`compute_gateset`

.`interval`

the values used for the computation.

**Examples**

```
julia> error = Error(ConvolutionHyper.diagerror, ConvolutionHyper.overrotation, .9999, .99)
julia> longlongexperiment("unique005_1to20_diag9999rot99_",error, 1:50:2000)
```

## Structures

`ConvolutionHyper.Error`

— Type`Error`

Structure used to store a gate set. It gets as input two error channels with the respective fidelities. `errorphase`

is the error associated with the diagonal gates, while `errorrot`

corresponds to the powers of the X gate. The fidelities are `fidelityphase`

and `fidelityrot`

.

**Examples**

```
julia> Error(ConvolutionHyper.diagerror, ConvolutionHyper.overrotation, .9999, .99)
```

`ConvolutionHyper.Gate`

— Type`Gate`

Structure used to store a gate set member.

**Fields**

```
- `word` a tuple of three numbres. `(a,b,c)`, where `a` lies between 0 and 2
while `b` and `c` between 0 and 8.
- `errorphase` is a function from matrices to matrices.
- `errorrot` is a function from matrices to matrices.
```

**Examples**

```
julia> error1 = ConvolutionHyper.diagerror(.9999)
julia> error2 = ConvolutionHyper.overrotation(.9999)
julia> Gate((1,2,3), error1, error2)
```

**See also**

## Errors

In this section of the documentation, we showcase the different errors this package has available.

### Matrices

Here we expose the methods used to compute matrices that, when conjugated, are used as error channels.

`ConvolutionHyper.diagerror`

— Method`diagerror(fidelity)`

For a given fidelity value `fidelity`

, returns a matrix corresponding to a phase error.

**Examples**

`julia> diagerror(0.99)`

`ConvolutionHyper.overrotation`

— Function`overrotation(fidelity::Float64)`

For a given fidelity value `fidelity`

, returns a matrix corresponding to a over rotation error. The matrix is random, as it uses a matrix randomly sampled from the Haar ensemble.

**Examples**

`julia> overrotation(0.99)`

## Important functions

Every procedure is a different collections of `rb_step`

call.

`ConvolutionHyper.rb_step`

— Method`rb_step(circuit_length, initial_state, gate_set)`

Elemental step in RB procedures. The computation of an **overlap** $\langle\rho \vert\text{channel}\vert\rho\rangle$.

**Arguments**

`circuit_length`

, integer value corresponding to the depth of the circuit.`initial_state`

, a density matrix.`gate_set`

, a list of`Gate`

structures. In physical terms, a list of channels meant to model some gate implementation.

**Examples**

```
julia> random_paulichannel = paulichannel_byfidelity(0.99)
julia> random_paulichannel(diagm([1.,0,0]))
```

**See also**