View source on GitHub
|
Cirq is a framework for creating, editing, and invoking quantum circuits.
Modules
contrib module: Functionality that is not part of core supported Cirq apis.
testing module: Utilities for testing code.
Classes
class ABCMetaImplementAnyOneOf: A metaclass extending abc.ABCMeta for defining flexible abstract base classes
class AbstractCircuit: The base class for Circuit-like objects.
class AbstractInitialMapper: Base class for creating custom initial mapping strategies.
class Alignment: Alignment option for combining/zipping two circuits together.
class AmplitudeDampingChannel: Dampen qubit amplitudes through dissipation.
class AnyIntegerPowerGateFamily: GateFamily which accepts instances of a given cirq.EigenGate, raised to integer power.
class AnyUnitaryGateFamily: GateFamily which accepts any N-Qubit unitary gate.
class ApplyChannelArgs: Arguments for efficiently performing a channel.
class ApplyMixtureArgs: Arguments for performing a mixture of unitaries.
class ApplyUnitaryArgs: Arguments for performing an efficient left-multiplication by a unitary.
class ArithmeticGate: A helper gate for implementing reversible classical arithmetic.
class AsymmetricDepolarizingChannel: A channel that depolarizes asymmetrically along different directions.
class AxisAngleDecomposition: Represents a unitary operation as an axis, angle, and global phase.
class BaseDensePauliString: Parent class for cirq.DensePauliString and cirq.MutableDensePauliString.
class BitFlipChannel: Probabilistically flip a qubit from 1 to 0 state or vice versa.
class BitMaskKeyCondition: A multiqubit classical control condition with a bitmask.
class BooleanHamiltonianGate: A gate that represents evolution due to a Hamiltonian from a set of Boolean functions.
class CCNotPowGate: A Toffoli (doubly-controlled-NOT) that can be raised to a power.
class CCXPowGate: A Toffoli (doubly-controlled-NOT) that can be raised to a power.
class CCZPowGate: A doubly-controlled-Z that can be raised to a power.
class CNotPowGate: A gate that applies a controlled power of an X gate.
class CSwapGate: A controlled swap gate. The Fredkin gate.
class CXPowGate: A gate that applies a controlled power of an X gate.
class CZPowGate: A gate that applies a phase to the |11⟩ state of two qubits.
class CZTargetGateset: Target gateset accepting CZ + single qubit rotations + measurement gates.
class Circuit: A mutable list of groups of operations to apply to some qubits.
class CircuitDiagramInfo: Describes how to draw an operation in a circuit diagram.
class CircuitDiagramInfoArgs: A request for information on drawing an operation in a circuit diagram.
class CircuitOperation: An operation that encapsulates a circuit.
class CircuitSampleJob: Describes a sampling task.
class ClassicalDataDictionaryStore: Classical data representing measurements and metadata.
class ClassicalDataStore: Helper class that provides a standard way to create an ABC using inheritance.
class ClassicalDataStoreReader: Helper class that provides a standard way to create an ABC using inheritance.
class ClassicalStateSimulator: A simulator that accepts only gates with classical counterparts.
class ClassicallyControlledOperation: Augments existing operations to be conditionally executed.
class CliffordGate: Clifford rotation for N-qubit.
class CliffordSimulator: An efficient simulator for Clifford circuits.
class CliffordSimulatorStepResult: A StepResult that includes StateVectorMixin methods.
class CliffordState: A state of the Clifford simulation.
class CliffordTableau: Tableau representation of a stabilizer state
class CliffordTableauSimulationState: State and context for an operation acting on a clifford tableau.
class CliffordTrialResult: A base class for trial results.
class Collector: Collects data from a sampler, in parallel, towards some purpose.
class CompilationTargetGateset: Abstract base class to create gatesets that can be used as targets for compilation.
class Concat: Concatenates multiple to a new sweep.
class Condition: A classical control condition that can gate an operation.
class ConstantQubitNoiseModel: Applies noise to each qubit individually at the start of every moment.
class ControlledGate: Augments existing gates to have one or more control qubits.
class ControlledOperation: Augments existing operations to have one or more control qubits.
class DecompositionContext: Stores common configurable options for decomposing composite gates into simpler operations.
class DensePauliString: An immutable string of Paulis, like XIXY, with a coefficient.
class DensityMatrixSimulationState: State and context for an operation acting on a density matrix.
class DensityMatrixSimulator: A simulator for density matrices and noisy quantum circuits.
class DensityMatrixStepResult: A single step in the simulation of the DensityMatrixSimulator.
class DensityMatrixTrialResult: A SimulationTrialResult for DensityMatrixSimulator runs.
class DepolarizingChannel: A channel that depolarizes one or several qubits.
class Device: Hardware constraints for validating circuits.
class DeviceMetadata: Parent type for all device specific metadata classes.
class DiagonalGate: An n qubit gate which acts as phases on computational basis states.
class Duration: A time delta that supports symbols and picosecond accuracy.
class EigenGate: A gate with a known eigendecomposition.
class ExpressionMap: A dictionary with sympy expressions and symbols for keys and sympy symbols for values.
class FSimGate: Fermionic simulation gate.
class FrozenCircuit: An immutable version of the Circuit data structure.
class Gate: An operation type that can be applied to a collection of qubits.
class GateFamily: Wrapper around gate instances/types describing a set of accepted gates.
class GateOperation: An application of a gate to a sequence of qubits.
class Gateset: Gatesets represent a collection of cirq.GateFamily objects.
class GeneralizedAmplitudeDampingChannel: Dampen qubit amplitudes through non ideal dissipation.
class GlobalPhaseGate: An operation type that can be applied to a collection of qubits.
class GreedyQubitManager: Greedy allocator that maximizes/minimizes qubit reuse based on a configurable parameter.
class GridDeviceMetadata: Hardware metadata for homogenous 2d symmetric grid devices.
class GridQid: A qid on a 2d square lattice
class GridQubit: A qubit on a 2d square lattice.
class HPowGate: A Gate that performs a rotation around the X+Z axis of the Bloch sphere.
class HardCodedInitialMapper: Initial Mapper class takes a hard-coded mapping and returns it.
class HasJSONNamespace: An object which prepends a namespace to its JSON cirq_type.
class Heatmap: Distribution of a value in 2D qubit lattice as a color map.
class ISwapPowGate: Rotates the |01⟩ vs |10⟩ subspace of two qubits around its Bloch X-axis.
class IdentityGate: A Gate that perform no operation on qubits.
class InsertStrategy: Indicates preferences on how to add multiple operations to a circuit.
class InterchangeableQubitsGate: Indicates operations should be equal under some qubit permutations.
class JsonResolver: Protocol for json resolver functions passed to read_json.
class KakDecomposition: A convenient description of an arbitrary two-qubit operation.
class KeyCondition: A classical control condition based on a single measurement key.
class KrausChannel: A generic channel that can record the index of its selected operator.
class LineInitialMapper: Places logical qubits in the circuit onto physical qubits on the device.
class LineQid: A qid on a 1d lattice with nearest-neighbor connectivity.
class LineQubit: A qubit on a 1d lattice with nearest-neighbor connectivity.
class LineTopology: A 1D linear topology.
class LinearCombinationOfGates: Represents linear operator defined by a linear combination of gates.
class LinearCombinationOfOperations: Represents operator defined by linear combination of gate operations.
class LinearDict: Represents linear combination of things.
class Linspace: A simple sweep over linearly-spaced values.
class ListSweep: A wrapper around a list of ParamResolvers.
class MSGate: The Mølmer–Sørensen gate, a native two-qubit operation in ion traps.
class MappingManager: Class that manages the mapping from logical to physical qubits.
class MatrixGate: A unitary qubit or qudit gate defined entirely by its numpy matrix.
class MeasurementGate: A gate that measures qubits in the computational basis.
class MeasurementKey: A class representing a Measurement Key.
class MeasurementType: Type of a measurement, whether a measurement or channel.
class MixedUnitaryChannel: A generic mixture that can record the index of its selected operator.
class Moment: A time-slice of operations within a circuit.
class MutableDensePauliString: A mutable string of Paulis, like XIXY, with a coefficient.
class MutablePauliString: Mutable version of cirq.PauliString, used mainly for efficiently mutating pauli strings.
class NamedQid: A qid identified by name.
class NamedQubit: A qubit identified by name.
class NamedTopology: A topology (graph) with a name.
class NoiseModel: Replaces operations and moments with noisy counterparts.
class NoiseModelFromNoiseProperties: Replaces operations and moments with noisy counterparts.
class NoiseProperties: Noise-defining properties for a quantum device.
class OpIdentifier: Identifies an operation by gate and (optionally) target qubits.
class Operation: An effect applied to a collection of qubits.
class ParallelGate: Augments existing gates to be applied on one or more groups of qubits.
class ParallelGateFamily: GateFamily which accepts instances of cirq.ParallelGate and its sub_gate.
class ParamResolver: Resolves parameters to actual values.
class Pauli: Represents the Pauli gates.
class PauliInteractionGate: A CZ conjugated by arbitrary single qubit Cliffords.
class PauliMeasurementGate: A gate that measures a Pauli observable.
class PauliString: Represents a multi-qubit pauli operator or pauli observable.
class PauliStringGateOperation: An effect applied to a collection of qubits.
class PauliStringPhasor: An operation that phases the eigenstates of a Pauli string.
class PauliStringPhasorGate: A gate that phases the eigenstates of a Pauli string.
class PauliSum: Represents operator defined by linear combination of PauliStrings.
class PauliSumCollector: Estimates the energy of a linear combination of Pauli observables.
class PauliSumExponential: Represents an operator defined by the exponential of a PauliSum.
class PeriodicValue: Wrapper for periodic numerical values.
class PhaseDampingChannel: Dampen qubit phase.
class PhaseFlipChannel: Probabilistically flip the sign of the phase of a qubit.
class PhaseGradientGate: Phases all computational basis states proportional to the integer value of the state.
class PhasedFSimGate: General excitation-preserving two-qubit gate.
class PhasedISwapPowGate: Fractional ISWAP conjugated by Z rotations.
class PhasedXPowGate: A gate equivalent to \(Z^{-p} X^t Z^{p}\) (in time order).
class PhasedXZGate: A single qubit gate equivalent to the circuit \(Z^{-a} X^x Z^{a} Z^z\) (in time order).
class PointOptimizationSummary: A description of a local optimization to perform.
class PointOptimizer: Makes circuit improvements focused on a specific location.
class Points: A simple sweep with explicitly supplied values.
class Product: Cartesian product of one or more sweeps.
class ProductOfSums: Represents control values as N OR (sum) clauses, each of which applies to one qubit.
class ProductState: A quantum state that is a tensor product of one qubit states.
class ProjectorString: Mapping of cirq.Qid to measurement values (with a coefficient) representing a projector.
class ProjectorSum: List of mappings representing a sum of projector operators.
class QasmArgs: Formatting Arguments for outputting QASM code.
class QasmOutput: Representation of a circuit in QASM (quantum assembly) format.
class Qid: Identifies a quantum object such as a qubit, qudit, resonator, etc.
class QuantumFourierTransformGate: Switches from the computational basis to the frequency basis.
class QuantumState: A quantum state.
class QuantumStateRepresentation
class QubitOrder: Defines the kronecker product order of qubits.
class QubitPermutationGate: A qubit permutation gate specified by a permutation list.
class RandomGateChannel: Applies a sub gate with some probability.
class ResetChannel: Reset a qubit back to its |0⟩ state.
class Result: The results of multiple executions of a circuit with fixed parameters.
class ResultDict: A Result created from a dict mapping measurement keys to measured values.
class RouteCQC: Transformer class that implements a circuit routing algorithm.
class RoutingSwapTag: A 'cirq.TaggedOperation' tag indicated that the operation is an inserted SWAP.
class Rx: A gate with matrix \(e^{-i X t/2}\) that rotates around the X axis of the Bloch sphere by \(t\).
class Ry: A gate with matrix \(e^{-i Y t/2}\) that rotates around the Y axis of the Bloch sphere by \(t\).
class Rz: A gate with matrix \(e^{-i Z t/2}\) that rotates around the Z axis of the Bloch sphere by \(t\).
class Sampler: Something capable of sampling quantum circuits. Simulator or hardware.
class SerializableByKey: Protocol for objects that can be serialized to a key + context.
class SimpleQubitManager: Allocates a new CleanQubit/BorrowableQubit for every qalloc/qborrow request.
class SimulatesAmplitudes: Simulator that computes final amplitudes of given bitstrings.
class SimulatesExpectationValues: Simulator that computes exact expectation values of observables.
class SimulatesFinalState: Simulator that allows access to the simulator's final state.
class SimulatesIntermediateState: A SimulatesFinalState that simulates a circuit by moments.
class SimulatesIntermediateStateVector: A simulator that accesses its state vector as it does its simulation.
class SimulatesSamples: Simulator that mimics running on quantum hardware.
class SimulationProductState: A container for a Qid-to-SimulationState dictionary.
class SimulationState: State and context for an operation acting on a state tensor.
class SimulationStateBase: An interface for quantum states as targets for operations.
class SimulationTrialResult: Results of a simulation by a SimulatesFinalState.
class SimulationTrialResultBase: A base class for trial results.
class Simulator: A sparse matrix state vector simulator that uses numpy.
class SimulatorBase: A base class for the built-in simulators.
class SingleQubitCliffordGate: Any single qubit Clifford rotation.
class SingleQubitPauliStringGateOperation: An operation to represent single qubit pauli gates applied to a qubit.
class SparseSimulatorStep: A StepResult that includes StateVectorMixin methods.
class SqrtIswapTargetGateset: Target gateset accepting √iSWAP + single qubit rotations + measurement gates.
class StabilizerChFormSimulationState: Wrapper around a stabilizer state in CH form for the act_on protocol.
class StabilizerSampler: An efficient sampler for stabilizer circuits.
class StabilizerSimulationState: Abstract wrapper around a stabilizer state for the act_on protocol.
class StabilizerState: Interface for quantum stabilizer state representations.
class StabilizerStateChForm: A representation of stabilizer states using the CH form,
class StatePreparationChannel: A channel which prepares any state provided as the state vector on it's target qubits.
class StateVectorMixin: A mixin that provide methods for objects that have a state vector.
class StateVectorSimulationState: State and context for an operation acting on a state vector.
class StateVectorStepResult: A base class for step results.
class StateVectorTrialResult: A SimulationTrialResult that includes the StateVectorMixin methods.
class StepResult: Results of a step of a SimulatesIntermediateState.
class StepResultBase: A base class for step results.
class SumOfProducts: Represents control values as AND (product) clauses, each of which applies to all N qubits.
class SuperconductingQubitsNoiseProperties: Noise-defining properties for a superconducting-qubit-based device.
class SupportsActOn: An object that explicitly specifies how to act on simulator states.
class SupportsActOnQubits: An object that explicitly specifies how to act on specific qubits.
class SupportsApplyChannel: An object that can efficiently implement a channel.
class SupportsApplyMixture: An object that can efficiently implement a mixture.
class SupportsApproximateEquality: Object which can be compared approximately.
class SupportsCircuitDiagramInfo: A diagrammable operation on qubits.
class SupportsCommutes: An object that can determine commutation relationships vs others.
class SupportsConsistentApplyUnitary: An object that can be efficiently left-multiplied into tensors.
class SupportsControlKey: An object that is a has a classical control key or keys.
class SupportsDecompose: An object that can be decomposed into simpler operations.
class SupportsDecomposeWithQubits: An object that can be decomposed into operations on given qubits.
class SupportsEqualUpToGlobalPhase: Object which can be compared for equality mod global phase.
class SupportsExplicitHasUnitary: An object that explicitly specifies whether it has a unitary effect.
class SupportsExplicitNumQubits: A unitary, channel, mixture or other object that operates on a known number of qubits.
class SupportsExplicitQidShape: A unitary, channel, mixture or other object that operates on a known number qubits/qudits/qids, each with a specific number of quantum levels.
class SupportsJSON: An object that can be turned into JSON dictionaries.
class SupportsKraus: An object that may be describable as a quantum channel.
class SupportsMeasurementKey: An object that is a measurement and has a measurement key or keys.
class SupportsMixture: An object that decomposes into a probability distribution of unitaries.
class SupportsParameterization: An object that can be parameterized by Symbols and resolved
class SupportsPauliExpansion: An object that knows its expansion in the Pauli basis.
class SupportsPhase: An effect that can be phased around the Z axis of target qubits.
class SupportsQasm: An object that can be turned into QASM code.
class SupportsQasmWithArgs: An object that can be turned into QASM code.
class SupportsQasmWithArgsAndQubits: An object that can be turned into QASM code if it knows its qubits.
class SupportsTraceDistanceBound: An effect with known bounds on how easy it is to detect.
class SupportsUnitary: An object that may be describable by a unitary matrix.
class SwapPowGate: The SWAP gate, possibly raised to a power. Exchanges qubits.
class Sweep: A sweep is an iterator over ParamResolvers.
class SympyCondition: A classical control condition based on a sympy expression.
class TRANSFORMER: Protocol class defining the Transformer API for circuit transformers in Cirq.
class TaggedOperation: Operation annotated with a set of tags.
class TensoredConfusionMatrices: Store and use confusion matrices for readout error mitigation on sets of qubits.
class TextDiagramDrawer: A utility class for creating simple text diagrams.
class ThreeQubitDiagonalGate: A three qubit gate whose unitary is given by a diagonal \(8 \times 8\) matrix.
class TiltedSquareLattice: A grid lattice rotated 45-degrees.
class Timestamp: A location in time with picosecond accuracy.
class TransformerContext: Stores common configurable options for transformers.
class TransformerLogger: Base Class for transformer logging infrastructure. Defaults to text-based logging.
class TwoQubitCompilationTargetGateset: Abstract base class to create two-qubit target gatesets.
class TwoQubitDiagonalGate: A two qubit gate whose unitary is a diagonal \(4 \times 4\) matrix.
class TwoQubitGateTabulation: A 2-qubit gate compiler based on precomputing/tabulating gate products.
class TwoQubitGateTabulationResult: Represents a compilation of a target 2-qubit with respect to a base gate.
class TwoQubitInteractionHeatmap: Visualizing interactions between neighboring qubits on a 2D grid.
class UniformSuperpositionGate: Creates a uniform superposition state on the states \([0, M)\) The gate creates the state \(\frac{1}{\sqrt{M} }\sum_{j=0}^{M-1}\ket{j}\) (where \(1\leq M \leq 2^n\)), using n qubits, according to the Shukla-Vedula algorithm [SV24].
class VirtualTag: A cirq.TaggedOperation tag indicating that the operation is virtual.
class WaitGate: An idle gate that represents waiting.
class XPowGate: A gate that rotates around the X axis of the Bloch sphere.
class XXPowGate: The X-parity gate, possibly raised to a power.
class YPowGate: A gate that rotates around the Y axis of the Bloch sphere.
class YYPowGate: The Y-parity gate, possibly raised to a power.
class ZPowGate: A gate that rotates around the Z axis of the Bloch sphere.
class ZZPowGate: The Z-parity gate, possibly raised to a power.
class ZerosSampler: A mock sampler for testing. Immediately returns zeroes.
class Zip: Zip product (direct sum) of one or more sweeps.
class ZipLongest: Iterate over constituent sweeps in parallel
Functions
CCNOT(...): The Tofolli gate, also known as the Controlled-Controlled-X gate.
CCX(...): The Tofolli gate, also known as the Controlled-Controlled-X gate.
CCZ(...): The Controlled-Controlled-Z gate.
CNOT(...): The controlled NOT gate.
CSWAP(...): The Controlled Swap gate, also known as the Fredkin gate.
CX(...): The controlled NOT gate.
CXSWAP(...): Clifford rotation for N-qubit.
CZ(...): The controlled Z gate.
CZSWAP(...): Clifford rotation for N-qubit.
FREDKIN(...): The Controlled Swap gate, also known as the Fredkin gate.
H(...): The Hadamard gate.
I(...): The one qubit identity gate.
ISWAP(...): The iswap gate.
ISWAP_INV(...): The inverse of the iswap gate.
KET_IMAG(...): The |i⟩ State
KET_MINUS(...): The |-⟩ State
KET_MINUS_IMAG(...): The |-i⟩ State
KET_ONE(...): The |1⟩ State
KET_PLUS(...): The |+⟩ State
KET_ZERO(...): The |0⟩ State
M(...): Returns a single MeasurementGate applied to all the given qubits.
R(...): Returns a cirq.ResetChannel on the given qubit.
S(...): The Clifford S gate.
SQRT_ISWAP(...): The square root of iswap gate.
SQRT_ISWAP_INV(...): The inverse square root of iswap gate.
SWAP(...): The swap gate.
T(...): The non-Clifford T gate.
TOFFOLI(...): The Tofolli gate, also known as the Controlled-Controlled-X gate.
X(...): The Pauli X gate.
XX(...): The tensor product of two X gates.
Y(...): The Pauli Y gate.
YY(...): The tensor product of two Y gates.
Z(...): The Pauli Z gate.
ZZ(...): The tensor product of two Z gates.
act_on(...): Applies an action to a state argument.
add_dynamical_decoupling(...): Adds dynamical decoupling gate operations to a given circuit.
align_left(...): Aligns gates to the left of the circuit.
align_right(...): Aligns gates to the right of the circuit.
all_near_zero(...): Checks if the tensor's elements are all near zero.
all_near_zero_mod(...): Checks if the tensor's elements are all near multiples of the period.
allclose_up_to_global_phase(...): Determines if a ~= b * exp(i t) for some t.
alternative(...): A decorator indicating an abstract method with an alternative default implementation.
amplitude_damp(...): Returns an AmplitudeDampingChannel with the given probability gamma.
apply_channel(...): High performance evolution under a channel evolution.
apply_matrix_to_slices(...): Left-multiplies an NxN matrix onto N slices of a numpy array.
apply_mixture(...): High performance evolution under a mixture of unitaries evolution.
apply_unitaries(...): Apply a series of unitaries onto a state tensor.
apply_unitary(...): High performance left-multiplication of a unitary effect onto a tensor.
approx_eq(...): Approximately compares two objects.
asymmetric_depolarize(...): Returns an AsymmetricDepolarizingChannel with the given parameters.
axis_angle(...): Decomposes a single-qubit unitary into axis, angle, and global phase.
bidiagonalize_real_matrix_pair_with_symmetric_products(...): Finds orthogonal matrices that diagonalize both mat1 and mat2.
bidiagonalize_unitary_with_special_orthogonals(...): Finds orthogonal matrices L, R such that L @ matrix @ R is diagonal.
big_endian_bits_to_int(...): Returns the big-endian integer specified by the given bits.
big_endian_digits_to_int(...): Returns the big-endian integer specified by the given digits and base.
big_endian_int_to_bits(...): Returns the big-endian bits of an integer.
big_endian_int_to_digits(...): Separates an integer into big-endian digits.
bit_flip(...): Construct a BitFlipChannel that flips a qubit state with probability p.
bloch_vector_from_state_vector(...): Returns the bloch vector of a qubit.
block_diag(...): Concatenates blocks into a block diagonal matrix.
canonicalize_half_turns(...): Wraps the input into the range (-1, +1].
choi_to_kraus(...): Returns a Kraus representation of a channel with given Choi matrix.
choi_to_superoperator(...): Returns the superoperator matrix of a quantum channel specified via the Choi matrix.
chosen_angle_to_canonical_half_turns(...): Returns a canonicalized half_turns based on the given arguments.
chosen_angle_to_half_turns(...): Returns a half_turns value based on the given arguments.
circuit_diagram_info(...): Requests information on drawing an operation in a circuit diagram.
cirq_type_from_json(...): Returns a type object for JSON deserialization of type_str.
commutes(...): Determines whether two values commute.
compute_cphase_exponents_for_fsim_decomposition(...): Returns intervals of CZPowGate exponents valid for FSim decomposition.
control_keys(...): Gets the keys that the value is classically controlled by.
cphase(...): Returns a cphase gate with phase of rad radians.
create_transformer_with_kwargs(...): Method to capture additional keyword arguments to transformers while preserving mypy type.
dataclass_json_dict(...): Return a dictionary suitable for _json_dict_ from a dataclass.
decompose(...): Recursively decomposes a value into cirq.Operations meeting a criteria.
decompose_clifford_tableau_to_operations(...): Decompose an n-qubit Clifford Tableau into a list of one/two qubit operations.
decompose_cphase_into_two_fsim(...): Decomposes CZPowGate into two FSimGates.
decompose_multi_controlled_rotation(...): Implements action of multi-controlled unitary gate.
decompose_multi_controlled_x(...): Implements action of multi-controlled Pauli X gate.
decompose_once(...): Decomposes a value into operations, if possible.
decompose_once_with_qubits(...): Decomposes a value into operations on the given qubits.
decompose_two_qubit_interaction_into_four_fsim_gates(...): Decomposes operations into an FSimGate near theta=pi/2, phi=0.
deconstruct_single_qubit_matrix_into_angles(...): Breaks down a 2x2 unitary into ZYZ angle parameters.
defer_measurements(...): Implements the Deferred Measurement Principle.
definitely_commutes(...): Determines whether two values definitely commute.
density_matrix(...): Create a QuantumState object from a density matrix.
density_matrix_from_state_vector(...): Returns the density matrix of the state vector.
density_matrix_kronecker_product(...): Merges two density matrices into a single unified density matrix.
dephase_measurements(...): Changes all measurements to a dephase operation.
depolarize(...): Returns a DepolarizingChannel with given probability of error.
diagonalize_real_symmetric_and_sorted_diagonal_matrices(...): Returns an orthogonal matrix that diagonalizes both given matrices.
diagonalize_real_symmetric_matrix(...): Returns an orthogonal matrix that diagonalizes the given matrix.
dict_to_product_sweep(...): Cartesian product of sweeps from a dictionary.
dict_to_zip_sweep(...): Zip product of sweeps from a dictionary.
dirac_notation(...): Returns the state vector as a string in Dirac notation.
dot(...): Computes the dot/matrix product of a sequence of values.
draw_gridlike(...): Draw a grid-like graph using Matplotlib.
draw_placements(...): Draw a visualization of placements from small_graph onto big_graph using Matplotlib.
drop_empty_moments(...): Removes empty moments from a circuit.
drop_negligible_operations(...): Removes operations with tiny effects.
drop_terminal_measurements(...): Removes terminal measurements from a circuit.
eject_phased_paulis(...): Transformer pass to push X, Y, PhasedX & (certain) PhasedXZ gates to the end of the circuit.
eject_z(...): Pushes Z gates towards the end of the circuit.
entanglement_fidelity(...): Returns entanglement fidelity of a given quantum channel.
equal_up_to_global_phase(...): Determine whether two objects are equal up to global phase.
estimate_parallel_single_qubit_readout_errors(...): Estimate single qubit readout error using parallel operations.
estimate_single_qubit_readout_errors(...): Estimate single-qubit readout error.
expand_composite(...): A transformer that expands composite operations via cirq.decompose.
expand_matrix_in_orthogonal_basis(...): Computes coefficients of expansion of m in basis.
eye_tensor(...): Returns an identity matrix reshaped into a tensor.
fidelity(...): Fidelity of two quantum states.
final_density_matrix(...): Returns the density matrix resulting from simulating the circuit.
final_state_vector(...): Returns the state vector resulting from acting operations on a state.
flatten(...): Creates a copy of val with any symbols or expressions replaced with new symbols.
flatten_op_tree(...): Performs an in-order iteration of the operations (leaves) in an OP_TREE.
flatten_to_ops(...): Performs an in-order iteration of the operations (leaves) in an OP_TREE.
flatten_to_ops_or_moments(...): Performs an in-order iteration OP_TREE, yielding ops and moments.
flatten_with_params(...): Creates a copy of val with any symbols or expressions replaced with new symbols.
flatten_with_sweep(...): Creates a copy of val with any symbols or expressions replaced with new symbols.
freeze_op_tree(...): Replaces all iterables in the OP_TREE with tuples.
generalized_amplitude_damp(...): Returns a GeneralizedAmplitudeDampingChannel with probabilities gamma and p.
get_placements(...): Get 'placements' mapping small_graph nodes onto those of big_graph.
get_state_histogram(...): Computes a state histogram from a single result with repetitions.
givens(...): Returns gate with matrix exp(-i angle_rads (Y⊗X - X⊗Y) / 2).
global_phase_operation(...): Creates an operation that represents a global phase on the state.
has_kraus(...): Returns whether the value has a Kraus representation.
has_mixture(...): Returns whether the value has a mixture representation.
has_stabilizer_effect(...): Returns whether the input has a stabilizer effect.
has_unitary(...): Determines whether the value has a unitary effect.
hilbert_schmidt_inner_product(...): Computes Hilbert-Schmidt inner product of two matrices.
hog_score_xeb_fidelity_from_probabilities(...): XEB fidelity estimator based on normalized HOG score.
identity_each(...): Returns a single IdentityGate applied to all the given qubits.
index_tags(...): Indexes tags in target_tags as tag_0, tag_1, ... per tag.
integrated_histogram(...): Plot the integrated histogram for an array of data.
inverse(...): Returns the inverse val**-1 of the given value, if defined.
is_cptp(...): Determines if a channel is completely positive trace preserving (CPTP).
is_diagonal(...): Determines if a matrix is a approximately diagonal.
is_hermitian(...): Determines if a matrix is approximately Hermitian.
is_measurement(...): Determines whether or not the given value is a measurement (or contains one).
is_native_neutral_atom_gate(...): Returns true if the gate is in the default neutral atom gateset.
is_native_neutral_atom_op(...): Returns true if the operation is in the default neutral atom gateset.
is_negligible_turn(...): Returns True is the number of turns in a gate is close to zero.
is_normal(...): Determines if a matrix is approximately normal.
is_orthogonal(...): Determines if a matrix is approximately orthogonal.
is_parameterized(...): Returns whether the object is parameterized with any Symbols.
is_special_orthogonal(...): Determines if a matrix is approximately special orthogonal.
is_special_unitary(...): Determines if a matrix is approximately unitary with unit determinant.
is_unitary(...): Determines if a matrix is approximately unitary.
is_valid_placement(...): Return whether the given placement is a valid placement of small_graph onto big_graph.
json_cirq_type(...): Returns a string type for JSON serialization of type_obj.
json_namespace(...): Returns a namespace for JSON serialization of type_obj.
kak_canonicalize_vector(...): Canonicalizes an XX/YY/ZZ interaction by swap/negate/shift-ing axes.
kak_decomposition(...): Decomposes a 2-qubit unitary into 1-qubit ops and XX/YY/ZZ interactions.
kak_vector(...): Compute the KAK vectors of one or more two qubit unitaries.
kraus(...): Returns a list of matrices describing the channel for the given value.
kraus_to_choi(...): Returns the unique Choi matrix corresponding to a Kraus representation of a channel.
kraus_to_superoperator(...): Returns the matrix representation of the linear map with given Kraus operators.
kron(...): Computes the kronecker product of a sequence of values.
kron_bases(...): Creates tensor product of bases.
kron_factor_4x4_to_2x2s(...): Splits a 4x4 matrix U = kron(A, B) into A, B, and a global factor.
kron_with_controls(...): Computes the kronecker product of a sequence of values and control tags.
linear_xeb_fidelity(...): Estimates XEB fidelity from one circuit using linear estimator.
linear_xeb_fidelity_from_probabilities(...): Linear XEB fidelity estimator.
log_xeb_fidelity(...): Estimates XEB fidelity from one circuit using logarithmic estimator.
log_xeb_fidelity_from_probabilities(...): Logarithmic XEB fidelity estimator.
map_clean_and_borrowable_qubits(...): Uses qm: QubitManager to map all CleanQubit/BorrowableQubits to system qubits.
map_eigenvalues(...): Applies a function to the eigenvalues of a matrix.
map_moments(...): Applies local transformation on moments, by calling map_func(moment) for each moment.
map_operations(...): Applies local transformations, by calling map_func(op, moment_index) for each operation.
map_operations_and_unroll(...): Applies local transformations via cirq.map_operations & unrolls intermediate circuit ops.
match_global_phase(...): Phases the given matrices so that they agree on the phase of one entry.
matrix_commutes(...): Determines if two matrices approximately commute.
matrix_from_basis_coefficients(...): Computes linear combination of basis vectors with given coefficients.
measure(...): Returns a single MeasurementGate applied to all the given qubits.
measure_confusion_matrix(...): Prepares TensoredConfusionMatrices for the n qubits in the input.
measure_density_matrix(...): Performs a measurement of the density matrix in the computational basis.
measure_each(...): Returns a list of operations individually measuring the given qubits.
measure_paulistring_terms(...): Returns a list of operations individually measuring qubits in the pauli basis.
measure_single_paulistring(...): Returns a single PauliMeasurementGate which measures the pauli observable
measure_state_vector(...): Performs a measurement of the state in the computational basis.
measurement_key_name(...): Get the single measurement key for the given value.
measurement_key_names(...): Gets the measurement key strings of measurements within the given value.
measurement_key_obj(...): Get the single measurement key object for the given value.
measurement_key_objs(...): Gets the measurement key objects of measurements within the given value.
measurement_keys_touched(...): Returns all the measurement keys used by the value.
merge_k_qubit_unitaries(...): Merges connected components of unitary operations, acting on <= k qubits.
merge_k_qubit_unitaries_to_circuit_op(...): Merges connected components of operations, acting on <= k qubits, into circuit operations.
merge_moments(...): Merges adjacent moments, one by one from left to right, by calling merge_func(m1, m2).
merge_operations(...): Merges operations in a circuit by calling merge_func iteratively on operations.
merge_operations_to_circuit_op(...): Merges connected components of operations and wraps each component into a circuit operation.
merge_single_qubit_gates_to_phased_x_and_z(...): Replaces runs of single qubit rotations with cirq.PhasedXPowGate and cirq.ZPowGate.
merge_single_qubit_gates_to_phxz(...): Replaces runs of single qubit rotations with a single optional cirq.PhasedXZGate.
merge_single_qubit_gates_to_phxz_symbolized(...): Merges consecutive single qubit gates as PhasedXZ Gates.
merge_single_qubit_moments_to_phxz(...): Merges adjacent moments with only 1-qubit rotations to a single moment with PhasedXZ gates.
mixture(...): Return a sequence of tuples representing a probabilistic unitary.
ms(...): A helper to construct the cirq.MSGate for the given angle specified in radians.
mul(...): Returns lhs * rhs, or else a default if the operator is not implemented.
num_cnots_required(...): Returns the min number of CNOT/CZ gates required by a two-qubit unitary.
num_qubits(...): Returns the number of qubits, qudits, or qids val operates on.
obj_to_dict_helper(...): Construct a dictionary containing attributes from obj
one_hot(...): Returns a numpy array with all 0s and a single non-zero entry(default 1).
operation_to_choi(...): Returns the unique Choi matrix associated with an operation .
operation_to_superoperator(...): Returns the matrix representation of an operation in standard basis.
optimize_for_target_gateset(...): Transforms the given circuit into an equivalent circuit using gates accepted by gateset.
parallel_gate_op(...): Constructs a ParallelGate using gate and applies to all given qubits
parameter_names(...): Returns parameter names for this object.
parameter_symbols(...): Returns parameter symbols for this object.
parameterized_2q_op_to_sqrt_iswap_operations(...): Tries to decompose a parameterized 2q operation into √iSWAP's + parameterized 1q rotations.
partial_trace(...): Takes the partial trace of a given tensor.
partial_trace_of_state_vector_as_mixture(...): Returns a mixture representing a state vector with only some qubits kept.
pauli_expansion(...): Returns coefficients of the expansion of val in the Pauli basis.
phase_by(...): Returns a phased version of the effect.
phase_damp(...): Creates a PhaseDampingChannel with damping constant gamma.
phase_flip(...): Returns a PhaseFlipChannel that flips a qubit's phase with probability p.
plot_density_matrix(...): Generates a plot for a given density matrix.
plot_state_histogram(...): Plot the state histogram from either a single result with repetitions or a histogram computed using result.histogram() or a flattened histogram of measurement results computed using get_state_histogram.
pow(...): Returns val**factor of the given value, if defined.
pow_pauli_combination(...): Computes non-negative integer power of single-qubit Pauli combination.
prepare_two_qubit_state_using_cz(...): Prepares the given 2q state from |00> using at-most 1 CZ gate + single qubit rotations.
prepare_two_qubit_state_using_iswap(...): Prepares the given 2q state from |00> using at-most 1 ISWAP gate + single qubit rotations.
prepare_two_qubit_state_using_sqrt_iswap(...): Prepares the given 2q state from |00> using at-most 1 √iSWAP gate + single qubit rotations.
q(...): Constructs a qubit id of the appropriate type based on args.
qasm(...): Returns QASM code for the given value, if possible.
qft(...): The quantum Fourier transform.
qid_shape(...): Returns a tuple describing the number of quantum levels of each qubit/qudit/qid val operates on.
quantum_shannon_decomposition(...): Decomposes n-qubit unitary 1-q, 2-q and GlobalPhase gates, preserving global phase.
quantum_state(...): Create a QuantumState object from a state-like object.
quirk_json_to_circuit(...): Constructs a Cirq circuit from Quirk's JSON format.
quirk_url_to_circuit(...): Parses a Cirq circuit out of a Quirk URL.
read_json(...): Read a JSON file that optionally contains cirq objects.
read_json_gzip(...): Read a gzipped JSON file that optionally contains cirq objects.
reflection_matrix_pow(...): Raises a matrix with two opposing eigenvalues to a power.
remove_tags(...): Removes tags from the operations based on the input args.
reset(...): Returns a cirq.ResetChannel on the given qubit.
reset_each(...): Returns a list of cirq.ResetChannel instances on the given qubits.
resolve_parameters(...): Resolves symbol parameters in the effect using the param resolver.
resolve_parameters_once(...): Performs a single parameter resolution step using the param resolver.
riswap(...): Returns gate with matrix exp(+i angle_rads (X⊗X + Y⊗Y) / 2).
routed_circuit_with_mapping(...): Returns the same circuits with information about the permutation of qubits after each swap.
rx(...): Returns a gate with the matrix \(e^{-i X t / 2}\) where \(t=rads\).
ry(...): Returns a gate with the matrix \(e^{-i Y t / 2}\) where \(t=rads\).
rz(...): Returns a gate with the matrix \(e^{-i Z t / 2}\) where \(t=rads\).
sample(...): Simulates sampling from the given circuit.
sample_density_matrix(...): Samples repeatedly from measurements in the computational basis.
sample_state_vector(...): Samples repeatedly from measurements in the computational basis.
sample_sweep(...): Runs the supplied Circuit, mimicking quantum hardware.
scatter_plot_normalized_kak_interaction_coefficients(...): Plots the interaction coefficients of many two-qubit operations.
single_qubit_matrix_to_gates(...): Implements a single-qubit operation with few gates.
single_qubit_matrix_to_pauli_rotations(...): Implements a single-qubit operation with few rotations.
single_qubit_matrix_to_phased_x_z(...): Implements a single-qubit operation with a PhasedX and Z gate.
single_qubit_matrix_to_phxz(...): Implements a single-qubit operation with a PhasedXZ gate.
single_qubit_op_to_framed_phase_form(...): Decomposes a 2x2 unitary M into U^-1 * diag(1, r) * U * diag(g, g).
slice_for_qubits_equal_to(...): Returns an index corresponding to a desired subset of an np.ndarray.
so4_to_magic_su2s(...): Finds 2x2 special-unitaries A, B where mat = Mag.H @ kron(A, B) @ Mag.
state_vector_kronecker_product(...): Merges two state vectors into a single unified state vector.
state_vector_to_probabilities(...): Function to transform a state vector like object into a numpy array of probabilities.
stratified_circuit(...): Repacks avoiding simultaneous operations with different classes.
sub_state_vector(...): Attempts to factor a state vector into two parts and return one of them.
superoperator_to_choi(...): Returns the Choi matrix of a quantum channel specified via the superoperator matrix.
superoperator_to_kraus(...): Returns a Kraus representation of a channel specified via the superoperator matrix.
symbolize_single_qubit_gates_by_indexed_tags(...): Symbolizes single qubit operations by indexed tags prefixed by symbolize_tag.prefix.
synchronize_terminal_measurements(...): Move measurements to the end of the circuit.
targeted_conjugate_about(...): Conjugates the given tensor about the target tensor.
targeted_left_multiply(...): Left-multiplies the given axes of the target tensor by the given matrix.
three_qubit_matrix_to_operations(...): Returns operations for a 3 qubit unitary.
to_json(...): Write a JSON file containing a representation of obj.
to_json_gzip(...): Write a gzipped JSON file containing a representation of obj.
to_resolvers(...): Convert a Sweepable to a list of ParamResolvers.
to_special(...): Converts a unitary matrix to a special unitary matrix.
to_sweep(...): Converts the argument into a cirq.Sweep.
to_sweeps(...): Converts a Sweepable to a list of Sweeps.
to_valid_density_matrix(...): Verifies the density_matrix_rep is valid and converts it to ndarray form.
to_valid_state_vector(...): Verifies the state_rep is valid and converts it to ndarray form.
toggle_tags(...): Toggles tags applied on each operation in the circuit, via op.tags ^= tags
trace_distance_bound(...): Returns a maximum on the trace distance between this effect's input and output.
trace_distance_from_angle_list(...): Given a list of arguments of the eigenvalues of a unitary matrix, calculates the trace distance bound of the unitary effect.
transform_op_tree(...): Maps transformation functions onto the nodes of an OP_TREE.
transformer(...): Decorator to verify API and append logging functionality to transformer functions & classes.
two_qubit_gate_product_tabulation(...): Generate a TwoQubitGateTabulation for a base two qubit unitary.
two_qubit_matrix_to_cz_isometry(...): Decomposes a 2q operation into at-most 2 CZs + 1q rotations; assuming q0 is initially |0>.
two_qubit_matrix_to_cz_operations(...): Decomposes a two-qubit operation into Z/XY/CZ gates.
two_qubit_matrix_to_diagonal_and_cz_operations(...): Decomposes a 2-qubit unitary to a diagonal and the remaining operations.
two_qubit_matrix_to_ion_operations(...): Decomposes a two-qubit operation into MS/single-qubit rotation gates.
two_qubit_matrix_to_sqrt_iswap_operations(...): Decomposes a two-qubit operation into ZPow/XPow/YPow/sqrt-iSWAP gates.
unitary(...): Returns a unitary matrix describing the given value.
unitary_eig(...): Gives the guaranteed unitary eigendecomposition of a normal matrix.
unroll_circuit_op(...): Unrolls (tagged) cirq.CircuitOperations while preserving the moment structure.
unroll_circuit_op_greedy_earliest(...): Unrolls (tagged) cirq.CircuitOperations by inserting operations using EARLIEST strategy.
unroll_circuit_op_greedy_frontier(...): Unrolls (tagged) cirq.CircuitOperations by inserting operations inline at qubit frontier.
validate_density_matrix(...): Checks that the given density matrix is valid.
validate_indices(...): Validates that the indices have values within range of num_qubits.
validate_mixture(...): Validates that the mixture's tuple are valid probabilities.
validate_normalized_state_vector(...): Checks that the given state vector is valid.
validate_probability(...): Validates that a probability is between 0 and 1 inclusively.
validate_qid_shape(...): Validates the size of the given state_vector against the given shape.
value_equality(...): Implements eq/ne/hash via a _value_equalityvalues method.
von_neumann_entropy(...): Calculates the von Neumann entropy of a quantum state in bits.
wait(...): Creates a WaitGate applied to all the given qubits.
with_debug(...): Sets the value of global constant cirq.__cirq_debug__ within the context.
with_key_path(...): Adds the path to the target's measurement keys.
with_key_path_prefix(...): Prefixes the path to the target's measurement keys.
with_measurement_key_mapping(...): Remaps the target's measurement keys according to the provided key_map.
with_rescoped_keys(...): Rescopes any measurement and control keys to the provided path, given the existing keys.
xeb_fidelity(...): Estimates XEB fidelity from one circuit using user-supplied estimator.
Type Aliases
Other Members | |
|---|---|
| CONTROL_TAG |
Instance of numpy.ndarray
A special indicator value for |
| DEFAULT_RESOLVERS |
[<function _lazy_resolver.<locals>.json_resolver>,
<function _lazy_resolver.<locals>.json_resolver>,
<function _lazy_resolver.<locals>.json_resolver>,
<function _lazy_resolver.<locals>.json_resolver>,
<function _lazy_resolver.<locals>.json_resolver>]
|
| MEASUREMENT_KEY_SEPARATOR |
':'
|
| NO_NOISE |
Instance of cirq.devices.noise_model._NoNoiseModel
The trivial noise model with no effects. This is the noise model used when a |
| PAULI_BASIS |
The four Pauli matrices (including identity) keyed by character. |
| PAULI_STATES |
[cirq.X.basis[+1], cirq.X.basis[-1], cirq.Y.basis[+1], cirq.Y.basis[-1], cirq.Z.basis[+1], cirq.Z.basis[-1]]
All one-qubit states stabilized by the pauli operators. |
| TParamKey |
Instance of types.UnionType
A parameter that a parameter resolver may map to a value. |
| TParamVal |
Instance of types.UnionType
A value that a parameter resolver may return for a parameter. |
| TParamValComplex |
Instance of types.UnionType
A complex value that parameter resolvers may use for parameters. |
| UNCONSTRAINED_DEVICE |
Instance of cirq.devices.unconstrained_device._UnconstrainedDevice
A device with no constraints on operations or qubits. |
| UNIT_SWEEP |
Instance of cirq.study.sweeps._Unit
The singleton sweep with no parameters. |
| UnitSweep |
Instance of cirq.study.sweeps._Unit
The singleton sweep with no parameters. |
| version |
'1.6.1'
|
View source on GitHub