/** * IonQ QIS gate matrices. * * All gates are defined as 2×2 unitaries on the computational basis {|0⟩, |1⟩}. * Names match IonQ's native gate set (h, x, y, z, s, si, t, ti, v, vi, rx, ry, rz). */ import { Gate2x2, Gate4x4 } from './statevector.js'; export declare const Id: Gate2x2; export declare const H: Gate2x2; export declare const X: Gate2x2; export declare const Y: Gate2x2; export declare const Z: Gate2x2; export declare const S: Gate2x2; export declare const Si: Gate2x2; export declare const T: Gate2x2; export declare const Ti: Gate2x2; export declare const V: Gate2x2; export declare const Vi: Gate2x2; /** Rotation around X axis by angle θ (radians). */ export declare const Rx: (theta: number) => Gate2x2; /** Rotation around Y axis by angle θ (radians). */ export declare const Ry: (theta: number) => Gate2x2; /** Rotation around Z axis by angle θ (radians). */ export declare const Rz: (theta: number) => Gate2x2; /** Rz(π/2) — phase rotation by a half-turn. Equal to S up to global phase. */ export declare const R2: Gate2x2; /** Rz(π/4) — phase rotation by a quarter-turn. Equal to T up to global phase. */ export declare const R4: Gate2x2; /** Rz(π/8) — phase rotation by an eighth-turn. */ export declare const R8: Gate2x2; /** * U3(θ, φ, λ) — general single-qubit unitary; the basis gate of OpenQASM 2.0. * * ┌ cos(θ/2) −e^(iλ)·sin(θ/2) ┐ * └ e^(iφ)·sin(θ/2) e^(i(φ+λ))·cos(θ/2) ┘ * * Key identities: * U3(π, 0, π) = X U3(π/2, 0, π) = H * U3(θ, 0, 0) = Ry(θ) U3(0, 0, λ) = U1(λ) */ export declare const U3: (theta: number, phi: number, lambda: number) => Gate2x2; /** * U2(φ, λ) = U3(π/2, φ, λ) — equatorial gate. U2(0, π) = H. */ export declare const U2: (phi: number, lambda: number) => Gate2x2; /** * U1(λ) = diag(1, e^(iλ)) — phase gate; equal to Rz(λ) up to global phase. * U1(π/2) = S, U1(π/4) = T, U1(π) = Z. */ export declare const U1: (lambda: number) => Gate2x2; /** * XX(θ) = exp(−iθ/2 · X⊗X) — Ising-XX interaction; IonQ native gate. * XX(π/2) is maximally entangling. XX(0) = I. */ export declare const Xx: (theta: number) => Gate4x4; /** * YY(θ) = exp(−iθ/2 · Y⊗Y) — Ising-YY interaction; IonQ native gate. */ export declare const Yy: (theta: number) => Gate4x4; /** * ZZ(θ) = exp(−iθ/2 · Z⊗Z) — Ising-ZZ interaction; IonQ native gate. * Diagonal: diag(e^(−iθ/2), e^(iθ/2), e^(iθ/2), e^(−iθ/2)). * Identity: ZZ(θ) = CNOT · (I⊗Rz(θ)) · CNOT. */ export declare const Zz: (theta: number) => Gate4x4; /** * XY(θ) — XY interaction gate. * Acts as exp(iθ/2 · (X⊗X + Y⊗Y)/2) in the |01⟩/|10⟩ subspace. * XY(0) = I, XY(π) = iSWAP, XY(π/2) = √iSWAP. */ export declare const Xy: (theta: number) => Gate4x4; /** iSWAP = XY(π): swaps qubits and multiplies by i. */ export declare const ISwap: Gate4x4; /** √iSWAP = XY(π/2): square root of iSWAP. */ export declare const SrSwap: Gate4x4; /** * GPI(φ) = [[0, e^{−iφ}], [e^{iφ}, 0]] — IonQ hardware-native single-qubit gate. * * Key identities: * GPI(0) = X GPI(π/2) = Y * GPI(φ)† = GPI(φ) (Hermitian: self-adjoint and self-inverse, GPI² = I) */ export declare const Gpi: (phi: number) => Gate2x2; /** * GPI2(φ) = (1/√2)[[1, −ie^{−iφ}], [−ie^{iφ}, 1]] — IonQ hardware-native half-rotation. * * Key identities: * GPI2(0) = Rx(π/2) GPI2(π/2) = Ry(π/2) * GPI2(φ)⁻¹ = GPI2(φ+π) GPI2(0)² = X (up to global phase) */ export declare const Gpi2: (phi: number) => Gate2x2; /** * MS(φ₀, φ₁) — Mølmer-Sørensen entangling gate; IonQ's native two-qubit operation. * * MS(0, 0) = XX(π/2) (maximally entangling) * MS(π/2, π/2) = YY(π/2) * MS(φ₀, φ₁)|00⟩ always produces a superposition of |00⟩ and |11⟩ with equal probability. */ export declare const Ms: (phi0: number, phi1: number) => Gate4x4; //# sourceMappingURL=gates.d.ts.map