Module: cirq_rigetti.quil_input

Classes

class CPHASE00: Cirq equivalent to Quil CPHASE00.

class CPHASE01: Cirq equivalent to Quil CPHASE01.

class CPHASE10: Cirq equivalent to Quil CPHASE10.

class PSWAP: Cirq equivalent to Quil PSWAP.

class UndefinedQuilGate: Error for a undefined Quil Gate.

class UnsupportedQuilInstruction: Error for a unsupported instruction.

Functions

CCNOT(...): The Tofolli gate, also known as the Controlled-Controlled-X gate.

CNOT(...): The controlled NOT gate.

CSWAP(...): The Controlled Swap gate, also known as the Fredkin gate.

CZ(...): The controlled Z gate.

H(...): The Hadamard gate.

I(...): The one qubit identity gate.

ISWAP(...): The iswap gate.

S(...): The Clifford S gate.

SWAP(...): The swap gate.

T(...): The non-Clifford T gate.

X(...): The Pauli X gate.

Y(...): The Pauli Y gate.

Z(...): The Pauli Z gate.

circuit_from_quil(...): Convert a Quil program to a Cirq Circuit.

defgate_to_cirq(...): Convert a Quil DefGate to a Cirq Gate class.

get_defined_gates(...): Get the gate definitions for the program.

kraus_noise_model_to_cirq(...): Construct a Cirq noise model from the provided Kraus operators.

quil_expression_to_sympy(...): Convert a quil expression to a Sympy expression.

remove_gate_from_kraus(...): Recover the kraus operators from a kraus composed with a gate.

Type Aliases

ParameterDesignator

QubitDesignator

PARAMETRIC_TRANSFORMERS

{
 'CPHASE': <function <lambda>>,
 'CPHASE00': <function <lambda>>,
 'CPHASE01': <function <lambda>>,
 'CPHASE10': <function <lambda>>,
 'FSIM': <function <lambda>>,
 'PHASE': <function <lambda>>,
 'PHASEDFSIM': <function <lambda>>,
 'PSWAP': <function <lambda>>,
 'RX': <function <lambda>>,
 'RXX': <function <lambda>>,
 'RY': <function <lambda>>,
 'RYY': <function <lambda>>,
 'RZ': <function <lambda>>,
 'RZZ': <function <lambda>>,
 'XY': <function <lambda>>
}

PRAGMA_ERROR ('\n' 'Please remove PRAGMAs from your Quil program.\n' 'If you would like to add noise, do so after conversion.\n')
RESET_ERROR ('\n' 'Please remove RESETs from your Quil program.\n' 'RESET directives have special meaning on QCS, to enable active reset.\n')
SUPPORTED_GATES

{
 'CCNOT': cirq.TOFFOLI,
 'CNOT': cirq.CNOT,
 'CPHASE': <class 'cirq.ops.common_gates.CZPowGate'>,
 'CPHASE00': <class 'cirq_rigetti.quil_input.CPHASE00'>,
 'CPHASE01': <class 'cirq_rigetti.quil_input.CPHASE01'>,
 'CPHASE10': <class 'cirq_rigetti.quil_input.CPHASE10'>,
 'CSWAP': cirq.FREDKIN,
 'CZ': cirq.CZ,
 'FSIM': <class 'cirq.ops.fsim_gate.FSimGate'>,
 'H': cirq.H,
 'I': cirq.I,
 'ISWAP': cirq.ISWAP,
 'PHASE': <class 'cirq.ops.common_gates.ZPowGate'>,
 'PHASEDFSIM': <class 'cirq.ops.fsim_gate.PhasedFSimGate'>,
 'PSWAP': <class 'cirq_rigetti.quil_input.PSWAP'>,
 'RX': <class 'cirq.ops.common_gates.XPowGate'>,
 'RXX': <class 'cirq.ops.parity_gates.XXPowGate'>,
 'RY': <class 'cirq.ops.common_gates.YPowGate'>,
 'RYY': <class 'cirq.ops.parity_gates.YYPowGate'>,
 'RZ': <class 'cirq.ops.common_gates.ZPowGate'>,
 'RZZ': <class 'cirq.ops.parity_gates.ZZPowGate'>,
 'S': cirq.S,
 'SWAP': cirq.SWAP,
 'T': cirq.T,
 'X': cirq.X,
 'XY': <class 'cirq.ops.swap_gates.ISwapPowGate'>,
 'Y': cirq.Y,
 'Z': cirq.Z
}