ApplyWithCA operation

Given two operations, applies one as conjugated with the other.

Given two operations, respectively described by unitary operators $U$ and $V$, applies them in the sequence $U^{\dagger} V U$. That is, this operation implements the unitary operator given by $V$ conjugated with $U$.

operation ApplyWithCA (outerOperation : ('T => Unit is Adj), innerOperation : ('T => Unit is Adj + Ctl), target : 'T) : Unit
Functors
Adjoint Controlled

Type Parameters

'T

The target on which each of the inner and outer operations act.

Input

outerOperation

The operation $U$ that should be used to conjugate $V$. Note that the outer operation $U$ needs to be adjointable, but does not need to be controllable.

Functors
Adjoint

Input: 'T

Output: Unit

innerOperation

The operation $V$ being conjugated.

Functors
Adjoint Controlled

Input: 'T

Output: Unit

target
'T

The input to be provided to the outer and inner operations.

Output

Unit

Remarks

The outer operation is always assumed to be adjointable, but does not need to be controllable in order for the combined operation to be controllable.

See also

  • applywith
  • applywitha
  • applywithc