MultiplyAndAddPhaseByModularInteger operation

Warning

This documentation refers to the Classic QDK, which has been replaced by the Modern QDK.

Please see https://aka.ms/qdk.api for the API documentation for the Modern QDK.

Namespace: Microsoft.Quantum.Arithmetic

Package: Microsoft.Quantum.Standard

The same as MultiplyAndAddByModularInteger, but assumes that the summand encodes integers in QFT basis.

operation MultiplyAndAddPhaseByModularInteger (constMultiplier : Int, modulus : Int, multiplicand : Microsoft.Quantum.Arithmetic.LittleEndian, phaseSummand : Microsoft.Quantum.Arithmetic.PhaseLittleEndian) : Unit is Adj + Ctl

Input

constMultiplier : Int

An integer $a$ by which multiplicand is being multiplied. Must be between 0 and modulus-1, inclusive.

modulus : Int

The modulus $N$ which addition and multiplication is taken with respect to.

multiplicand : LittleEndian

A quantum register representing an unsigned integer whose value, multiplied by constMultiplier, is to be added to each basis state label of summand.

phaseSummand : PhaseLittleEndian

A quantum register representing an unsigned integer to use as the target for this operation.

Output : Unit

Remarks

Assumes that phaseSummand has the highest bit set to 0. Also assumes that the value of phaseSummand is less than $N$.

See Also