Portes

Aquest submòdul proporciona els components necessaris per definir i manipular portes quàntiques per usar-les en circuits quàntics digitals.

Portes simples

Utilitzeu aquests constructors per aplicar operacions estàndard d’un i dos qubits:

Portes controlades

Qualsevol porta bàsica es pot convertir en una porta controlada utilitzant la classe Controlled:

from qilisdk.digital.gates import Controlled, Y

controlled_y = Controlled(0, basic_gate=Y(1))
multiple_controlled_y = Controlled(0, 1, basic_gate=Y(2))

O alternativament, podeu usar el mètode .controlled() sobre qualsevol instància de porta:

from qilisdk.digital.gates import Y

controlled_y = Y(1).controlled(0)
multiple_controlled_y = Y(2).controlled(0, 1)

Portes adjuntes

Podeu crear el conjugat hermític (dagger) d’una porta bé usant la classe Adjoint o bé usant el mètode .adjoint() sobre qualsevol instància de porta:

from qilisdk.digital.gates import Adjoint, Y

adjoint_y = Adjoint(basic_gate=Y(1))
adjoint_y = Y(1).adjoint()

Portes exponencials

Per aplicar una porta com a operador exponencial, useu bé la classe Exponential o bé el mètode .exponential() sobre qualsevol instància de porta:

from qilisdk.digital.gates import Exponential, Y

exp_y = Exponential(basic_gate=Y(1))
exp_y = Y(1).exponential()