From 4b71d63806fbda8872f8f84cae47a01f22028a31 Mon Sep 17 00:00:00 2001 From: drholmie Date: Mon, 7 Oct 2019 19:11:07 +0530 Subject: [PATCH 01/37] Added tests for definitions of cswap, cu1, cu3, cx (#3182) Partially fixes #2964 Added in tests for cswap, cu1, cu3 and cx under test_gate_definitions --- test/python/circuit/test_gate_definitions.py | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/python/circuit/test_gate_definitions.py b/test/python/circuit/test_gate_definitions.py index 620d74f947d9..c8507b214298 100644 --- a/test/python/circuit/test_gate_definitions.py +++ b/test/python/circuit/test_gate_definitions.py @@ -47,3 +47,35 @@ def test_crz_definition(self): circ.crz(1, 0, 1) decomposed_circ = circ.decompose() self.assertTrue(Operator(circ).equiv(Operator(decomposed_circ))) + + def test_cswap_definition(self): + """Test cswap gate matrix and definition. + """ + circ = QuantumCircuit(3) + circ.cswap(0, 1, 2) + decomposed_circ = circ.decompose() + self.assertTrue(Operator(circ).equiv(Operator(decomposed_circ))) + + def test_cu1_defintion(self): + """Test cu1 gate matrix and definition. + """ + circ = QuantumCircuit(2) + circ.cu1(1, 0, 1) + decomposed_circ = circ.decompose() + self.assertTrue(Operator(circ).equiv(Operator(decomposed_circ))) + + def test_cu3_definition(self): + """Test cu3 gate matrix and definition. + """ + circ = QuantumCircuit(2) + circ.cu3(1, 1, 1, 0, 1) + decomposed_circ = circ.decompose() + self.assertTrue(Operator(circ).equiv(Operator(decomposed_circ))) + + def test_cx_definition(self): + """Test cx gate matrix and definition. + """ + circ = QuantumCircuit(2) + circ.cx(0, 1) + decomposed_circ = circ.decompose() + self.assertTrue(Operator(circ).equiv(Operator(decomposed_circ))) From 8c985a9c08529196ced5671b50b02c01c2d0335f Mon Sep 17 00:00:00 2001 From: Paul Nation Date: Mon, 7 Oct 2019 10:57:12 -0400 Subject: [PATCH 02/37] Add QV info to backend monitor and overview (#3141) * add quantum volume to overview and monitor * style fixes * fix lint * fix ordering issue that made it look like pbar not being updated at first * tweak alignments --- qiskit/tools/jupyter/backend_monitor.py | 14 ++++++--- qiskit/tools/jupyter/backend_overview.py | 37 +++++++++++++++--------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/qiskit/tools/jupyter/backend_monitor.py b/qiskit/tools/jupyter/backend_monitor.py index 7d08cf63b9f2..e577b489d6e2 100644 --- a/qiskit/tools/jupyter/backend_monitor.py +++ b/qiskit/tools/jupyter/backend_monitor.py @@ -139,10 +139,16 @@ def config_tab(backend): config_dict = {**status, **config} - upper_list = ['n_qubits', 'operational', - 'status_msg', 'pending_jobs', - 'backend_version', 'basis_gates', - 'max_shots', 'max_experiments'] + upper_list = ['n_qubits'] + + if 'quantum_volume' in config.keys(): + if config['quantum_volume']: + upper_list.append('quantum_volume') + + upper_list.extend(['operational', + 'status_msg', 'pending_jobs', + 'backend_version', 'basis_gates', + 'max_shots', 'max_experiments']) lower_list = list(set(config_dict.keys()).difference(upper_list)) # Remove gates because they are in a different tab diff --git a/qiskit/tools/jupyter/backend_overview.py b/qiskit/tools/jupyter/backend_overview.py index c9521614f716..36fb70cba847 100644 --- a/qiskit/tools/jupyter/backend_overview.py +++ b/qiskit/tools/jupyter/backend_overview.py @@ -68,18 +68,21 @@ def qiskit_backend_overview(self, line='', cell=None): _backends = _backends + [back] qubit_label = widgets.Label(value='Num. Qubits') - pend_label = widgets.Label(value='Pending Jobs') - least_label = widgets.Label(value='Least Busy') + qv_label = widgets.Label(value='Quantum Vol.') + pend_label = widgets.Label(value='Pending Jobs', + layout=widgets.Layout(margin='5px 0px 0px 0px')) + least_label = widgets.Label(value='Least Busy', + layout=widgets.Layout(margin='10px 0px 0px 0px')) oper_label = widgets.Label( value='Operational', layout=widgets.Layout(margin='5px 0px 0px 0px')) t12_label = widgets.Label( value='Avg. T1 / T2', layout=widgets.Layout(margin='10px 0px 0px 0px')) cx_label = widgets.Label( - value='Avg. CX Err.', layout=widgets.Layout(margin='10px 0px 0px 0px')) + value='Avg. CX Err.', layout=widgets.Layout(margin='8px 0px 0px 0px')) meas_label = widgets.Label( - value='Avg. Meas. Err.', layout=widgets.Layout(margin='10px 0px 0px 0px')) + value='Avg. Meas. Err.', layout=widgets.Layout(margin='8px 0px 0px 0px')) - labels_widget = widgets.VBox([qubit_label, pend_label, oper_label, + labels_widget = widgets.VBox([qubit_label, qv_label, pend_label, oper_label, least_label, t12_label, cx_label, meas_label], layout=widgets.Layout(margin='295px 0px 0px 0px', min_width='100px')) @@ -130,9 +133,17 @@ def backend_widget(backend): n_qubits = config['n_qubits'] + qv_val = '-' + if 'quantum_volume' in config.keys(): + if config['quantum_volume']: + qv_val = config['quantum_volume'] + qubit_count = widgets.HTML(value="
{qubits}
".format(qubits=n_qubits), layout=widgets.Layout(justify_content='center')) + qv_value = widgets.HTML(value="
{qubits}
".format(qubits=qv_val), + layout=widgets.Layout(justify_content='center')) + cmap = widgets.Output(layout=widgets.Layout(min_width='250px', max_width='250px', max_height='250px', min_height='250px', @@ -188,7 +199,7 @@ def backend_widget(backend): meas_widget = widgets.HTML(value="
{meas_err}
".format(meas_err=avg_meas_err), layout=widgets.Layout()) - out = widgets.VBox([name, cmap, qubit_count, pending, is_oper, least_busy, + out = widgets.VBox([name, cmap, qubit_count, qv_value, pending, is_oper, least_busy, t12_widget, cx_widget, meas_widget], layout=widgets.Layout(display='inline-flex', flex_flow='column', @@ -236,17 +247,17 @@ def update_backend_info(self, interval=60): for var in idx: if var == least_pending_idx: - self.children[var].children[5].value = "
True
" + self.children[var].children[6].value = "
True
" else: - self.children[var].children[5].value = "
False
" + self.children[var].children[6].value = "
False
" - self.children[var].children[3].children[1].value = pending[var] - self.children[var].children[3].children[1].max = max( - self.children[var].children[3].children[1].max, pending[var]+10) + self.children[var].children[4].children[1].max = max( + self.children[var].children[4].children[1].max, pending[var]+10) + self.children[var].children[4].children[1].value = pending[var] if stati[var].operational: - self.children[var].children[4].value = "
True
" + self.children[var].children[5].value = "
True
" else: - self.children[var].children[4].value = "
False
" + self.children[var].children[5].value = "
False
" started = True current_interval = 0 From 1cb65623b493aafabd9cab914a109af29a4c9304 Mon Sep 17 00:00:00 2001 From: Ali Javadi-Abhari Date: Mon, 7 Oct 2019 14:52:49 -0400 Subject: [PATCH 03/37] Cleanup inst control usage from source tree (#3198) * remove deprecated code from source * cleaning up more * remove error --- qiskit/circuit/instruction.py | 2 +- qiskit/circuit/instructionset.py | 2 +- qiskit/circuit/quantumcircuit.py | 14 +++++++------- qiskit/circuit/random/utils.py | 2 +- qiskit/converters/dag_to_circuit.py | 4 ++-- qiskit/dagcircuit/dagcircuit.py | 4 ++-- test/python/test_dagcircuit.py | 20 ++++++++++---------- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/qiskit/circuit/instruction.py b/qiskit/circuit/instruction.py index 4e77e442bf9d..8676987be998 100644 --- a/qiskit/circuit/instruction.py +++ b/qiskit/circuit/instruction.py @@ -245,7 +245,7 @@ def inverse(self): return inverse_gate def c_if(self, classical, val): - """Add classical control on register classical and value val.""" + """Add classical condition on register classical and value val.""" if not isinstance(classical, ClassicalRegister): raise QiskitError("c_if must be used with a classical register") if val < 0: diff --git a/qiskit/circuit/instructionset.py b/qiskit/circuit/instructionset.py index c1460851f297..70f89825516b 100644 --- a/qiskit/circuit/instructionset.py +++ b/qiskit/circuit/instructionset.py @@ -62,7 +62,7 @@ def q_if(self, *qregs): return self def c_if(self, classical, val): - """Add classical control register to all instructions.""" + """Add condition on classical register to all instructions.""" for gate in self.instructions: gate.c_if(classical, val) return self diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index 81f4b99a379a..28f544d2715e 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -698,13 +698,13 @@ def depth(self): levels.append(op_stack[reg_ints[ind]] + 1) else: levels.append(op_stack[reg_ints[ind]]) - # Assuming here that there is no controlled + # Assuming here that there is no conditional # snapshots or barriers ever. - if instr.control: + if instr.condition: # Controls operate over all bits in the # classical register they use. - cint = reg_map[instr.control[0].name] - for off in range(instr.control[0].size): + cint = reg_map[instr.condition[0].name] + for off in range(instr.condition[0].size): if cint + off not in reg_ints: reg_ints.append(cint + off) levels.append(op_stack[cint + off] + 1) @@ -782,15 +782,15 @@ def num_connected_components(self, unitary_only=False): num_qargs = len(args) else: args = qargs + cargs - num_qargs = len(args) + (1 if instr.control else 0) + num_qargs = len(args) + (1 if instr.condition else 0) if num_qargs >= 2 and instr.name not in ['barrier', 'snapshot']: graphs_touched = [] num_touched = 0 # Controls necessarily join all the cbits in the # register that they use. - if instr.control and not unitary_only: - creg = instr.control[0] + if instr.condition and not unitary_only: + creg = instr.condition[0] creg_int = reg_map[creg.name] for coff in range(creg.size): temp_int = creg_int + coff diff --git a/qiskit/circuit/random/utils.py b/qiskit/circuit/random/utils.py index a5eeab728430..21e9737e1f39 100644 --- a/qiskit/circuit/random/utils.py +++ b/qiskit/circuit/random/utils.py @@ -98,7 +98,7 @@ def random_circuit(n_qubits, depth, max_operands=3, measure=False, if conditional and rng.choice(range(10)) == 0: possible_values = range(pow(2, n_qubits)) value = rng.choice(list(possible_values)) - op.control = (cr, value) + op.condition = (cr, value) qc.append(op, register_operands) diff --git a/qiskit/converters/dag_to_circuit.py b/qiskit/converters/dag_to_circuit.py index 9850f48e1f99..ffbbc7a61716 100644 --- a/qiskit/converters/dag_to_circuit.py +++ b/qiskit/converters/dag_to_circuit.py @@ -50,8 +50,8 @@ def dag_to_circuit(dag): for clbit in node.cargs: clbits.append(cregs[clbit.register.name][clbit.index]) - # Get arguments for classical control (if any) + # Get arguments for classical condition (if any) inst = node.op.copy() - inst.control = node.condition + inst.condition = node.condition circuit.append(inst, qubits, clbits) return circuit diff --git a/qiskit/dagcircuit/dagcircuit.py b/qiskit/dagcircuit/dagcircuit.py index 5920e2c8012a..c07b75106941 100644 --- a/qiskit/dagcircuit/dagcircuit.py +++ b/qiskit/dagcircuit/dagcircuit.py @@ -751,7 +751,7 @@ def substitute_node_with_dag(self, node, input_dag, wires=None): to_replay = [] for sorted_node in input_dag.topological_nodes(): if sorted_node.type == "op": - sorted_node.op.control = condition + sorted_node.op.condition = condition to_replay.append(sorted_node) for input_node in input_dag.op_nodes(): input_dag.remove_op_node(input_node) @@ -784,7 +784,7 @@ def substitute_node_with_dag(self, node, input_dag, wires=None): # Replace the node by iterating through the input_circuit. # Constructing and checking the validity of the wire_map. # If a gate is conditioned, we expect the replacement subcircuit - # to depend on those control bits as well. + # to depend on those condition bits as well. if node.type != "op": raise DAGCircuitError("expected node type \"op\", got %s" % node.type) diff --git a/test/python/test_dagcircuit.py b/test/python/test_dagcircuit.py index 9512a68d7f69..b477f1bab9a1 100644 --- a/test/python/test_dagcircuit.py +++ b/test/python/test_dagcircuit.py @@ -211,13 +211,13 @@ def test_apply_operation_back_conditional(self): # Single qubit gate conditional: qc.h(qr[2]).c_if(cr, 3) h_gate = HGate() - h_gate.control = self.condition + h_gate.condition = self.condition h_node = self.dag.apply_operation_back( - h_gate, [self.qubit2], [], h_gate.control) + h_gate, [self.qubit2], [], h_gate.condition) self.assertEqual(h_node.qargs, [self.qubit2]) self.assertEqual(h_node.cargs, []) - self.assertEqual(h_node.condition, h_gate.control) + self.assertEqual(h_node.condition, h_gate.condition) self.assertEqual( sorted(self.dag._multi_graph.in_edges(h_node, data=True)), @@ -253,13 +253,13 @@ def test_apply_operation_back_conditional_measure(self): self.dag.add_creg(new_creg) meas_gate = Measure() - meas_gate.control = (new_creg, 0) + meas_gate.condition = (new_creg, 0) meas_node = self.dag.apply_operation_back( - meas_gate, [self.qubit0], [self.clbit0], meas_gate.control) + meas_gate, [self.qubit0], [self.clbit0], meas_gate.condition) self.assertEqual(meas_node.qargs, [self.qubit0]) self.assertEqual(meas_node.cargs, [self.clbit0]) - self.assertEqual(meas_node.condition, meas_gate.control) + self.assertEqual(meas_node.condition, meas_gate.condition) self.assertEqual( sorted(self.dag._multi_graph.in_edges(meas_node, data=True)), @@ -292,13 +292,13 @@ def test_apply_operation_back_conditional_measure_to_self(self): # register. qc.measure(qr[0], cr[0]).c_if(cr, 3) meas_gate = Measure() - meas_gate.control = self.condition + meas_gate.condition = self.condition meas_node = self.dag.apply_operation_back( meas_gate, [self.qubit1], [self.clbit1], self.condition) self.assertEqual(meas_node.qargs, [self.qubit1]) self.assertEqual(meas_node.cargs, [self.clbit1]) - self.assertEqual(meas_node.condition, meas_gate.control) + self.assertEqual(meas_node.condition, meas_gate.condition) self.assertEqual( sorted(self.dag._multi_graph.in_edges(meas_node, data=True)), @@ -873,9 +873,9 @@ def test_raise_if_substituting_dag_modifies_its_conditional(self): # case. instr = Instruction('opaque', 1, 1, []) - instr.control = self.condition + instr.condition = self.condition instr_node = self.dag.apply_operation_back( - instr, [self.qubit0], [self.clbit1], instr.control) + instr, [self.qubit0], [self.clbit1], instr.condition) sub_dag = DAGCircuit() sub_qr = QuantumRegister(1, 'sqr') From 352f940dfa4cd7b311bbda3889f79541b52b4898 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Tue, 8 Oct 2019 08:22:51 -0400 Subject: [PATCH 04/37] Add ax kwarg to matplotlib visualization functions (#3053) * Add ax kwarg to matplotlib visualization functions This commit adds support for passing a matplotlib axes to visualization functions. This enables integrating the qiskit visualizations into a larger matplotlib visualization. When an ax kwarg is set that input will be used for the output visualization and a new figure will not be generated or returned. Fixes #1950 * typo in release note * Add ax kwarg to matplotlib visualization functions This commit adds support for passing a matplotlib axes to visualization functions. This enables integrating the qiskit visualizations into a larger matplotlib visualization. When an ax kwarg is set that input will be used for the output visualization and a new figure will not be generated or returned. Fixes #1950 * Fix lint and typos * pylint: disable=invalid-name * Fix lost lines from rebase As part of rebasing and cleaning up the branch from several failed merge attempts a few lines from plot_state_city() were lost. This commit fixes that mistake and restores the z axis labels which were missing from the imaginary component subplot. * Fix rebase typo * Revert "pylint: disable=invalid-name" This reverts commit 556661171917f9ed17e15d800ed5c81a48fa6e32. --- .pylintrc | 2 +- qiskit/circuit/quantumcircuit.py | 17 +- qiskit/visualization/circuit_visualization.py | 26 +- qiskit/visualization/counts_visualization.py | 14 +- qiskit/visualization/matplotlib.py | 28 +- qiskit/visualization/state_visualization.py | 363 +++++++++++------- .../pass-mpl-ax-kwarg-069f793f01cd61a7.yaml | 37 ++ 7 files changed, 321 insertions(+), 166 deletions(-) create mode 100644 releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml diff --git a/.pylintrc b/.pylintrc index 6040fbfed61f..f5530ed51f41 100644 --- a/.pylintrc +++ b/.pylintrc @@ -172,7 +172,7 @@ attr-rgx=[a-z_][a-z0-9_]{2,30}$ attr-name-hint=[a-z_][a-z0-9_]{2,30}$ # Regular expression matching correct argument names -argument-rgx=[a-z_][a-z0-9_]{2,30}$ +argument-rgx=[a-z_][a-z0-9_]{2,30}|ax$ # Naming hint for argument names argument-name-hint=[a-z_][a-z0-9_]{2,30}$ diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index 28f544d2715e..a7b738c66d5b 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -560,8 +560,8 @@ def qasm(self): def draw(self, scale=0.7, filename=None, style=None, output=None, interactive=False, line_length=None, plot_barriers=True, - reverse_bits=False, justify=None, idle_wires=True, vertical_compression='medium', - with_layout=True, fold=None): + reverse_bits=False, justify=None, vertical_compression='medium', idle_wires=True, + with_layout=True, fold=None, ax=None): """Draw the quantum circuit Using the output parameter you can specify the format. The choices are: @@ -610,12 +610,19 @@ def draw(self, scale=0.7, filename=None, style=None, output=None, guess the console width using `shutil.get_terminal_size()`. However, if running in jupyter, the default line length is set to 80 characters. In `mpl` is the amount of operations before folding. Default is 25. + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. This is only used + when the ``output`` kwarg is set to use the ``mpl`` backend. It + will be silently ignored with all other outputs. + Returns: PIL.Image or matplotlib.figure or str or TextDrawing: * PIL.Image: (output `latex`) an in-memory representation of the image of the circuit diagram. * matplotlib.figure: (output `mpl`) a matplotlib figure object - for the circuit diagram. + for the circuit diagram, if the ``ax`` kwarg is not set. * str: (output `latex_source`). The LaTeX source code. * TextDrawing: (output `text`). A drawing that can be printed as ascii art @@ -635,7 +642,9 @@ def draw(self, scale=0.7, filename=None, style=None, output=None, justify=justify, vertical_compression=vertical_compression, idle_wires=idle_wires, - with_layout=with_layout, fold=fold) + with_layout=with_layout, + fold=fold, + ax=ax) def size(self): """Returns total number of gate operations in circuit. diff --git a/qiskit/visualization/circuit_visualization.py b/qiskit/visualization/circuit_visualization.py index 9e671535ad2e..9ee337ee7ac7 100644 --- a/qiskit/visualization/circuit_visualization.py +++ b/qiskit/visualization/circuit_visualization.py @@ -56,7 +56,8 @@ def circuit_drawer(circuit, vertical_compression='medium', idle_wires=True, with_layout=True, - fold=None): + fold=None, + ax=None): """Draw a quantum circuit to different formats (set by output parameter): 0. text: ASCII art TextDrawing that can be printed in the console. 1. latex: high-quality images, but heavy external software dependencies @@ -103,11 +104,17 @@ def circuit_drawer(circuit, guess the console width using `shutil.get_terminal_size()`. However, if running in jupyter, the default line length is set to 80 characters. In `mpl` is the amount of operations before folding. Default is 25. + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. This is only used + when the ``output`` kwarg is set to use the ``mpl`` backend. It + will be silently ignored with all other outputs. Returns: PIL.Image: (output `latex`) an in-memory representation of the image of the circuit diagram. matplotlib.figure: (output `mpl`) a matplotlib figure object for the - circuit diagram. + circuit diagram, if the ``ax`` kwarg is not set String: (output `latex_source`). The LaTeX source code. TextDrawing: (output `text`). A drawing that can be printed as ascii art Raises: @@ -257,7 +264,8 @@ def circuit_drawer(circuit, justify=justify, idle_wires=idle_wires, with_layout=with_layout, - fold=fold) + fold=fold, + ax=ax) else: raise exceptions.VisualizationError( 'Invalid output type %s selected. The only valid choices ' @@ -538,7 +546,8 @@ def _matplotlib_circuit_drawer(circuit, justify=None, idle_wires=True, with_layout=True, - fold=None): + fold=None, + ax=None): """Draw a quantum circuit based on matplotlib. If `%matplotlib inline` is invoked in a Jupyter notebook, it visualizes a circuit inline. We recommend `%config InlineBackend.figure_format = 'svg'` for the inline visualization. @@ -558,8 +567,14 @@ def _matplotlib_circuit_drawer(circuit, with_layout (bool): Include layout information, with labels on the physical layout. Default: True. fold (int): amount ops allowed before folding. Default is 25. + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. + Returns: matplotlib.figure: a matplotlib figure object for the circuit diagram + if the ``ax`` kwarg is not set. """ qregs, cregs, ops = utils._get_layered_instructions(circuit, @@ -576,5 +591,6 @@ def _matplotlib_circuit_drawer(circuit, qcd = _matplotlib.MatplotlibDrawer(qregs, cregs, ops, scale=scale, style=style, plot_barriers=plot_barriers, - reverse_bits=reverse_bits, layout=layout, fold=fold) + reverse_bits=reverse_bits, layout=layout, + fold=fold, ax=ax) return qcd.draw(filename) diff --git a/qiskit/visualization/counts_visualization.py b/qiskit/visualization/counts_visualization.py index 3b458a5ae7ad..fd3570342d3e 100644 --- a/qiskit/visualization/counts_visualization.py +++ b/qiskit/visualization/counts_visualization.py @@ -52,7 +52,7 @@ def hamming_distance(str1, str2): def plot_histogram(data, figsize=(7, 5), color=None, number_to_keep=None, sort='asc', target_string=None, - legend=None, bar_labels=True, title=None): + legend=None, bar_labels=True, title=None, ax=None): """Plot a histogram of data. Args: @@ -69,9 +69,14 @@ def plot_histogram(data, figsize=(7, 5), color=None, number_to_keep=None, list or 1 if it's a dict) bar_labels (bool): Label each bar in histogram with probability value. title (str): A string to use for the plot title + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. Returns: - matplotlib.Figure: A figure for the rendered histogram. + matplotlib.Figure: A figure for the rendered histogram, if the ``ax`` + kwarg is not set. Raises: ImportError: Matplotlib not available. @@ -95,8 +100,11 @@ def plot_histogram(data, figsize=(7, 5), color=None, number_to_keep=None, raise VisualizationError("Length of legendL (%s) doesn't match " "number of input executions: %s" % (len(legend), len(data))) + if ax is None: + fig, ax = plt.subplots(figsize=figsize) + else: + fig = None - fig, ax = plt.subplots(figsize=figsize) labels = list(sorted( functools.reduce(lambda x, y: x.union(y.keys()), data, set()))) if number_to_keep is not None: diff --git a/qiskit/visualization/matplotlib.py b/qiskit/visualization/matplotlib.py index 70acf678fe05..50c280ff3c10 100644 --- a/qiskit/visualization/matplotlib.py +++ b/qiskit/visualization/matplotlib.py @@ -12,7 +12,7 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name,missing-docstring +# pylint: disable=invalid-name,missing-docstring,inconsistent-return-statements """mpl circuit visualization backend.""" @@ -103,7 +103,7 @@ def get_index(self): class MatplotlibDrawer: def __init__(self, qregs, cregs, ops, scale=1.0, style=None, plot_barriers=True, - reverse_bits=False, layout=None, fold=25): + reverse_bits=False, layout=None, fold=25, ax=None): if not HAS_MATPLOTLIB: raise ImportError('The class MatplotlibDrawer needs matplotlib. ' @@ -145,14 +145,21 @@ def __init__(self, qregs, cregs, ops, with open(style, 'r') as infile: dic = json.load(infile) self._style.set_style(dic) + if ax is None: + self.return_fig = True + self.figure = plt.figure() + self.figure.patch.set_facecolor(color=self._style.bg) + self.ax = self.figure.add_subplot(111) + else: + self.return_fig = False + self.ax = ax + self.figure = ax.get_figure() - self.fold = self._style.fold or fold # self._style.fold should be removed after 0.10 + # TODO: self._style.fold should be removed after deprecation + self.fold = self._style.fold or fold if self.fold < 2: self.fold = -1 - self.figure = plt.figure() - self.figure.patch.set_facecolor(color=self._style.bg) - self.ax = self.figure.add_subplot(111) self.ax.axis('off') self.ax.set_aspect('equal') self.ax.tick_params(labelbottom=False, labeltop=False, @@ -503,10 +510,11 @@ def draw(self, filename=None, verbose=False): if filename: self.figure.savefig(filename, dpi=self._style.dpi, bbox_inches='tight') - if get_backend() in ['module://ipykernel.pylab.backend_inline', - 'nbAgg']: - plt.close(self.figure) - return self.figure + if self.return_fig: + if get_backend() in ['module://ipykernel.pylab.backend_inline', + 'nbAgg']: + plt.close(self.figure) + return self.figure def _draw_regs(self): diff --git a/qiskit/visualization/state_visualization.py b/qiskit/visualization/state_visualization.py index 0b613aeaaa81..626a09b8e784 100644 --- a/qiskit/visualization/state_visualization.py +++ b/qiskit/visualization/state_visualization.py @@ -13,6 +13,7 @@ # that they have been altered from the originals. # pylint: disable=invalid-name,ungrouped-imports,import-error +# pylint: disable=inconsistent-return-statements """ Visualization functions for quantum states. @@ -58,15 +59,29 @@ def draw(self, renderer): FancyArrowPatch.draw(self, renderer) -def plot_state_hinton(rho, title='', figsize=None): +def plot_state_hinton(rho, title='', figsize=None, ax_real=None, ax_imag=None): """Plot a hinton diagram for the quanum state. Args: rho (ndarray): Numpy array for state vector or density matrix. title (str): a string that represents the plot title figsize (tuple): Figure size in inches. + ax_real (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. If this is specified without an + ax_imag only the real component plot will be generated. + Additionally, if specified there will be no returned Figure since + it is redundant. + ax_imag (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. If this is specified without an + ax_imag only the real component plot will be generated. + Additionally, if specified there will be no returned Figure since + it is redundant. + Returns: - matplotlib.Figure: The matplotlib.Figure of the visualization + matplotlib.Figure: The matplotlib.Figure of the visualization if + neither ax_real or ax_imag is set. Raises: ImportError: Requires matplotlib. @@ -77,7 +92,15 @@ def plot_state_hinton(rho, title='', figsize=None): if figsize is None: figsize = (8, 5) num = int(np.log2(len(rho))) - fig, (ax1, ax2) = plt.subplots(1, 2, figsize=figsize) + if not ax_real and not ax_imag: + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=figsize) + else: + if ax_real: + fig = ax_real.get_figure() + else: + fig = ax_imag.get_figure() + ax1 = ax_real + ax2 = ax_imag max_weight = 2 ** np.ceil(np.log(np.abs(rho).max()) / np.log(2)) datareal = np.real(rho) dataimag = np.imag(rho) @@ -86,52 +109,55 @@ def plot_state_hinton(rho, title='', figsize=None): lx = len(datareal[0]) # Work out matrix dimensions ly = len(datareal[:, 0]) # Real - ax1.patch.set_facecolor('gray') - ax1.set_aspect('equal', 'box') - ax1.xaxis.set_major_locator(plt.NullLocator()) - ax1.yaxis.set_major_locator(plt.NullLocator()) - - for (x, y), w in np.ndenumerate(datareal): - color = 'white' if w > 0 else 'black' - size = np.sqrt(np.abs(w) / max_weight) - rect = plt.Rectangle([x - size / 2, y - size / 2], size, size, - facecolor=color, edgecolor=color) - ax1.add_patch(rect) - - ax1.set_xticks(np.arange(0, lx+0.5, 1)) - ax1.set_yticks(np.arange(0, ly+0.5, 1)) - ax1.set_yticklabels(row_names, fontsize=14) - ax1.set_xticklabels(column_names, fontsize=14, rotation=90) - ax1.autoscale_view() - ax1.invert_yaxis() - ax1.set_title('Re[$\\rho$]', fontsize=14) + if ax1: + ax1.patch.set_facecolor('gray') + ax1.set_aspect('equal', 'box') + ax1.xaxis.set_major_locator(plt.NullLocator()) + ax1.yaxis.set_major_locator(plt.NullLocator()) + + for (x, y), w in np.ndenumerate(datareal): + color = 'white' if w > 0 else 'black' + size = np.sqrt(np.abs(w) / max_weight) + rect = plt.Rectangle([x - size / 2, y - size / 2], size, size, + facecolor=color, edgecolor=color) + ax1.add_patch(rect) + + ax1.set_xticks(np.arange(0, lx+0.5, 1)) + ax1.set_yticks(np.arange(0, ly+0.5, 1)) + ax1.set_yticklabels(row_names, fontsize=14) + ax1.set_xticklabels(column_names, fontsize=14, rotation=90) + ax1.autoscale_view() + ax1.invert_yaxis() + ax1.set_title('Re[$\\rho$]', fontsize=14) # Imaginary - ax2.patch.set_facecolor('gray') - ax2.set_aspect('equal', 'box') - ax2.xaxis.set_major_locator(plt.NullLocator()) - ax2.yaxis.set_major_locator(plt.NullLocator()) - - for (x, y), w in np.ndenumerate(dataimag): - color = 'white' if w > 0 else 'black' - size = np.sqrt(np.abs(w) / max_weight) - rect = plt.Rectangle([x - size / 2, y - size / 2], size, size, - facecolor=color, edgecolor=color) - ax2.add_patch(rect) - - ax2.set_xticks(np.arange(0, lx+0.5, 1)) - ax2.set_yticks(np.arange(0, ly+0.5, 1)) - ax2.set_yticklabels(row_names, fontsize=14) - ax2.set_xticklabels(column_names, fontsize=14, rotation=90) - - ax2.autoscale_view() - ax2.invert_yaxis() - ax2.set_title('Im[$\\rho$]', fontsize=14) + if ax2: + ax2.patch.set_facecolor('gray') + ax2.set_aspect('equal', 'box') + ax2.xaxis.set_major_locator(plt.NullLocator()) + ax2.yaxis.set_major_locator(plt.NullLocator()) + + for (x, y), w in np.ndenumerate(dataimag): + color = 'white' if w > 0 else 'black' + size = np.sqrt(np.abs(w) / max_weight) + rect = plt.Rectangle([x - size / 2, y - size / 2], size, size, + facecolor=color, edgecolor=color) + ax2.add_patch(rect) + + ax2.set_xticks(np.arange(0, lx+0.5, 1)) + ax2.set_yticks(np.arange(0, ly+0.5, 1)) + ax2.set_yticklabels(row_names, fontsize=14) + ax2.set_xticklabels(column_names, fontsize=14, rotation=90) + + ax2.autoscale_view() + ax2.invert_yaxis() + ax2.set_title('Im[$\\rho$]', fontsize=14) if title: fig.suptitle(title, fontsize=16) - if get_backend() in ['module://ipykernel.pylab.backend_inline', - 'nbAgg']: - plt.close(fig) - return fig + if ax_real is None and ax_imag is None: + if get_backend() in ['module://ipykernel.pylab.backend_inline', + 'nbAgg']: + plt.close(fig) + return fig def plot_bloch_vector(bloch, title="", ax=None, figsize=None): @@ -142,7 +168,8 @@ def plot_bloch_vector(bloch, title="", ax=None, figsize=None): Args: bloch (list[double]): array of three elements where [, , ] title (str): a string that represents the plot title - ax (matplotlib.Axes): An Axes to use for rendering the bloch sphere + ax (matplotlib.axes.Axes): An Axes to use for rendering the bloch + sphere figsize (tuple): Figure size in inches. Has no effect is passing `ax`. Returns: @@ -179,7 +206,7 @@ def plot_bloch_multivector(rho, title='', figsize=None): figsize (tuple): Has no effect, here for compatibility only. Returns: - Figure: A matplotlib figure instance if `ax = None`. + Figure: A matplotlib figure instance. Raises: ImportError: Requires matplotlib. @@ -210,7 +237,7 @@ def plot_bloch_multivector(rho, title='', figsize=None): def plot_state_city(rho, title="", figsize=None, color=None, - alpha=1): + alpha=1, ax_real=None, ax_imag=None): """Plot the cityscape of quantum state. Plot two 3d bar graphs (two dimensional) of the real and imaginary @@ -223,8 +250,22 @@ def plot_state_city(rho, title="", figsize=None, color=None, color (list): A list of len=2 giving colors for real and imaginary components of matrix elements. alpha (float): Transparency value for bars + ax_real (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. If this is specified without an + ax_imag only the real component plot will be generated. + Additionally, if specified there will be no returned Figure since + it is redundant. + ax_imag (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. If this is specified without an + ax_imag only the real component plot will be generated. + Additionally, if specified there will be no returned Figure since + it is redundant. + Returns: - matplotlib.Figure: The matplotlib.Figure of the visualization + matplotlib.Figure: The matplotlib.Figure of the visualization if the + ``ax_real`` and ``ax_imag`` kwargs are not set Raises: ImportError: Requires matplotlib. @@ -267,99 +308,112 @@ def plot_state_city(rho, title="", figsize=None, color=None, color[0] = "#648fff" if color[1] is None: color[1] = "#648fff" - - # set default figure size - if figsize is None: - figsize = (15, 5) - - fig = plt.figure(figsize=figsize) - ax1 = fig.add_subplot(1, 2, 1, projection='3d') + if ax_real is None and ax_imag is None: + # set default figure size + if figsize is None: + figsize = (15, 5) + + fig = plt.figure(figsize=figsize) + ax1 = fig.add_subplot(1, 2, 1, projection='3d') + ax2 = fig.add_subplot(1, 2, 2, projection='3d') + elif ax_real is not None: + fig = ax_real.get_figure() + ax1 = ax_real + if ax_imag is not None: + ax2 = ax_imag + else: + fig = ax_imag.get_figure() + ax1 = None + ax2 = ax_imag x = [0, max(xpos)+0.5, max(xpos)+0.5, 0] y = [0, 0, max(ypos)+0.5, max(ypos)+0.5] z = [0, 0, 0, 0] verts = [list(zip(x, y, z))] - fc1 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzr, color[0]) - for idx, cur_zpos in enumerate(zpos): - if dzr[idx] > 0: - zorder = 2 - else: - zorder = 0 - b1 = ax1.bar3d(xpos[idx], ypos[idx], cur_zpos, - dx[idx], dy[idx], dzr[idx], - alpha=alpha, zorder=zorder) - b1.set_facecolors(fc1[6*idx:6*idx+6]) - - pc1 = Poly3DCollection(verts, alpha=0.15, facecolor='k', - linewidths=1, zorder=1) - - if min(dzr) < 0 < max(dzr): - ax1.add_collection3d(pc1) - - ax2 = fig.add_subplot(1, 2, 2, projection='3d') - fc2 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzi, color[1]) - for idx, cur_zpos in enumerate(zpos): - if dzi[idx] > 0: - zorder = 2 - else: - zorder = 0 - b2 = ax2.bar3d(xpos[idx], ypos[idx], cur_zpos, - dx[idx], dy[idx], dzi[idx], - alpha=alpha, zorder=zorder) - b2.set_facecolors(fc2[6*idx:6*idx+6]) - - pc2 = Poly3DCollection(verts, alpha=0.2, facecolor='k', - linewidths=1, zorder=1) - - if min(dzi) < 0 < max(dzi): - ax2.add_collection3d(pc2) - ax1.set_xticks(np.arange(0.5, lx+0.5, 1)) - ax1.set_yticks(np.arange(0.5, ly+0.5, 1)) - max_dzr = max(dzr) - min_dzr = min(dzr) - if max_dzr != min_dzr: - ax1.axes.set_zlim3d(np.min(dzr), np.max(dzr)+1e-9) - else: - if min_dzr == 0: + if ax1 is not None: + fc1 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzr, color[0]) + for idx, cur_zpos in enumerate(zpos): + if dzr[idx] > 0: + zorder = 2 + else: + zorder = 0 + b1 = ax1.bar3d(xpos[idx], ypos[idx], cur_zpos, + dx[idx], dy[idx], dzr[idx], + alpha=alpha, zorder=zorder) + b1.set_facecolors(fc1[6*idx:6*idx+6]) + + pc1 = Poly3DCollection(verts, alpha=0.15, facecolor='k', + linewidths=1, zorder=1) + + if min(dzr) < 0 < max(dzr): + ax1.add_collection3d(pc1) + + if ax2 is not None: + fc2 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzi, color[1]) + for idx, cur_zpos in enumerate(zpos): + if dzi[idx] > 0: + zorder = 2 + else: + zorder = 0 + b2 = ax2.bar3d(xpos[idx], ypos[idx], cur_zpos, + dx[idx], dy[idx], dzi[idx], + alpha=alpha, zorder=zorder) + b2.set_facecolors(fc2[6*idx:6*idx+6]) + + pc2 = Poly3DCollection(verts, alpha=0.2, facecolor='k', + linewidths=1, zorder=1) + if min(dzi) < 0 < max(dzi): + ax2.add_collection3d(pc2) + if ax1 is not None: + ax1.set_xticks(np.arange(0.5, lx+0.5, 1)) + ax1.set_yticks(np.arange(0.5, ly+0.5, 1)) + max_dzr = max(dzr) + min_dzr = min(dzr) + if max_dzr != min_dzr: ax1.axes.set_zlim3d(np.min(dzr), np.max(dzr)+1e-9) else: - ax1.axes.set_zlim3d(auto=True) - ax1.zaxis.set_major_locator(MaxNLocator(5)) - ax1.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) - ax1.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) - ax1.set_zlabel("Real[rho]", fontsize=14) - for tick in ax1.zaxis.get_major_ticks(): - tick.label.set_fontsize(14) - - ax2.set_xticks(np.arange(0.5, lx+0.5, 1)) - ax2.set_yticks(np.arange(0.5, ly+0.5, 1)) - min_dzi = np.min(dzi) - max_dzi = np.max(dzi) - if min_dzi != max_dzi: - eps = 0 - ax2.zaxis.set_major_locator(MaxNLocator(5)) - ax2.axes.set_zlim3d(np.min(dzi), np.max(dzi)+eps) - else: - if min_dzi == 0: - ax2.set_zticks([0]) - eps = 1e-9 + if min_dzr == 0: + ax1.axes.set_zlim3d(np.min(dzr), np.max(dzr)+1e-9) + else: + ax1.axes.set_zlim3d(auto=True) + ax1.zaxis.set_major_locator(MaxNLocator(5)) + ax1.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) + ax1.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) + ax1.set_zlabel("Real[rho]", fontsize=14) + for tick in ax1.zaxis.get_major_ticks(): + tick.label.set_fontsize(14) + if ax2 is not None: + ax2.set_xticks(np.arange(0.5, lx+0.5, 1)) + ax2.set_yticks(np.arange(0.5, ly+0.5, 1)) + min_dzi = np.min(dzi) + max_dzi = np.max(dzi) + if min_dzi != max_dzi: + eps = 0 + ax2.zaxis.set_major_locator(MaxNLocator(5)) ax2.axes.set_zlim3d(np.min(dzi), np.max(dzi)+eps) else: ax2.axes.set_zlim3d(auto=True) - ax2.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) - ax2.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) - ax2.set_zlabel("Imag[rho]", fontsize=14) - for tick in ax2.zaxis.get_major_ticks(): - tick.label.set_fontsize(14) - plt.suptitle(title, fontsize=16) - if get_backend() in ['module://ipykernel.pylab.backend_inline', - 'nbAgg']: - plt.close(fig) - return fig + if min_dzi == 0: + ax2.set_zticks([0]) + eps = 1e-9 + ax2.axes.set_zlim3d(np.min(dzi), np.max(dzi)+eps) + else: + ax2.axes.set_zlim3d(auto=True) + ax2.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) + ax2.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) + ax2.set_zlabel("Imag[rho]", fontsize=14) + for tick in ax2.zaxis.get_major_ticks(): + tick.label.set_fontsize(14) + fig.suptitle(title, fontsize=16) + if ax_real is None and ax_imag is None: + if get_backend() in ['module://ipykernel.pylab.backend_inline', + 'nbAgg']: + plt.close(fig) + return fig -def plot_state_paulivec(rho, title="", figsize=None, color=None): +def plot_state_paulivec(rho, title="", figsize=None, color=None, ax=None): """Plot the paulivec representation of a quantum state. Plot a bargraph of the mixed state rho over the pauli matrices @@ -369,8 +423,14 @@ def plot_state_paulivec(rho, title="", figsize=None, color=None): title (str): a string that represents the plot title figsize (tuple): Figure size in inches. color (list or str): Color of the expectation value bars. + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. + Returns: - matplotlib.Figure: The matplotlib.Figure of the visualization + matplotlib.Figure: The matplotlib.Figure of the visualization if the + ``ax`` kwarg is not set Raises: ImportError: Requires matplotlib. """ @@ -389,7 +449,12 @@ def plot_state_paulivec(rho, title="", figsize=None, color=None): ind = np.arange(numelem) # the x locations for the groups width = 0.5 # the width of the bars - fig, ax = plt.subplots(figsize=figsize) + if ax is None: + return_fig = True + fig, ax = plt.subplots(figsize=figsize) + else: + return_fig = False + fig = ax.get_figure() ax.grid(zorder=0, linewidth=1, linestyle='--') ax.bar(ind, values, width, color=color, zorder=2) ax.axhline(linewidth=1, color='k') @@ -404,10 +469,11 @@ def plot_state_paulivec(rho, title="", figsize=None, color=None): for tick in ax.xaxis.get_major_ticks()+ax.yaxis.get_major_ticks(): tick.label.set_fontsize(14) ax.set_title(title, fontsize=16) - if get_backend() in ['module://ipykernel.pylab.backend_inline', - 'nbAgg']: - plt.close(fig) - return fig + if return_fig: + if get_backend() in ['module://ipykernel.pylab.backend_inline', + 'nbAgg']: + plt.close(fig) + return fig def n_choose_k(n, k): @@ -469,7 +535,7 @@ def phase_to_rgb(complex_number): return rgb -def plot_state_qsphere(rho, figsize=None): +def plot_state_qsphere(rho, figsize=None, ax=None): """Plot the qsphere representation of a quantum state. Here, the size of the points is proportional to the probability of the corresponding term in the state and the color represents @@ -479,9 +545,13 @@ def plot_state_qsphere(rho, figsize=None): rho (ndarray): State vector or density matrix representation. of quantum state. figsize (tuple): Figure size in inches. + ax (matplotlib.axes.Axes): An optional Axes object to be used for + the visualization output. If none is specified a new matplotlib + Figure will be created and used. Additionally, if specified there + will be no returned Figure since it is redundant. Returns: - Figure: A matplotlib figure instance. + Figure: A matplotlib figure instance if the ``ax`` kwag is not set Raises: ImportError: Requires matplotlib. @@ -501,7 +571,13 @@ def plot_state_qsphere(rho, figsize=None): # get the eigenvectors and eigenvalues we, stateall = linalg.eigh(rho) - fig = plt.figure(figsize=figsize) + if ax is None: + return_fig = True + fig = plt.figure(figsize=figsize) + else: + return_fig = False + fig = ax.get_figure() + gs = gridspec.GridSpec(nrows=3, ncols=3) ax = fig.add_subplot(gs[0:3, 0:3], projection='3d') @@ -635,10 +711,11 @@ def plot_state_qsphere(rho, figsize=None): ax2.text(0, -offset, r'$3\pi/2$', horizontalalignment='center', verticalalignment='center', fontsize=14) - if get_backend() in ['module://ipykernel.pylab.backend_inline', - 'nbAgg']: - plt.close(fig) - return fig + if return_fig: + if get_backend() in ['module://ipykernel.pylab.backend_inline', + 'nbAgg']: + plt.close(fig) + return fig def generate_facecolors(x, y, z, dx, dy, dz, color): diff --git a/releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml b/releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml new file mode 100644 index 000000000000..064ae996ea25 --- /dev/null +++ b/releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml @@ -0,0 +1,37 @@ +--- +features: + - | + An ``ax`` kwarg has been added to the following visualization functions: + + * ``qiskit.visualization.plot_histogram`` + * ``qiskit.visualization.plot_state_paulivec`` + * ``qiskit.visualization.plot_state_qsphere`` + * ``qiskit.visualization.circuit_drawer`` (``mpl`` backend only) + * ``qiskit.QuantumCircuit.draw`` (``mpl`` backend only) + + This kwarg is used to pass in a ``matplotlib.axes.Axes`` object to the + visualization functions. This enables integrating these visualization + functions into a larger visualization workflow. Also, if an `ax` kwarg is + specified then there is no return from the visualization functions. + + - | + An ``ax_real`` and ``ax_imag`` kwarg has been added to the + following visualization functions: + + * ``qiskit.visualization.plot_state_hinton`` + * ``qiskit.visualization.plot_state_city`` + + These new kargs work the same as the newly added ``ax`` kwargs for other + visualization functions. However because these plots use two axes (one for + the real component, the other for the imaginary component). Having two + kwargs also provides the flexibility to only generate a visualization for + one of the components instead of always doing both. For example:: + + from matplotlib import pyplot as plt + from qiskit.visualization import plot_state_hinton + + ax = plt.gca() + + plot_state_hinton(psi, ax_real=ax) + + will only generate a plot of the real component. From 3383d160411e219f376f2ee18c2fbdfc56acc13f Mon Sep 17 00:00:00 2001 From: Luciano Date: Tue, 8 Oct 2019 09:25:45 -0400 Subject: [PATCH 05/37] remove disable=invalid-name in test/python/test_dagcircuit.py (#3221) --- test/python/test_dagcircuit.py | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/test/python/test_dagcircuit.py b/test/python/test_dagcircuit.py index b477f1bab9a1..72947817b3ff 100644 --- a/test/python/test_dagcircuit.py +++ b/test/python/test_dagcircuit.py @@ -11,7 +11,6 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name """Test for the DAGCircuit object""" @@ -680,10 +679,10 @@ def test_layers_maintains_order(self): qc = QuantumCircuit(qr) qc.x(0) dag = circuit_to_dag(qc) - d1 = list(dag.layers())[0]['graph'] - d1.apply_operation_back(IdGate(), [qr[0]], []) + dag1 = list(dag.layers())[0]['graph'] + dag1.apply_operation_back(IdGate(), [qr[0]], []) - comp = [(nd.type, nd.name, nd._node_id) for nd in d1.topological_nodes()] + comp = [(nd.type, nd.name, nd._node_id) for nd in dag1.topological_nodes()] self.assertEqual(comp, truth) @@ -983,20 +982,20 @@ def test_dag_depth_empty(self): def test_dag_depth1(self): """Test DAG depth #1 """ - q1 = QuantumRegister(3, 'q1') - q2 = QuantumRegister(2, 'q2') + qr1 = QuantumRegister(3, 'q1') + qr2 = QuantumRegister(2, 'q2') c = ClassicalRegister(5, 'c') - qc = QuantumCircuit(q1, q2, c) - qc.h(q1[0]) - qc.h(q1[1]) - qc.h(q1[2]) - qc.h(q2[0]) - qc.h(q2[1]) - qc.ccx(q2[1], q1[0], q2[0]) - qc.cx(q1[0], q1[1]) - qc.cx(q1[1], q2[1]) - qc.cx(q2[1], q1[2]) - qc.cx(q1[2], q2[0]) + qc = QuantumCircuit(qr1, qr2, c) + qc.h(qr1[0]) + qc.h(qr1[1]) + qc.h(qr1[2]) + qc.h(qr2[0]) + qc.h(qr2[1]) + qc.ccx(qr2[1], qr1[0], qr2[0]) + qc.cx(qr1[0], qr1[1]) + qc.cx(qr1[1], qr2[1]) + qc.cx(qr2[1], qr1[2]) + qc.cx(qr1[2], qr2[0]) dag = circuit_to_dag(qc) self.assertEqual(dag.depth(), 6) From 8f9dbc9a892d513caa284d89c1e626371224437a Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 9 Oct 2019 00:01:17 -0400 Subject: [PATCH 06/37] Add warning on jupyter imports if matplotlib isn't found (#3193) Normally if you're importing the qiskit jupyter magics from inside a jupyter environment you'll want to use the widgets with matplotlib. If you're running this and you forgot to install matplotlib it's not exactly clear what happened. Especially if you're following a tutorial or guide that uses qiskit-backend-overview and it just raises a UsageError because it was never initialized when you don't have matplotlib installed. This commit attempts to mitigate this by raising a runtime warning if the backend overview magic registration was skipped because matplotlib wasn't found explaining that you need to have matplotlib for that magic. --- qiskit/tools/jupyter/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qiskit/tools/jupyter/__init__.py b/qiskit/tools/jupyter/__init__.py index d57efcca3ff1..f976dd3216ac 100644 --- a/qiskit/tools/jupyter/__init__.py +++ b/qiskit/tools/jupyter/__init__.py @@ -15,6 +15,8 @@ """Initialize the Jupyter routines. """ +import warnings + from IPython import get_ipython # pylint: disable=import-error from qiskit.tools.visualization import HAS_MATPLOTLIB from .jupyter_magics import (ProgressBarMagic, StatusMagic) @@ -46,3 +48,9 @@ HTML_FORMATTER = _IP.display_formatter.formatters['text/html'] # Make _backend_monitor the html repr for IBM Q backends HTML_FORMATTER.for_type(IBMQBackend, _backend_monitor) + else: + warnings.warn( + "matplotlib can't be found, ensure you have matplotlib and other " + "visualization dependencies installed. You can run " + "'!pip install qiskit-terra[visualization]' to install it from " + "jupyter", RuntimeWarning) From 12ec7ad5da826ab0f56c014e1036eabdf46af263 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 9 Oct 2019 09:12:00 -0400 Subject: [PATCH 07/37] Bump lint jobs to latest stable python version (#3189) * Bump lint jobs to latest stable python version The python version used for pylint can effect results returned, pylint is very sensitive to the environment it's run in. Running on python 3.5 which is the oldest supported python version masks issues on newer python versions. For example, if you have python 3.7 installed locally lint will always fail becaues of changes to the stdlib. This starts to become more of an issue as a particular python version ages, since the user and contributor base moves to newer versions of python. This commit changes the version of pylint we run in CI to 3.7 to tests the leading edge instead of the trailing so we keep our pylint testing up to date with the python versions we support. Related to #3127 and #1179 * Add **kwargs to avoid linter error The abc.ABCMeta class defition added a **kwargs to the __new__ method definition in python 3.6. This breaks the linter because the qiskit.pulse.commands.command.MetaCount subclass function signature differs from stdlib on newer python versions. This works around this by adding a throwaway kwargs argument to the signature so that we pass pylint's blind pedantry when running on newer python versions, but still work with python 3.5. --- azure-pipelines.yml | 4 ++-- qiskit/pulse/commands/command.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index da7faf337873..e4cf1d20be2e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -161,8 +161,8 @@ stages: condition: not(startsWith(variables['Build.SourceBranch'], 'refs/tags')) strategy: matrix: - Python35: - python.version: '3.5' + Python37: + python.version: '3.7' steps: - task: UsePythonVersion@0 inputs: diff --git a/qiskit/pulse/commands/command.py b/qiskit/pulse/commands/command.py index a5ebeb1a1534..acb2a432765b 100644 --- a/qiskit/pulse/commands/command.py +++ b/qiskit/pulse/commands/command.py @@ -29,7 +29,7 @@ class MetaCount(ABCMeta): """Meta class to count class instances.""" - def __new__(mcs, name, bases, namespace): + def __new__(mcs, name, bases, namespace, **_): new_cls = super(MetaCount, mcs).__new__(mcs, name, bases, namespace) new_cls.instances_counter = 0 return new_cls From 51dfa28383c3f0a262db3b1cf14591844cd7a62e Mon Sep 17 00:00:00 2001 From: Ali Javadi-Abhari Date: Wed, 9 Oct 2019 10:18:47 -0400 Subject: [PATCH 08/37] fix and add mock backend properties (#3226) * update pok props * add almaden, johannesburg, singapore, vigo * add to __init * expand randomized testing * lint --- qiskit/test/mock/__init__.py | 5 ++ qiskit/test/mock/fake_almaden.py | 73 +++++++++++++++++++ qiskit/test/mock/fake_boeblingen.py | 2 +- qiskit/test/mock/fake_johannesburg.py | 71 ++++++++++++++++++ qiskit/test/mock/fake_poughkeepsie.py | 2 +- qiskit/test/mock/fake_singapore.py | 73 +++++++++++++++++++ qiskit/test/mock/fake_vigo.py | 62 ++++++++++++++++ qiskit/test/mock/props_almaden.json | 1 + qiskit/test/mock/props_boeblingen.json | 2 +- qiskit/test/mock/props_johannesburg.json | 1 + qiskit/test/mock/props_poughkeepsie.json | 2 +- qiskit/test/mock/props_singapore.json | 1 + qiskit/test/mock/props_vigo.py | 62 ++++++++++++++++ .../randomized/test_transpiler_equivalence.py | 12 ++- 14 files changed, 361 insertions(+), 8 deletions(-) create mode 100644 qiskit/test/mock/fake_almaden.py create mode 100644 qiskit/test/mock/fake_johannesburg.py create mode 100644 qiskit/test/mock/fake_singapore.py create mode 100644 qiskit/test/mock/fake_vigo.py create mode 100644 qiskit/test/mock/props_almaden.json create mode 100644 qiskit/test/mock/props_johannesburg.json create mode 100644 qiskit/test/mock/props_singapore.json create mode 100644 qiskit/test/mock/props_vigo.py diff --git a/qiskit/test/mock/__init__.py b/qiskit/test/mock/__init__.py index 1765762095bc..5433aad02398 100644 --- a/qiskit/test/mock/__init__.py +++ b/qiskit/test/mock/__init__.py @@ -32,10 +32,15 @@ from .fake_yorktown import FakeYorktown from .fake_tenerife import FakeTenerife from .fake_ourense import FakeOurense +from .fake_vigo import FakeVigo from .fake_melbourne import FakeMelbourne from .fake_rueschlikon import FakeRueschlikon from .fake_tokyo import FakeTokyo from .fake_poughkeepsie import FakePoughkeepsie +from .fake_almaden import FakeAlmaden +from .fake_singapore import FakeSingapore +from .fake_johannesburg import FakeJohannesburg from .fake_boeblingen import FakeBoeblingen + from .fake_openpulse_2q import FakeOpenPulse2Q diff --git a/qiskit/test/mock/fake_almaden.py b/qiskit/test/mock/fake_almaden.py new file mode 100644 index 000000000000..cfc02345c7cc --- /dev/null +++ b/qiskit/test/mock/fake_almaden.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Almaden device (20 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from .fake_backend import FakeBackend + + +class FakeAlmaden(FakeBackend): + """A fake Almaden backend.""" + + def __init__(self): + """ + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + """ + cmap = [[0, 1], [1, 0], [1, 2], [1, 6], [2, 1], [2, 3], [3, 2], + [3, 4], [3, 8], [4, 3], [5, 6], [5, 10], [6, 1], [6, 5], + [6, 7], [7, 6], [7, 8], [7, 12], [8, 3], [8, 7], [8, 9], + [9, 8], [9, 14], [10, 5], [10, 11], [11, 10], [11, 12], + [11, 16], [12, 7], [12, 11], [12, 13], [13, 12], [13, 14], + [13, 18], [14, 9], [14, 13], [15, 16], [16, 11], [16, 15], + [16, 17], [17, 16], [17, 18], [18, 13], [18, 17], [18, 19], + [19, 18]] + + configuration = QasmBackendConfiguration( + backend_name='fake_almaden', + backend_version='0.0.0', + n_qubits=20, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=True, + max_shots=8192, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 10/08/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_almaden.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/qiskit/test/mock/fake_boeblingen.py b/qiskit/test/mock/fake_boeblingen.py index 7577a43b75ef..7c01c338e4db 100644 --- a/qiskit/test/mock/fake_boeblingen.py +++ b/qiskit/test/mock/fake_boeblingen.py @@ -64,7 +64,7 @@ def __init__(self): super().__init__(configuration) def properties(self): - """Returns a snapshot of device properties as recorded on 8/30/19. + """Returns a snapshot of device properties as recorded on 10/08/19. """ dirname = os.path.dirname(__file__) filename = "props_boeblingen.json" diff --git a/qiskit/test/mock/fake_johannesburg.py b/qiskit/test/mock/fake_johannesburg.py new file mode 100644 index 000000000000..3b7aa64e10f6 --- /dev/null +++ b/qiskit/test/mock/fake_johannesburg.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Johannesburg device (53 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from .fake_backend import FakeBackend + + +class FakeJohannesburg(FakeBackend): + """A fake Johannesburg backend.""" + + def __init__(self): + """ + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + """ + cmap = [[0, 1], [0, 5], [1, 0], [1, 2], [2, 1], [2, 3], [3, 2], [3, 4], [4, 3], [4, 9], + [5, 0], [5, 6], [5, 10], [6, 5], [6, 7], [7, 6], [7, 8], [7, 12], [8, 7], [8, 9], + [9, 4], [9, 8], [9, 14], [10, 5], [10, 11], [10, 15], [11, 10], [11, 12], [12, 7], + [12, 11], [12, 13], [13, 12], [13, 14], [14, 9], [14, 13], [14, 19], [15, 10], + [15, 16], [16, 15], [16, 17], [17, 16], [17, 18], [18, 17], [18, 19], [19, 14], + [19, 18]] + + configuration = QasmBackendConfiguration( + backend_name='fake_poughkeepsie', + backend_version='0.0.0', + n_qubits=20, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=True, + max_shots=8192, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 10/08/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_poughkeepsie.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/qiskit/test/mock/fake_poughkeepsie.py b/qiskit/test/mock/fake_poughkeepsie.py index 6366f086343a..1eca96f7bf89 100644 --- a/qiskit/test/mock/fake_poughkeepsie.py +++ b/qiskit/test/mock/fake_poughkeepsie.py @@ -62,7 +62,7 @@ def __init__(self): super().__init__(configuration) def properties(self): - """Returns a snapshot of device properties as recorded on 8/30/19. + """Returns a snapshot of device properties as recorded on 10/08/19. """ dirname = os.path.dirname(__file__) filename = "props_poughkeepsie.json" diff --git a/qiskit/test/mock/fake_singapore.py b/qiskit/test/mock/fake_singapore.py new file mode 100644 index 000000000000..7cf1e7dd1ebc --- /dev/null +++ b/qiskit/test/mock/fake_singapore.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Boeblingen device (20 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from .fake_backend import FakeBackend + + +class FakeSingapore(FakeBackend): + """A fake Singapore backend.""" + + def __init__(self): + """ + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + """ + cmap = [[0, 1], [1, 0], [1, 2], [1, 6], [2, 1], [2, 3], [3, 2], + [3, 4], [3, 8], [4, 3], [5, 6], [5, 10], [6, 1], [6, 5], + [6, 7], [7, 6], [7, 8], [7, 12], [8, 3], [8, 7], [8, 9], + [9, 8], [9, 14], [10, 5], [10, 11], [11, 10], [11, 12], + [11, 16], [12, 7], [12, 11], [12, 13], [13, 12], [13, 14], + [13, 18], [14, 9], [14, 13], [15, 16], [16, 11], [16, 15], + [16, 17], [17, 16], [17, 18], [18, 13], [18, 17], [18, 19], + [19, 18]] + + configuration = QasmBackendConfiguration( + backend_name='fake_singapore', + backend_version='0.0.0', + n_qubits=20, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=True, + max_shots=8192, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 10/08/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_singapore.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/qiskit/test/mock/fake_vigo.py b/qiskit/test/mock/fake_vigo.py new file mode 100644 index 000000000000..26dd752fc6cf --- /dev/null +++ b/qiskit/test/mock/fake_vigo.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Vigo device (5 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from .fake_backend import FakeBackend + + +class FakeVigo(FakeBackend): + """A fake 5 qubit backend.""" + + def __init__(self): + """ + 0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 + """ + cmap = [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 4], [4, 3]] + + configuration = QasmBackendConfiguration( + backend_name='fake_vigo', + backend_version='0.0.0', + n_qubits=5, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=False, + max_shots=65536, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 8/30/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_vigo.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/qiskit/test/mock/props_almaden.json b/qiskit/test/mock/props_almaden.json new file mode 100644 index 000000000000..e09344853777 --- /dev/null +++ b/qiskit/test/mock/props_almaden.json @@ -0,0 +1 @@ +{"general": [], "qubits": [[{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 113.3795751321217, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 150.28477205442593, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.857281983598487, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.05499999999999994, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.08333333333333337, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.02666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 105.66416929095271, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 18.38410012677542, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.971793150372549, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04833333333333334, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.06666666666666665, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.03, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 99.7234930105941, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 21.462023649422687, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 5.071149476055804, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.06333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.006666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 87.86876354457614, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 55.001267752549474, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.926937969330278, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.036666666666666625, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.02666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T08:27:00+00:00", "unit": "\u00b5s", "value": 101.51294276467692, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 23.343141049316454, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.719739345221021, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 83.04658147471106, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 117.99853405913042, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.775029072397078, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04500000000000004, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.08333333333333337, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.006666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 124.94090943840628, "name": "T1"}, {"date": "2019-10-08T08:21:33+00:00", "unit": "\u00b5s", "value": 41.53937920218258, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.906384120317435, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.07333333333333325, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.09999999999999998, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 33.22869346596583, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 13.675961047735335, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.79662359453284, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04499999999999993, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.06333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.02666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 64.93841415181943, "name": "T1"}, {"date": "2019-10-08T08:21:33+00:00", "unit": "\u00b5s", "value": 87.61256223452315, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.8576605551920276, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.023333333333333317, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.033333333333333326, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.013333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 93.7867700394655, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 192.50000251062167, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.659275115145499, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.020000000000000018, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.036666666666666625, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 114.73977844647561, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 11.691873206915197, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.979151194108445, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.05166666666666675, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.09666666666666668, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.006666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 46.82592471456916, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 83.69092323968601, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.922140269634184, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.021666666666666723, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.013333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T08:27:00+00:00", "unit": "\u00b5s", "value": 52.7244604478663, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 46.41161763294124, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.834130717092513, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.02833333333333332, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 104.84280045120985, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 172.6443272130343, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.953395340841351, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.021666666666666723, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.036666666666666625, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.006666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 107.09968131373412, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 53.72517902560914, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.75043432810736, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04166666666666663, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.07999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 119.81914190803826, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 170.75473030671495, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.656960806445796, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.023333333333333317, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.033333333333333326, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.013333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 85.78589261348652, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 88.93183950008954, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.8493325715400335, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.02833333333333332, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 105.45362547865902, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 88.03702871710159, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.7850052011828605, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.050000000000000044, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.08666666666666667, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.013333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T08:27:00+00:00", "unit": "\u00b5s", "value": 97.13741598514389, "name": "T1"}, {"date": "2019-10-08T08:21:00+00:00", "unit": "\u00b5s", "value": 108.71810987380148, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.826352274844338, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.050000000000000044, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.07666666666666666, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.023333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:19:48+00:00", "unit": "\u00b5s", "value": 132.39063671088658, "name": "T1"}, {"date": "2019-10-08T08:20:26+00:00", "unit": "\u00b5s", "value": 212.7728386342524, "name": "T2"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "GHz", "value": 4.713156080438663, "name": "frequency"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.04166666666666663, "name": "readout_error"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.07999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:19:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0005295247303964942, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0005295247303964942, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010590494607929885, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0003306101893089778, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0003306101893089778, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0006612203786179556, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0005406845644677221, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0005406845644677221, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010813691289354441, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0009069681997705605, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0009069681997705605, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.001813936399541121, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0011366551187410982, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0011366551187410982, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0022733102374821964, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0003913702412179343, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0003913702412179343, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0007827404824358686, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0005301138939858822, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0005301138939858822, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0010602277879717644, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010217987258482762, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010217987258482762, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0020435974516965524, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0008059908037876117, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0008059908037876117, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-08T08:23:45+00:00", "unit": "", "value": 0.0016119816075752234, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0003753304106910418, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0003753304106910418, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0007506608213820836, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005205904954868159, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005205904954868159, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0010411809909736318, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.00048084747779095487, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.00048084747779095487, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0009616949555819097, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0011724890409250469, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0011724890409250469, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0023449780818500937, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.000597846450074657, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.000597846450074657, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.001195692900149314, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005726914344263584, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005726914344263584, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.001145382868852717, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0006331167468516876, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0006331167468516876, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0012662334937033751, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005300176749858641, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0005300176749858641, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0010600353499717282, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010868413863705075, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0010868413863705075, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.002173682772741015, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0013081972476988721, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0013081972476988721, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:57+00:00", "unit": "", "value": 0.0026163944953977443, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.00050044063455184, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.00050044063455184, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-08T08:22:03+00:00", "unit": "", "value": 0.00100088126910368, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T08:24:59+00:00", "unit": "", "value": 0.010649169010966214, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-08T08:24:59+00:00", "unit": "", "value": 0.010649169010966214, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T08:30:17+00:00", "unit": "", "value": 0.012231293393077186, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [1, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T08:27:46+00:00", "unit": "", "value": 0.009538476217756053, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 277.3333333333333, "name": "gate_length"}], "name": "cx1_6"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T08:30:17+00:00", "unit": "", "value": 0.012231293393077186, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T08:32:57+00:00", "unit": "", "value": 0.029249833657427865, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 497.77777777777777, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T08:32:57+00:00", "unit": "", "value": 0.029249833657427865, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 497.77777777777777, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-08T08:38:12+00:00", "unit": "", "value": 0.028813294663382394, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [3, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T08:35:31+00:00", "unit": "", "value": 0.013091620718991448, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 277.3333333333333, "name": "gate_length"}], "name": "cx3_8"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T08:38:12+00:00", "unit": "", "value": 0.028813294663382394, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T08:40:44+00:00", "unit": "", "value": 0.02142360836276308, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 547.5555555555555, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T08:51:35+00:00", "unit": "", "value": 0.014759397002595542, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 497.77777777777777, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T08:27:46+00:00", "unit": "", "value": 0.009538476217756053, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 277.3333333333333, "name": "gate_length"}], "name": "cx6_1"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T08:40:44+00:00", "unit": "", "value": 0.02142360836276308, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 547.5555555555555, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T08:43:38+00:00", "unit": "", "value": 0.02270468880297208, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T08:43:38+00:00", "unit": "", "value": 0.02270468880297208, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T08:46:28+00:00", "unit": "", "value": 0.021679080407588175, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T09:02:27+00:00", "unit": "", "value": 0.02654598416338272, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T08:35:31+00:00", "unit": "", "value": 0.013091620718991448, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 277.3333333333333, "name": "gate_length"}], "name": "cx8_3"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T08:46:28+00:00", "unit": "", "value": 0.021679080407588175, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T08:49:01+00:00", "unit": "", "value": 0.023184292522825223, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 625.7777777777777, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T08:49:01+00:00", "unit": "", "value": 0.023184292522825223, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 625.7777777777777, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T09:08:07+00:00", "unit": "", "value": 0.008601183314818767, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T08:51:35+00:00", "unit": "", "value": 0.014759397002595542, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 497.77777777777777, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T08:54:08+00:00", "unit": "", "value": 0.013647151734394514, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T08:54:08+00:00", "unit": "", "value": 0.013647151734394514, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T08:56:39+00:00", "unit": "", "value": 0.015917239757574114, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [11, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T08:59:19+00:00", "unit": "", "value": 0.01475356313288248, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx11_16"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T09:02:27+00:00", "unit": "", "value": 0.02654598416338272, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T08:56:39+00:00", "unit": "", "value": 0.015917239757574114, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T09:05:00+00:00", "unit": "", "value": 0.018841209791559038, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 355.55555555555554, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T09:05:00+00:00", "unit": "", "value": 0.018841209791559038, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 355.55555555555554, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T09:10:45+00:00", "unit": "", "value": 0.011703615402504003, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 234.66666666666666, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [13, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T09:19:00+00:00", "unit": "", "value": 0.01982481359304153, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 526.2222222222222, "name": "gate_length"}], "name": "cx13_18"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T09:08:07+00:00", "unit": "", "value": 0.008601183314818767, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T09:10:45+00:00", "unit": "", "value": 0.011703615402504003, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 234.66666666666666, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T09:13:19+00:00", "unit": "", "value": 0.016639771737897047, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 362.66666666666663, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T08:59:19+00:00", "unit": "", "value": 0.01475356313288248, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx16_11"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-08T09:13:19+00:00", "unit": "", "value": 0.016639771737897047, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 362.66666666666663, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T09:16:00+00:00", "unit": "", "value": 0.012589810300146581, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 256.0, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T09:16:00+00:00", "unit": "", "value": 0.012589810300146581, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 256.0, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T09:21:33+00:00", "unit": "", "value": 0.02873879493425166, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 611.5555555555555, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T09:19:00+00:00", "unit": "", "value": 0.01982481359304153, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 526.2222222222222, "name": "gate_length"}], "name": "cx18_13"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T09:21:33+00:00", "unit": "", "value": 0.02873879493425166, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 611.5555555555555, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-08T09:24:09+00:00", "unit": "", "value": 0.014819088647043482, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T09:24:09+00:00", "unit": "", "value": 0.014819088647043482, "name": "gate_error"}, {"date": "2019-10-08T09:24:09+00:00", "unit": "ns", "value": 320.0, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.2.7", "backend_name": "ibmq_almaden", "last_update_date": "2019-10-08T09:24:09+00:00"} \ No newline at end of file diff --git a/qiskit/test/mock/props_boeblingen.json b/qiskit/test/mock/props_boeblingen.json index e28a4881191e..87b22de9cea6 100644 --- a/qiskit/test/mock/props_boeblingen.json +++ b/qiskit/test/mock/props_boeblingen.json @@ -1 +1 @@ -{"backend_version": "1.0.0", "general": [], "last_update_date": "2019-08-30T13:14:13+00:00", "backend_name": "ibmq_boeblingen", "qubits": [[{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 107.97530614445132, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 114.15729659431243, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 5.046895191029969, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.15666666666666673, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.16333333333333333, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.15, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 75.44976847673493, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 127.0877700897439, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.847305077416446, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.023333333333333317, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 84.64059498023846, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 133.41613041993153, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.7036519995821005, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.030000000000000027, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.013333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 57.728535166569706, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 60.08028904105931, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.774347214271136, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.018333333333333313, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03333333333333333, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.0033333333333332993, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 143.70232409235882, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 157.74497345706476, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.366185814471289, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03499999999999992, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.056666666666666664, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.013333333333333308, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 96.7783088841872, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 89.35541902647842, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.911456251532696, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.020000000000000018, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 71.66903807933649, "name": "T1"}, {"date": "2019-08-30T09:03:25+00:00", "unit": "\u00b5s", "value": 120.0040609752206, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.726874203551665, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.04833333333333334, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.06333333333333334, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.033333333333333326, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 68.07952818419147, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 78.01999535073391, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.545991827367429, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.05333333333333334, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.01666666666666672, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 82.47730460429122, "name": "T1"}, {"date": "2019-08-30T09:03:25+00:00", "unit": "\u00b5s", "value": 95.40864930290584, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.658584048783054, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.05500000000000005, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.06, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.050000000000000044, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 34.69393960944365, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 65.98320249784743, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.766584517472267, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.040000000000000036, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03333333333333333, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 71.49483336493475, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 94.10958364309236, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.955302923201101, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.026666666666666616, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.010000000000000009, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 87.26857204465122, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 95.1885471398754, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.521707498247809, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.05833333333333335, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.08333333333333337, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03333333333333333, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 42.092944642616544, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 61.094998108522745, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.7325400713601224, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.07166666666666677, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.10333333333333339, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.04, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 62.90091196194981, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 62.913555400966565, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.635516020122204, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.030000000000000027, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.03333333333333333, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.026666666666666616, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 58.23724266575284, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 98.95799653269415, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.555095359905494, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.033333333333333326, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.023333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 93.97455085907745, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 98.12200834851033, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.582258494999936, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.020000000000000018, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.036666666666666625, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 92.86604977133901, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 63.72578097349391, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.755626340040541, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.021666666666666723, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.033333333333333326, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 133.11920422719132, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 223.3300007581424, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.58983457593373, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.021666666666666723, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.0033333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 110.1810576419793, "name": "T1"}, {"date": "2019-08-30T09:02:17+00:00", "unit": "\u00b5s", "value": 77.90912845830415, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 4.752409903470687, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.04833333333333334, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.06666666666666667, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas1_prep0"}], [{"date": "2019-08-30T08:59:29+00:00", "unit": "\u00b5s", "value": 103.15777115231872, "name": "T1"}, {"date": "2019-08-30T09:01:13+00:00", "unit": "\u00b5s", "value": 78.0210169306286, "name": "T2"}, {"date": "2019-08-30T13:14:13+00:00", "unit": "GHz", "value": 5.0350403977432, "name": "frequency"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.09166666666666667, "name": "readout_error"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.07999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-08-30T08:58:25+00:00", "unit": "", "value": 0.10333333333333333, "name": "prob_meas1_prep0"}]], "gates": [{"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003008485015370205, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493584+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [0], "gate": "id", "name": "id_0"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493621+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [0], "gate": "u1", "name": "u1_0"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003008485015370205, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493651+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [0], "gate": "u2", "name": "u2_0"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.000601697003074041, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493682+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [0], "gate": "u3", "name": "u3_0"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0002787882679964014, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493750+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [1], "gate": "id", "name": "id_1"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493779+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [1], "gate": "u1", "name": "u1_1"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0002787882679964014, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493808+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [1], "gate": "u2", "name": "u2_1"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005575765359928028, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493838+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [1], "gate": "u3", "name": "u3_1"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003184181634786153, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493899+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [2], "gate": "id", "name": "id_2"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493927+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [2], "gate": "u1", "name": "u1_2"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003184181634786153, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493955+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [2], "gate": "u2", "name": "u2_2"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0006368363269572306, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.493983+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [2], "gate": "u3", "name": "u3_2"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005694081535009258, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494043+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [3], "gate": "id", "name": "id_3"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494071+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [3], "gate": "u1", "name": "u1_3"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005694081535009258, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494100+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [3], "gate": "u2", "name": "u2_3"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0011388163070018516, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494130+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [3], "gate": "u3", "name": "u3_3"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00021070975546566667, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494189+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [4], "gate": "id", "name": "id_4"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494216+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [4], "gate": "u1", "name": "u1_4"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00021070975546566667, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494243+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [4], "gate": "u2", "name": "u2_4"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00042141951093133335, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494270+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [4], "gate": "u3", "name": "u3_4"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0005345490084839892, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494332+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [5], "gate": "id", "name": "id_5"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494359+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [5], "gate": "u1", "name": "u1_5"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0005345490084839892, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494387+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [5], "gate": "u2", "name": "u2_5"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0010690980169679783, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494416+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [5], "gate": "u3", "name": "u3_5"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0003341545089920103, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494476+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [6], "gate": "id", "name": "id_6"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494503+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [6], "gate": "u1", "name": "u1_6"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0003341545089920103, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494530+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [6], "gate": "u2", "name": "u2_6"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0006683090179840206, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494560+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [6], "gate": "u3", "name": "u3_6"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00023619723634750009, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494627+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [7], "gate": "id", "name": "id_7"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494655+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [7], "gate": "u1", "name": "u1_7"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00023619723634750009, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494682+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [7], "gate": "u2", "name": "u2_7"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00047239447269500017, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494711+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [7], "gate": "u3", "name": "u3_7"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.00027940531836611064, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494770+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [8], "gate": "id", "name": "id_8"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494798+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [8], "gate": "u1", "name": "u1_8"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.00027940531836611064, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494825+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [8], "gate": "u2", "name": "u2_8"}, {"parameters": [{"date": "2019-08-30T09:07:30+00:00", "unit": "", "value": 0.0005588106367322213, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494854+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [8], "gate": "u3", "name": "u3_8"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00044463865623353054, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494916+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [9], "gate": "id", "name": "id_9"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494943+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [9], "gate": "u1", "name": "u1_9"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00044463865623353054, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494970+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [9], "gate": "u2", "name": "u2_9"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0008892773124670611, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.494998+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [9], "gate": "u3", "name": "u3_9"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005379546577442184, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495058+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [10], "gate": "id", "name": "id_10"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495085+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [10], "gate": "u1", "name": "u1_10"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005379546577442184, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495112+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [10], "gate": "u2", "name": "u2_10"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0010759093154884367, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495140+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [10], "gate": "u3", "name": "u3_10"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0007325675117130429, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495199+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [11], "gate": "id", "name": "id_11"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495227+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [11], "gate": "u1", "name": "u1_11"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0007325675117130429, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495254+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [11], "gate": "u2", "name": "u2_11"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0014651350234260857, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495282+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [11], "gate": "u3", "name": "u3_11"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0006746405095814568, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495342+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [12], "gate": "id", "name": "id_12"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495369+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [12], "gate": "u1", "name": "u1_12"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0006746405095814568, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495396+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [12], "gate": "u2", "name": "u2_12"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0013492810191629136, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495424+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [12], "gate": "u3", "name": "u3_12"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0005248325882097881, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495484+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [13], "gate": "id", "name": "id_13"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495512+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [13], "gate": "u1", "name": "u1_13"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0005248325882097881, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495538+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [13], "gate": "u2", "name": "u2_13"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0010496651764195762, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495567+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [13], "gate": "u3", "name": "u3_13"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005646280536121856, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495631+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [14], "gate": "id", "name": "id_14"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495660+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [14], "gate": "u1", "name": "u1_14"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005646280536121856, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495687+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [14], "gate": "u2", "name": "u2_14"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0011292561072243712, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495715+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [14], "gate": "u3", "name": "u3_14"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00038152913525714937, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495775+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [15], "gate": "id", "name": "id_15"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495802+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [15], "gate": "u1", "name": "u1_15"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.00038152913525714937, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495828+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [15], "gate": "u2", "name": "u2_15"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0007630582705142987, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495855+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [15], "gate": "u3", "name": "u3_15"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.00029714500259405514, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495919+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [16], "gate": "id", "name": "id_16"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495947+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [16], "gate": "u1", "name": "u1_16"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.00029714500259405514, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.495974+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [16], "gate": "u2", "name": "u2_16"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0005942900051881103, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496003+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [16], "gate": "u3", "name": "u3_16"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003064726680562512, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496062+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [17], "gate": "id", "name": "id_17"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496089+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [17], "gate": "u1", "name": "u1_17"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0003064726680562512, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496115+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [17], "gate": "u2", "name": "u2_17"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0006129453361125024, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496143+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [17], "gate": "u3", "name": "u3_17"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.00039879905400754456, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496201+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [18], "gate": "id", "name": "id_18"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496229+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [18], "gate": "u1", "name": "u1_18"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.00039879905400754456, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496256+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [18], "gate": "u2", "name": "u2_18"}, {"parameters": [{"date": "2019-08-30T09:06:15+00:00", "unit": "", "value": 0.0007975981080150891, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496285+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [18], "gate": "u3", "name": "u3_18"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0008703153899711911, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496346+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [19], "gate": "id", "name": "id_19"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496372+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [19], "gate": "u1", "name": "u1_19"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0008703153899711911, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496399+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "qubits": [19], "gate": "u2", "name": "u2_19"}, {"parameters": [{"date": "2019-08-30T09:05:09+00:00", "unit": "", "value": 0.0017406307799423821, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496427+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "qubits": [19], "gate": "u3", "name": "u3_19"}, {"parameters": [{"date": "2019-08-30T09:16:49+00:00", "unit": "", "value": 0.0104141314361684, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496665+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [0, 1], "gate": "cx", "name": "cx0_1"}, {"parameters": [{"date": "2019-08-30T09:16:49+00:00", "unit": "", "value": 0.0104141314361684, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496665+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [1, 0], "gate": "cx", "name": "cx1_0"}, {"parameters": [{"date": "2019-08-30T09:20:42+00:00", "unit": "", "value": 0.007668238329079091, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497667+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [1, 2], "gate": "cx", "name": "cx1_2"}, {"parameters": [{"date": "2019-08-30T09:54:20+00:00", "unit": "", "value": 0.015080981392393444, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498011+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [1, 6], "gate": "cx", "name": "cx1_6"}, {"parameters": [{"date": "2019-08-30T09:20:42+00:00", "unit": "", "value": 0.007668238329079091, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497667+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [2, 1], "gate": "cx", "name": "cx2_1"}, {"parameters": [{"date": "2019-08-30T09:34:58+00:00", "unit": "", "value": 0.009720652404132779, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497736+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "qubits": [2, 3], "gate": "cx", "name": "cx2_3"}, {"parameters": [{"date": "2019-08-30T09:34:58+00:00", "unit": "", "value": 0.009720652404132779, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497736+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "qubits": [3, 2], "gate": "cx", "name": "cx3_2"}, {"parameters": [{"date": "2019-08-30T09:48:51+00:00", "unit": "", "value": 0.02419997272852248, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497874+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "qubits": [3, 4], "gate": "cx", "name": "cx3_4"}, {"parameters": [{"date": "2019-08-30T10:05:23+00:00", "unit": "", "value": 0.008794521499873004, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497805+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "qubits": [3, 8], "gate": "cx", "name": "cx3_8"}, {"parameters": [{"date": "2019-08-30T09:48:51+00:00", "unit": "", "value": 0.02419997272852248, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497874+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "qubits": [4, 3], "gate": "cx", "name": "cx4_3"}, {"parameters": [{"date": "2019-08-30T10:19:21+00:00", "unit": "", "value": 0.011556353862980095, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497942+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "qubits": [5, 6], "gate": "cx", "name": "cx5_6"}, {"parameters": [{"date": "2019-08-30T11:03:10+00:00", "unit": "", "value": 0.013761262352206288, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496746+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [5, 10], "gate": "cx", "name": "cx5_10"}, {"parameters": [{"date": "2019-08-30T09:54:20+00:00", "unit": "", "value": 0.015080981392393444, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498011+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [6, 1], "gate": "cx", "name": "cx6_1"}, {"parameters": [{"date": "2019-08-30T10:19:21+00:00", "unit": "", "value": 0.011556353862980095, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497942+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "qubits": [6, 5], "gate": "cx", "name": "cx6_5"}, {"parameters": [{"date": "2019-08-30T10:23:53+00:00", "unit": "", "value": 0.006476681103105619, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498079+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [6, 7], "gate": "cx", "name": "cx6_7"}, {"parameters": [{"date": "2019-08-30T10:23:53+00:00", "unit": "", "value": 0.006476681103105619, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498079+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [7, 6], "gate": "cx", "name": "cx7_6"}, {"parameters": [{"date": "2019-08-30T10:35:08+00:00", "unit": "", "value": 0.008536990327762256, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498147+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "qubits": [7, 8], "gate": "cx", "name": "cx7_8"}, {"parameters": [{"date": "2019-08-30T11:18:05+00:00", "unit": "", "value": 0.010505314581734038, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497034+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [7, 12], "gate": "cx", "name": "cx7_12"}, {"parameters": [{"date": "2019-08-30T10:05:23+00:00", "unit": "", "value": 0.008794521499873004, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497805+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "qubits": [8, 3], "gate": "cx", "name": "cx8_3"}, {"parameters": [{"date": "2019-08-30T10:35:08+00:00", "unit": "", "value": 0.008536990327762256, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498147+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "qubits": [8, 7], "gate": "cx", "name": "cx8_7"}, {"parameters": [{"date": "2019-08-30T10:39:53+00:00", "unit": "", "value": 0.010856194114889584, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498216+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "qubits": [8, 9], "gate": "cx", "name": "cx8_9"}, {"parameters": [{"date": "2019-08-30T10:39:53+00:00", "unit": "", "value": 0.010856194114889584, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.498216+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "qubits": [9, 8], "gate": "cx", "name": "cx9_8"}, {"parameters": [{"date": "2019-08-30T12:00:19+00:00", "unit": "", "value": 0.014715401429715086, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497175+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "qubits": [9, 14], "gate": "cx", "name": "cx9_14"}, {"parameters": [{"date": "2019-08-30T11:03:10+00:00", "unit": "", "value": 0.013761262352206288, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496746+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [10, 5], "gate": "cx", "name": "cx10_5"}, {"parameters": [{"date": "2019-08-30T11:23:09+00:00", "unit": "", "value": 0.017776465968286054, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496821+00:00", "unit": "ns", "value": 632.8888888888888, "name": "gate_length"}], "qubits": [10, 11], "gate": "cx", "name": "cx10_11"}, {"parameters": [{"date": "2019-08-30T11:23:09+00:00", "unit": "", "value": 0.017776465968286054, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496821+00:00", "unit": "ns", "value": 632.8888888888888, "name": "gate_length"}], "qubits": [11, 10], "gate": "cx", "name": "cx11_10"}, {"parameters": [{"date": "2019-08-30T11:38:04+00:00", "unit": "", "value": 0.014737564090628541, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496893+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [11, 12], "gate": "cx", "name": "cx11_12"}, {"parameters": [{"date": "2019-08-30T12:04:25+00:00", "unit": "", "value": 0.017861314509503207, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497314+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [11, 16], "gate": "cx", "name": "cx11_16"}, {"parameters": [{"date": "2019-08-30T11:18:05+00:00", "unit": "", "value": 0.010505314581734038, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497034+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "qubits": [12, 7], "gate": "cx", "name": "cx12_7"}, {"parameters": [{"date": "2019-08-30T11:38:04+00:00", "unit": "", "value": 0.014737564090628541, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496893+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [12, 11], "gate": "cx", "name": "cx12_11"}, {"parameters": [{"date": "2019-08-30T11:51:26+00:00", "unit": "", "value": 0.010566800288498851, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496964+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "qubits": [12, 13], "gate": "cx", "name": "cx12_13"}, {"parameters": [{"date": "2019-08-30T11:51:26+00:00", "unit": "", "value": 0.010566800288498851, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.496964+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "qubits": [13, 12], "gate": "cx", "name": "cx13_12"}, {"parameters": [{"date": "2019-08-30T11:56:04+00:00", "unit": "", "value": 0.011399461402435557, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497105+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "qubits": [13, 14], "gate": "cx", "name": "cx13_14"}, {"parameters": [{"date": "2019-08-30T12:45:13+00:00", "unit": "", "value": 0.019204293048631776, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497452+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "qubits": [13, 18], "gate": "cx", "name": "cx13_18"}, {"parameters": [{"date": "2019-08-30T12:00:19+00:00", "unit": "", "value": 0.014715401429715086, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497175+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "qubits": [14, 9], "gate": "cx", "name": "cx14_9"}, {"parameters": [{"date": "2019-08-30T11:56:04+00:00", "unit": "", "value": 0.011399461402435557, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497105+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "qubits": [14, 13], "gate": "cx", "name": "cx14_13"}, {"parameters": [{"date": "2019-08-30T12:19:46+00:00", "unit": "", "value": 0.01238985580058688, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497245+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [15, 16], "gate": "cx", "name": "cx15_16"}, {"parameters": [{"date": "2019-08-30T12:04:25+00:00", "unit": "", "value": 0.017861314509503207, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497314+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [16, 11], "gate": "cx", "name": "cx16_11"}, {"parameters": [{"date": "2019-08-30T12:19:46+00:00", "unit": "", "value": 0.01238985580058688, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497245+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [16, 15], "gate": "cx", "name": "cx16_15"}, {"parameters": [{"date": "2019-08-30T12:24:07+00:00", "unit": "", "value": 0.012335719228831754, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497384+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "qubits": [16, 17], "gate": "cx", "name": "cx16_17"}, {"parameters": [{"date": "2019-08-30T12:24:07+00:00", "unit": "", "value": 0.012335719228831754, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497384+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "qubits": [17, 16], "gate": "cx", "name": "cx17_16"}, {"parameters": [{"date": "2019-08-30T13:09:06+00:00", "unit": "", "value": 0.02096737296413556, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497521+00:00", "unit": "ns", "value": 746.6666666666666, "name": "gate_length"}], "qubits": [17, 18], "gate": "cx", "name": "cx17_18"}, {"parameters": [{"date": "2019-08-30T12:45:13+00:00", "unit": "", "value": 0.019204293048631776, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497452+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "qubits": [18, 13], "gate": "cx", "name": "cx18_13"}, {"parameters": [{"date": "2019-08-30T13:09:06+00:00", "unit": "", "value": 0.02096737296413556, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497521+00:00", "unit": "ns", "value": 746.6666666666666, "name": "gate_length"}], "qubits": [18, 17], "gate": "cx", "name": "cx18_17"}, {"parameters": [{"date": "2019-08-30T13:14:13+00:00", "unit": "", "value": 0.021086393325786212, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497597+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "qubits": [18, 19], "gate": "cx", "name": "cx18_19"}, {"parameters": [{"date": "2019-08-30T13:14:13+00:00", "unit": "", "value": 0.021086393325786212, "name": "gate_error"}, {"date": "2019-08-30T13:17:20.497597+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "qubits": [19, 18], "gate": "cx", "name": "cx19_18"}]} \ No newline at end of file +{"general": [], "qubits": [[{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 102.85416493848709, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 163.5967764003543, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 5.046903257383382, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.1166666666666667, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.1333333333333333, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.1, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 79.14579023442666, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 131.90631923866155, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.847301793214777, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.020000000000000018, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.023333333333333334, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.01666666666666672, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 94.91194437776132, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 145.93512916784837, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.703657144760766, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.033333333333333326, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.016666666666666666, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 73.7568384768635, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 47.30578667690049, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.77433318770615, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.020000000000000018, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.02666666666666667, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.013333333333333308, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 187.85891843367634, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 112.12520047407418, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.366180085609712, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.036666666666666625, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.05666666666666664, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.016666666666666666, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 65.3543237183781, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 138.4630186765929, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.911579162611726, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.09499999999999997, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.05, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.14, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 32.54991563480177, "name": "T1"}, {"date": "2019-10-08T11:02:37+00:00", "unit": "\u00b5s", "value": 82.99388294139078, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.726872639487108, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 83.83547839075025, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 68.20810008553288, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.545987790976865, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.03166666666666673, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.04666666666666667, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.01666666666666672, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 53.12941203803107, "name": "T1"}, {"date": "2019-10-08T11:02:37+00:00", "unit": "\u00b5s", "value": 90.78113285364125, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.658588162065793, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.05166666666666664, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.06, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 43.94955821389211, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 88.0260463486044, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.766744956760172, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.03499999999999992, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.02666666666666667, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 60.55309292536068, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 66.72119293364145, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.95530399400922, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.06833333333333336, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.09333333333333338, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 70.77889689328188, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 135.3797000375796, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.521699757167218, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.04, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.046666666666666634, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 42.15032330713362, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 63.7709606807059, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.732550716941763, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.04833333333333334, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.07999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.016666666666666666, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 48.11152465903231, "name": "T1"}, {"date": "2019-10-07T09:39:43+00:00", "unit": "\u00b5s", "value": 53.75664081104812, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.6355517858485875, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.06333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.023333333333333334, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 88.82211529410327, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 139.52734840443173, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.555081132676964, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.02833333333333332, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.016666666666666666, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 99.84794001465994, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 113.30408098299273, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.5822646287843725, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.013333333333333308, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.023333333333333334, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.0033333333333332993, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 69.5885504108954, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 64.0082971274578, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.755628079180518, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.016666666666666607, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.013333333333333308, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.02, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 125.61840752599393, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 191.19933784261426, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.589824421320106, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.023333333333333317, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.036666666666666625, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 35.100068289725094, "name": "T1"}, {"date": "2019-10-08T10:54:47+00:00", "unit": "\u00b5s", "value": 61.102028000691035, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 4.752417207215866, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.04499999999999993, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.06666666666666667, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.023333333333333317, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T10:44:43+00:00", "unit": "\u00b5s", "value": 81.53242053408343, "name": "T1"}, {"date": "2019-10-08T10:52:39+00:00", "unit": "\u00b5s", "value": 76.33138775481778, "name": "T2"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "GHz", "value": 5.035097390471422, "name": "frequency"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.04833333333333334, "name": "readout_error"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.043333333333333335, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T10:42:42+00:00", "unit": "", "value": 0.05333333333333334, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.000325653286886848, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.000325653286886848, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.000651306573773696, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0003616314031393863, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0003616314031393863, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0007232628062787726, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006892012573486157, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006892012573486157, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0013784025146972314, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0004332493074768526, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0004332493074768526, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0008664986149537052, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.00037100559395040615, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.00037100559395040615, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0007420111879008123, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006900752085232459, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006900752085232459, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0013801504170464919, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0004620010020043001, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0004620010020043001, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0009240020040086002, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0002776491690771715, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0002776491690771715, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.000555298338154343, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0004164794205428041, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0004164794205428041, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-08T11:26:07+00:00", "unit": "", "value": 0.0008329588410856082, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0005300125196208912, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0005300125196208912, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0010600250392417824, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0020816424289898648, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0020816424289898648, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0041632848579797295, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0004274221676876212, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0004274221676876212, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0008548443353752424, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.00043340491454847344, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.00043340491454847344, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0008668098290969469, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006036562398736551, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006036562398736551, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0012073124797473101, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0003157735478063037, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0003157735478063037, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0006315470956126074, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.00043352679749160004, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.00043352679749160004, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0008670535949832001, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.00036203332628612935, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.00036203332628612935, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0007240666525722587, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0003191963235549212, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0003191963235549212, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0006383926471098424, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0008753524640779551, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0008753524640779551, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-08T11:23:51+00:00", "unit": "", "value": 0.0017507049281559103, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0009430042933686515, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.0009430042933686515, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-08T11:04:47+00:00", "unit": "", "value": 0.001886008586737303, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T11:55:03+00:00", "unit": "", "value": 0.01195103254058677, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 220.44444444444443, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-08T11:55:03+00:00", "unit": "", "value": 0.01195103254058677, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 220.44444444444443, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T12:07:42+00:00", "unit": "", "value": 0.009286590487134094, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [1, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T13:12:51+00:00", "unit": "", "value": 0.015097443081646927, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx1_6"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T12:07:42+00:00", "unit": "", "value": 0.009286590487134094, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T12:37:08+00:00", "unit": "", "value": 0.00928514074018788, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T12:37:08+00:00", "unit": "", "value": 0.00928514074018788, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-08T12:49:55+00:00", "unit": "", "value": 0.014128731546206974, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 732.4444444444445, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [3, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T13:50:21+00:00", "unit": "", "value": 0.00895720102940653, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx3_8"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T12:49:55+00:00", "unit": "", "value": 0.014128731546206974, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 732.4444444444445, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T13:54:37+00:00", "unit": "", "value": 0.010308156281825964, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T14:25:11+00:00", "unit": "", "value": 0.013522194386392322, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T13:12:51+00:00", "unit": "", "value": 0.015097443081646927, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx6_1"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T13:54:37+00:00", "unit": "", "value": 0.010308156281825964, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 241.77777777777777, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T14:01:51+00:00", "unit": "", "value": 0.01002416268455436, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 256.0, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T14:01:51+00:00", "unit": "", "value": 0.01002416268455436, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 256.0, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T14:13:10+00:00", "unit": "", "value": 0.01145315064928265, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T14:30:49+00:00", "unit": "", "value": 0.010994247837299465, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T13:50:21+00:00", "unit": "", "value": 0.00895720102940653, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx8_3"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T14:13:10+00:00", "unit": "", "value": 0.01145315064928265, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 412.4444444444444, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T14:18:54+00:00", "unit": "", "value": 0.012436526525968605, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T14:18:54+00:00", "unit": "", "value": 0.012436526525968605, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T14:53:57+00:00", "unit": "", "value": 0.014850441649694512, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T14:25:11+00:00", "unit": "", "value": 0.013522194386392322, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T14:36:25+00:00", "unit": "", "value": 0.012364974892208141, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 632.8888888888888, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T14:36:25+00:00", "unit": "", "value": 0.012364974892208141, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 632.8888888888888, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T14:42:12+00:00", "unit": "", "value": 0.011796265985676652, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [11, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T14:59:47+00:00", "unit": "", "value": 0.011738155139105588, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx11_16"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T14:30:49+00:00", "unit": "", "value": 0.010994247837299465, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T14:42:12+00:00", "unit": "", "value": 0.011796265985676652, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 327.1111111111111, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T14:47:57+00:00", "unit": "", "value": 0.011515789543863064, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T14:47:57+00:00", "unit": "", "value": 0.011515789543863064, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T14:51:04+00:00", "unit": "", "value": 0.008283569960770426, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [13, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T15:10:53+00:00", "unit": "", "value": 0.018717524573515665, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "name": "cx13_18"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T14:53:57+00:00", "unit": "", "value": 0.014850441649694512, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 512.0, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T14:51:04+00:00", "unit": "", "value": 0.008283569960770426, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T15:04:16+00:00", "unit": "", "value": 0.00905237381849966, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T14:59:47+00:00", "unit": "", "value": 0.011738155139105588, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx16_11"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-08T15:04:16+00:00", "unit": "", "value": 0.00905237381849966, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T15:06:54+00:00", "unit": "", "value": 0.01168188511789725, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T15:06:54+00:00", "unit": "", "value": 0.01168188511789725, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 341.3333333333333, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T15:31:53+00:00", "unit": "", "value": 0.020976239712194034, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 746.6666666666666, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T15:10:53+00:00", "unit": "", "value": 0.018717524573515665, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "name": "cx18_13"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T15:31:53+00:00", "unit": "", "value": 0.020976239712194034, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 746.6666666666666, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-08T15:37:16+00:00", "unit": "", "value": 0.028018452831777257, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T15:37:16+00:00", "unit": "", "value": 0.028018452831777257, "name": "gate_error"}, {"date": "2019-10-08T15:37:16+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.0.2", "backend_name": "ibmq_boeblingen", "last_update_date": "2019-10-08T15:37:16+00:00"} \ No newline at end of file diff --git a/qiskit/test/mock/props_johannesburg.json b/qiskit/test/mock/props_johannesburg.json new file mode 100644 index 000000000000..70317cbcd554 --- /dev/null +++ b/qiskit/test/mock/props_johannesburg.json @@ -0,0 +1 @@ +{"general": [], "qubits": [[{"date": "2019-10-07T09:17:06+00:00", "unit": "\u00b5s", "value": 79.90862967923539, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 51.70490169618038, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.664855849870114, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.029000000000000026, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.025, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 80.07419199360729, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 94.0391293234105, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.767706651154839, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031500000000000083, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.04600000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.017, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 59.10105873110132, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 73.98164351582824, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.6182469984349135, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.041000000000000036, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.050000000000000044, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.032, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 54.426318483055596, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 71.13699364215981, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 5.022873277819942, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031500000000000083, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.039000000000000035, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.024, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 70.68011971943773, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 87.65496684766875, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.655469902368598, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.03849999999999998, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.04600000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 74.15173498463481, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 50.34061712105218, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.745969359620675, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.03500000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.015, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 62.03503971287683, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 82.39741086620967, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.8313700685867, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.022499999999999964, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031000000000000028, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 86.32730030065105, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 76.81807041370062, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.706046370302528, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.041000000000000036, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.051000000000000045, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T09:17:06+00:00", "unit": "\u00b5s", "value": 50.64200781594366, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 62.72647819383072, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.8986213412052075, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.02300000000000002, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.034, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.01200000000000001, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 72.96808780154093, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 96.06295971500931, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.740779700794559, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.014499999999999957, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.020000000000000018, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.009, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 19.97842761685982, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 10.757360634016502, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.841220957752294, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.033500000000000085, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.023, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 36.52070655732671, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 52.18517536156183, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.75712328672827, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.02400000000000002, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.033, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.015000000000000013, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 92.90147625789466, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 98.44616479171279, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.619451718041902, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.031500000000000083, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.04200000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.021, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 71.54009896146913, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 68.43248444903838, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.853960616271936, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.024499999999999966, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.026000000000000023, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.023, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 76.99825024203868, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 42.821158460863714, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.401445053082915, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.11749999999999994, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.09299999999999997, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.142, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 71.41502634976783, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 77.57362176321678, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.693973464532125, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.03700000000000003, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.044, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 86.5175474350321, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 81.82777837984511, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.51262335806064, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.03849999999999998, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.051000000000000045, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.026, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 56.5541155189968, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 75.84360452986378, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.724594025206416, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.01750000000000007, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.005, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 58.312264427248735, "name": "T1"}, {"date": "2019-10-08T08:55:52+00:00", "unit": "\u00b5s", "value": 80.43160739056886, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.335040231422692, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.07499999999999996, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.063, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.08699999999999997, "name": "prob_meas1_prep0"}], [{"date": "2019-10-08T08:52:47+00:00", "unit": "\u00b5s", "value": 106.93634291729703, "name": "T1"}, {"date": "2019-10-08T08:57:55+00:00", "unit": "\u00b5s", "value": 106.26709205776956, "name": "T2"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "GHz", "value": 4.586048166982023, "name": "frequency"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.045500000000000096, "name": "readout_error"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.05500000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-08T08:51:42+00:00", "unit": "", "value": 0.036, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0004284937617407187, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0004284937617407187, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0008569875234814374, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00028041973815140796, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00028041973815140796, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0005608394763028159, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0012383353326959215, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0012383353326959215, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.002476670665391843, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003188280537731939, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003188280537731939, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0006376561075463878, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00029987401735934757, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00029987401735934757, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0005997480347186951, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0004401639231731916, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0004401639231731916, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0008803278463463833, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00044019770352380456, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00044019770352380456, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0008803954070476091, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003086298364448771, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003086298364448771, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0006172596728897542, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0003371547300813942, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0003371547300813942, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0006743094601627884, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003045379857555012, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003045379857555012, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0006090759715110024, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0007866613177609661, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0007866613177609661, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0015733226355219322, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00040707618759562683, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00040707618759562683, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0008141523751912537, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00032997519854414676, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00032997519854414676, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0006599503970882935, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003553494636307493, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0003553494636307493, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0007106989272614985, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-08T08:59:39+00:00", "unit": "", "value": 0.0002689157824180266, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-08T08:59:39+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-08T08:59:39+00:00", "unit": "", "value": 0.0002689157824180266, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-08T08:59:39+00:00", "unit": "", "value": 0.0005378315648360532, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0002994661029364117, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0002994661029364117, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0005989322058728234, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00030437103794333446, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.00030437103794333446, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0006087420758866689, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00041648977197195677, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00041648977197195677, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0008329795439439135, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0002970457343260588, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0002970457343260588, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-08T09:01:05+00:00", "unit": "", "value": 0.0005940914686521176, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00023870868394927587, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00023870868394927587, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-08T09:06:34+00:00", "unit": "", "value": 0.00047741736789855174, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T09:10:35+00:00", "unit": "", "value": 0.0076000366115634155, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [0, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T09:50:05+00:00", "unit": "", "value": 0.00991276818968237, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "name": "cx0_5"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-08T09:10:35+00:00", "unit": "", "value": 0.0076000366115634155, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 270.22222222222223, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T09:18:54+00:00", "unit": "", "value": 0.026438656057174242, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 519.1111111111111, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-08T09:18:54+00:00", "unit": "", "value": 0.026438656057174242, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 519.1111111111111, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T09:29:29+00:00", "unit": "", "value": 0.029567546045012022, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 853.3333333333333, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-08T09:29:29+00:00", "unit": "", "value": 0.029567546045012022, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 853.3333333333333, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-08T09:38:58+00:00", "unit": "", "value": 0.048653489972689146, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1329.7777777777776, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-08T09:38:58+00:00", "unit": "", "value": 0.048653489972689146, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1329.7777777777776, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [4, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T10:37:04+00:00", "unit": "", "value": 0.007432563241399126, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx4_9"}, {"qubits": [5, 0], "gate": "cx", "parameters": [{"date": "2019-10-08T09:50:05+00:00", "unit": "", "value": 0.00991276818968237, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 334.22222222222223, "name": "gate_length"}], "name": "cx5_0"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T09:58:20+00:00", "unit": "", "value": 0.008644481324433267, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 291.55555555555554, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T10:56:53+00:00", "unit": "", "value": 0.020377777816212805, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T09:58:20+00:00", "unit": "", "value": 0.008644481324433267, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 291.55555555555554, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T10:08:09+00:00", "unit": "", "value": 0.01204500121546298, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 597.3333333333333, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-08T10:08:09+00:00", "unit": "", "value": 0.01204500121546298, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 597.3333333333333, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T10:25:10+00:00", "unit": "", "value": 0.011837962147037417, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 284.44444444444446, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T10:15:43+00:00", "unit": "", "value": 0.010385642316039612, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T10:25:10+00:00", "unit": "", "value": 0.011837962147037417, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 284.44444444444446, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T10:45:21+00:00", "unit": "", "value": 0.00943932799739211, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 4], "gate": "cx", "parameters": [{"date": "2019-10-08T10:37:04+00:00", "unit": "", "value": 0.007432563241399126, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx9_4"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-08T10:45:21+00:00", "unit": "", "value": 0.00943932799739211, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T11:46:14+00:00", "unit": "", "value": 0.020337534868602153, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 853.3333333333333, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-08T10:56:53+00:00", "unit": "", "value": 0.020377777816212805, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T11:07:05+00:00", "unit": "", "value": 0.013506274684092462, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [10, 15], "gate": "cx", "parameters": [{"date": "2019-10-08T11:58:18+00:00", "unit": "", "value": 0.01883765780500679, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 519.1111111111111, "name": "gate_length"}], "name": "cx10_15"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T11:07:05+00:00", "unit": "", "value": 0.013506274684092462, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 298.66666666666663, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T11:14:37+00:00", "unit": "", "value": 0.014438587384607793, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-08T10:15:43+00:00", "unit": "", "value": 0.010385642316039612, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-08T11:14:37+00:00", "unit": "", "value": 0.014438587384607793, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T11:27:15+00:00", "unit": "", "value": 0.008373214198481055, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-08T11:27:15+00:00", "unit": "", "value": 0.008373214198481055, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 312.88888888888886, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T11:37:46+00:00", "unit": "", "value": 0.03333632311422591, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1920.0, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-08T11:46:14+00:00", "unit": "", "value": 0.020337534868602153, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 853.3333333333333, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-08T11:37:46+00:00", "unit": "", "value": 0.03333632311422591, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1920.0, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [14, 19], "gate": "cx", "parameters": [{"date": "2019-10-08T12:35:33+00:00", "unit": "", "value": 0.009553898559408358, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx14_19"}, {"qubits": [15, 10], "gate": "cx", "parameters": [{"date": "2019-10-08T11:58:18+00:00", "unit": "", "value": 0.01883765780500679, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 519.1111111111111, "name": "gate_length"}], "name": "cx15_10"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T12:04:48+00:00", "unit": "", "value": 0.009970557581103379, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-08T12:04:48+00:00", "unit": "", "value": 0.009970557581103379, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 384.0, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T12:11:54+00:00", "unit": "", "value": 0.01642147875866587, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 753.7777777777777, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-08T12:11:54+00:00", "unit": "", "value": 0.01642147875866587, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 753.7777777777777, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T12:22:55+00:00", "unit": "", "value": 0.02678926978908469, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1216.0, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-08T12:22:55+00:00", "unit": "", "value": 0.02678926978908469, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 1216.0, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-08T12:46:37+00:00", "unit": "", "value": 0.010726627979331549, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 576.0, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 14], "gate": "cx", "parameters": [{"date": "2019-10-08T12:35:33+00:00", "unit": "", "value": 0.009553898559408358, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx19_14"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-08T12:46:37+00:00", "unit": "", "value": 0.010726627979331549, "name": "gate_error"}, {"date": "2019-10-08T16:18:03+00:00", "unit": "ns", "value": 576.0, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.0.11", "backend_name": "ibmq_johannesburg", "last_update_date": "2019-10-08T16:18:03+00:00"} \ No newline at end of file diff --git a/qiskit/test/mock/props_poughkeepsie.json b/qiskit/test/mock/props_poughkeepsie.json index 1d09531cfec9..7c25ab4b5514 100644 --- a/qiskit/test/mock/props_poughkeepsie.json +++ b/qiskit/test/mock/props_poughkeepsie.json @@ -1 +1 @@ -{"backend_version": "1.2.1", "general": [], "last_update_date": "2019-08-28T17:00:26+00:00", "backend_name": "Fluffy", "qubits": [[{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 73.16743380385743, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 81.17062126642777, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.919971324186949, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.03700000000000003, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.04800000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.026, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 69.5425108160545, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 66.72836180232201, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.831990041251741, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.02400000000000002, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.03400000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 49.66475452489782, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 66.53311589900385, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.939779468263195, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.030000000000000027, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.04600000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 95.31955801470687, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 113.90725390110033, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.515071576937679, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06000000000000005, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.07799999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.042, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 86.22178858934062, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 81.33043285888897, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.662751429195938, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.052999999999999936, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06599999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.04, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 71.23397190046566, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 54.82158890086122, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.957167029340665, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06000000000000005, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.09799999999999998, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.022, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 69.50060616549708, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 80.48806925428238, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.995402598979874, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.020000000000000018, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.028000000000000025, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 86.24654721099294, "name": "T1"}, {"date": "2019-08-18T21:53:43+00:00", "unit": "\u00b5s", "value": 16.106831797793536, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.81104384456903, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06699999999999995, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.09199999999999997, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.042, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 62.669653197635554, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 80.2519355652895, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 5.013320699997377, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.02400000000000002, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.018, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 72.80983903650913, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 114.50830832646214, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 5.056842323240482, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.02300000000000002, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.03200000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 54.9919711060882, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 7.46613245226269, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.719676025163654, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.08699999999999997, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.14200000000000002, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.032, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 87.21682046166184, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 89.58162787529358, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.900122610067189, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.04700000000000004, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06000000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.034, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 56.97417038932196, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 5.903783099401196, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.772360144007049, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.039000000000000035, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.062000000000000055, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.016, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 49.74629793126637, "name": "T1"}, {"date": "2019-06-14T20:49:58+00:00", "unit": "\u00b5s", "value": 23.21879360411921, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 5.1105083415332215, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.040999999999999925, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06999999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 65.13102298699796, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 80.80245624814948, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.99063233433379, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.03300000000000003, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.05400000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 90.12000843781833, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 49.250728899690266, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.806448100639391, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.050000000000000044, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.004, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 78.95697438171594, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 65.19573276391299, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.95588315613815, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.017000000000000015, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.028000000000000025, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.006, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 62.96615233182522, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 18.87137710032367, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.599696925563344, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06099999999999994, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.10199999999999998, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.02, "name": "prob_meas1_prep0"}], [{"date": "2019-08-28T02:04:24+00:00", "unit": "\u00b5s", "value": 86.83031599817349, "name": "T1"}, {"date": "2019-08-28T02:08:31+00:00", "unit": "\u00b5s", "value": 107.77648173283983, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.828325801865082, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.04200000000000004, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06999999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-08-25T23:42:33+00:00", "unit": "\u00b5s", "value": 58.10231920200612, "name": "T1"}, {"date": "2019-08-28T02:16:36+00:00", "unit": "\u00b5s", "value": 102.20324397750848, "name": "T2"}, {"date": "2019-08-28T17:00:26+00:00", "unit": "GHz", "value": 4.9384497310319935, "name": "frequency"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.06099999999999994, "name": "readout_error"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.07999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-08-28T01:59:44+00:00", "unit": "", "value": 0.042, "name": "prob_meas1_prep0"}]], "gates": [{"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0008486263717237255, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803351+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [0], "gate": "id", "name": "id_0"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803385+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [0], "gate": "u1", "name": "u1_0"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0008486263717237255, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803413+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [0], "gate": "u2", "name": "u2_0"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.001697252743447451, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803443+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [0], "gate": "u3", "name": "u3_0"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0014125750695265064, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803501+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [1], "gate": "id", "name": "id_1"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803528+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [1], "gate": "u1", "name": "u1_1"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0014125750695265064, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803554+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [1], "gate": "u2", "name": "u2_1"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.002825150139053013, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803581+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [1], "gate": "u3", "name": "u3_1"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.001049357207030656, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803636+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [2], "gate": "id", "name": "id_2"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803662+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [2], "gate": "u1", "name": "u1_2"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.001049357207030656, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803688+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [2], "gate": "u2", "name": "u2_2"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.002098714414061312, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803715+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [2], "gate": "u3", "name": "u3_2"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0007690432353998607, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803770+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [3], "gate": "id", "name": "id_3"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803796+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [3], "gate": "u1", "name": "u1_3"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0007690432353998607, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803822+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [3], "gate": "u2", "name": "u2_3"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0015380864707997214, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803850+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [3], "gate": "u3", "name": "u3_3"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0016275271129183803, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803903+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [4], "gate": "id", "name": "id_4"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803929+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [4], "gate": "u1", "name": "u1_4"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0016275271129183803, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803954+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [4], "gate": "u2", "name": "u2_4"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0032550542258367606, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.803981+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [4], "gate": "u3", "name": "u3_4"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.004667863947620119, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804034+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [5], "gate": "id", "name": "id_5"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804060+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [5], "gate": "u1", "name": "u1_5"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.004667863947620119, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804086+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [5], "gate": "u2", "name": "u2_5"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.009335727895240238, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804113+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [5], "gate": "u3", "name": "u3_5"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0015600776753213028, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804173+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [6], "gate": "id", "name": "id_6"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804200+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [6], "gate": "u1", "name": "u1_6"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0015600776753213028, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804225+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [6], "gate": "u2", "name": "u2_6"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0031201553506426056, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804252+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [6], "gate": "u3", "name": "u3_6"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.00272867369995143, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804305+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [7], "gate": "id", "name": "id_7"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804331+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [7], "gate": "u1", "name": "u1_7"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.00272867369995143, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804357+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [7], "gate": "u2", "name": "u2_7"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.00545734739990286, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804385+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [7], "gate": "u3", "name": "u3_7"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0012509543499005407, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804439+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [8], "gate": "id", "name": "id_8"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804467+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [8], "gate": "u1", "name": "u1_8"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0012509543499005407, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804492+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [8], "gate": "u2", "name": "u2_8"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0025019086998010814, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804519+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [8], "gate": "u3", "name": "u3_8"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0013904957208507576, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804574+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [9], "gate": "id", "name": "id_9"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804600+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [9], "gate": "u1", "name": "u1_9"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0013904957208507576, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804626+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [9], "gate": "u2", "name": "u2_9"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0027809914417015152, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804653+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [9], "gate": "u3", "name": "u3_9"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0016941814040375336, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804708+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [10], "gate": "id", "name": "id_10"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804735+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [10], "gate": "u1", "name": "u1_10"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0016941814040375336, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804760+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [10], "gate": "u2", "name": "u2_10"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.003388362808075067, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804788+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [10], "gate": "u3", "name": "u3_10"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0005996622696220024, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804841+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [11], "gate": "id", "name": "id_11"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804867+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [11], "gate": "u1", "name": "u1_11"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0005996622696220024, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804892+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [11], "gate": "u2", "name": "u2_11"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0011993245392440048, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804919+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [11], "gate": "u3", "name": "u3_11"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0019860660341784364, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804973+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [12], "gate": "id", "name": "id_12"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.804999+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [12], "gate": "u1", "name": "u1_12"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0019860660341784364, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805024+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [12], "gate": "u2", "name": "u2_12"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.003972132068356873, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805052+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [12], "gate": "u3", "name": "u3_12"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.003294542870745083, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805107+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [13], "gate": "id", "name": "id_13"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805132+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [13], "gate": "u1", "name": "u1_13"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.003294542870745083, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805165+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [13], "gate": "u2", "name": "u2_13"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.006589085741490166, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805193+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [13], "gate": "u3", "name": "u3_13"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.001959081810979425, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805249+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [14], "gate": "id", "name": "id_14"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805275+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [14], "gate": "u1", "name": "u1_14"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.001959081810979425, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805301+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [14], "gate": "u2", "name": "u2_14"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.00391816362195885, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805328+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [14], "gate": "u3", "name": "u3_14"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0014213818239561494, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805383+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [15], "gate": "id", "name": "id_15"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805409+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [15], "gate": "u1", "name": "u1_15"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0014213818239561494, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805434+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [15], "gate": "u2", "name": "u2_15"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.002842763647912299, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805461+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [15], "gate": "u3", "name": "u3_15"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0008493248699242331, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805515+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [16], "gate": "id", "name": "id_16"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805541+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [16], "gate": "u1", "name": "u1_16"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0008493248699242331, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805567+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [16], "gate": "u2", "name": "u2_16"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0016986497398484661, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805595+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [16], "gate": "u3", "name": "u3_16"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0010549476425797044, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805649+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [17], "gate": "id", "name": "id_17"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805675+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [17], "gate": "u1", "name": "u1_17"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0010549476425797044, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805700+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [17], "gate": "u2", "name": "u2_17"}, {"parameters": [{"date": "2019-08-28T02:36:42+00:00", "unit": "", "value": 0.0021098952851594088, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805727+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [17], "gate": "u3", "name": "u3_17"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0010797727184031268, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805781+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [18], "gate": "id", "name": "id_18"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805808+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [18], "gate": "u1", "name": "u1_18"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0010797727184031268, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805834+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [18], "gate": "u2", "name": "u2_18"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0021595454368062536, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805861+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [18], "gate": "u3", "name": "u3_18"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0035138283506978237, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805915+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "qubits": [19], "gate": "id", "name": "id_19"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805941+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "qubits": [19], "gate": "u1", "name": "u1_19"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0035138283506978237, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805966+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "qubits": [19], "gate": "u2", "name": "u2_19"}, {"parameters": [{"date": "2019-08-28T02:34:32+00:00", "unit": "", "value": 0.0070276567013956475, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.805992+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "qubits": [19], "gate": "u3", "name": "u3_19"}, {"parameters": [{"date": "2019-08-28T05:37:41+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806227+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [0, 1], "gate": "cx", "name": "cx0_1"}, {"parameters": [{"date": "2019-08-28T06:04:15+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807145+00:00", "unit": "ns", "value": 433.77777777777777, "name": "gate_length"}], "qubits": [0, 5], "gate": "cx", "name": "cx0_5"}, {"parameters": [{"date": "2019-08-28T05:37:41+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806227+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [1, 0], "gate": "cx", "name": "cx1_0"}, {"parameters": [{"date": "2019-08-28T04:53:02+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806949+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [1, 2], "gate": "cx", "name": "cx1_2"}, {"parameters": [{"date": "2019-08-28T04:53:02+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806949+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [2, 1], "gate": "cx", "name": "cx2_1"}, {"parameters": [{"date": "2019-08-28T04:26:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807015+00:00", "unit": "ns", "value": 839.1111111111111, "name": "gate_length"}], "qubits": [2, 3], "gate": "cx", "name": "cx2_3"}, {"parameters": [{"date": "2019-08-28T04:26:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807015+00:00", "unit": "ns", "value": 839.1111111111111, "name": "gate_length"}], "qubits": [3, 2], "gate": "cx", "name": "cx3_2"}, {"parameters": [{"date": "2019-08-28T03:51:36+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807078+00:00", "unit": "ns", "value": 832.0, "name": "gate_length"}], "qubits": [3, 4], "gate": "cx", "name": "cx3_4"}, {"parameters": [{"date": "2019-08-28T03:51:36+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807078+00:00", "unit": "ns", "value": 832.0, "name": "gate_length"}], "qubits": [4, 3], "gate": "cx", "name": "cx4_3"}, {"parameters": [{"date": "2019-08-28T06:49:40+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807585+00:00", "unit": "ns", "value": 888.8888888888888, "name": "gate_length"}], "qubits": [4, 9], "gate": "cx", "name": "cx4_9"}, {"parameters": [{"date": "2019-08-28T06:04:15+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807145+00:00", "unit": "ns", "value": 433.77777777777777, "name": "gate_length"}], "qubits": [5, 0], "gate": "cx", "name": "cx5_0"}, {"parameters": [{"date": "2019-08-28T10:43:13+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807274+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [5, 6], "gate": "cx", "name": "cx5_6"}, {"parameters": [{"date": "2019-08-28T11:07:51+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807211+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "qubits": [5, 10], "gate": "cx", "name": "cx5_10"}, {"parameters": [{"date": "2019-08-28T10:43:13+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807274+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "qubits": [6, 5], "gate": "cx", "name": "cx6_5"}, {"parameters": [{"date": "2019-08-28T10:05:37+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807399+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "qubits": [6, 7], "gate": "cx", "name": "cx6_7"}, {"parameters": [{"date": "2019-08-28T10:05:37+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807399+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "qubits": [7, 6], "gate": "cx", "name": "cx7_6"}, {"parameters": [{"date": "2019-08-26T03:25:08+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807461+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "qubits": [7, 8], "gate": "cx", "name": "cx7_8"}, {"parameters": [{"date": "2019-08-28T09:43:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807336+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "qubits": [7, 12], "gate": "cx", "name": "cx7_12"}, {"parameters": [{"date": "2019-08-26T03:25:08+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807461+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "qubits": [8, 7], "gate": "cx", "name": "cx8_7"}, {"parameters": [{"date": "2019-08-28T07:15:07+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807650+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [8, 9], "gate": "cx", "name": "cx8_9"}, {"parameters": [{"date": "2019-08-28T06:49:40+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807585+00:00", "unit": "ns", "value": 888.8888888888888, "name": "gate_length"}], "qubits": [9, 4], "gate": "cx", "name": "cx9_4"}, {"parameters": [{"date": "2019-08-28T07:15:07+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807650+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "qubits": [9, 8], "gate": "cx", "name": "cx9_8"}, {"parameters": [{"date": "2019-08-28T07:43:56+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807524+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "qubits": [9, 14], "gate": "cx", "name": "cx9_14"}, {"parameters": [{"date": "2019-08-28T11:07:51+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807211+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "qubits": [10, 5], "gate": "cx", "name": "cx10_5"}, {"parameters": [{"date": "2019-08-26T06:29:29+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806299+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "qubits": [10, 11], "gate": "cx", "name": "cx10_11"}, {"parameters": [{"date": "2019-08-28T17:00:26+00:00", "unit": "", "value": 0.016784466161704814, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806630+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "qubits": [10, 15], "gate": "cx", "name": "cx10_15"}, {"parameters": [{"date": "2019-08-26T06:29:29+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806299+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "qubits": [11, 10], "gate": "cx", "name": "cx11_10"}, {"parameters": [{"date": "2019-08-28T13:54:39+00:00", "unit": "", "value": 0.014323122913685343, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806367+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [11, 12], "gate": "cx", "name": "cx11_12"}, {"parameters": [{"date": "2019-08-28T09:43:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807336+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "qubits": [12, 7], "gate": "cx", "name": "cx12_7"}, {"parameters": [{"date": "2019-08-28T13:54:39+00:00", "unit": "", "value": 0.014323122913685343, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806367+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "qubits": [12, 11], "gate": "cx", "name": "cx12_11"}, {"parameters": [{"date": "2019-08-28T12:33:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806435+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "qubits": [12, 13], "gate": "cx", "name": "cx12_13"}, {"parameters": [{"date": "2019-08-28T12:33:50+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806435+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "qubits": [13, 12], "gate": "cx", "name": "cx13_12"}, {"parameters": [{"date": "2019-08-28T12:13:48+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806500+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "qubits": [13, 14], "gate": "cx", "name": "cx13_14"}, {"parameters": [{"date": "2019-08-28T07:43:56+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.807524+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "qubits": [14, 9], "gate": "cx", "name": "cx14_9"}, {"parameters": [{"date": "2019-08-28T12:13:48+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806500+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "qubits": [14, 13], "gate": "cx", "name": "cx14_13"}, {"parameters": [{"date": "2019-08-28T11:35:47+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806565+00:00", "unit": "ns", "value": 469.3333333333333, "name": "gate_length"}], "qubits": [14, 19], "gate": "cx", "name": "cx14_19"}, {"parameters": [{"date": "2019-08-28T17:00:26+00:00", "unit": "", "value": 0.016784466161704814, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806630+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "qubits": [15, 10], "gate": "cx", "name": "cx15_10"}, {"parameters": [{"date": "2019-08-28T16:30:27+00:00", "unit": "", "value": 0.021268112685916524, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806694+00:00", "unit": "ns", "value": 789.3333333333333, "name": "gate_length"}], "qubits": [15, 16], "gate": "cx", "name": "cx15_16"}, {"parameters": [{"date": "2019-08-28T16:30:27+00:00", "unit": "", "value": 0.021268112685916524, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806694+00:00", "unit": "ns", "value": 789.3333333333333, "name": "gate_length"}], "qubits": [16, 15], "gate": "cx", "name": "cx16_15"}, {"parameters": [{"date": "2019-08-28T16:05:16+00:00", "unit": "", "value": 0.029158025806122312, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806758+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "qubits": [16, 17], "gate": "cx", "name": "cx16_17"}, {"parameters": [{"date": "2019-08-28T16:05:16+00:00", "unit": "", "value": 0.029158025806122312, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806758+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "qubits": [17, 16], "gate": "cx", "name": "cx17_16"}, {"parameters": [{"date": "2019-08-28T15:40:57+00:00", "unit": "", "value": 0.02372933790847298, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806822+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "qubits": [17, 18], "gate": "cx", "name": "cx17_18"}, {"parameters": [{"date": "2019-08-28T15:40:57+00:00", "unit": "", "value": 0.02372933790847298, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806822+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "qubits": [18, 17], "gate": "cx", "name": "cx18_17"}, {"parameters": [{"date": "2019-08-28T15:11:23+00:00", "unit": "", "value": 0.02027873065124891, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806886+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "qubits": [18, 19], "gate": "cx", "name": "cx18_19"}, {"parameters": [{"date": "2019-08-28T11:35:47+00:00", "unit": "", "value": 1.0, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806565+00:00", "unit": "ns", "value": 469.3333333333333, "name": "gate_length"}], "qubits": [19, 14], "gate": "cx", "name": "cx19_14"}, {"parameters": [{"date": "2019-08-28T15:11:23+00:00", "unit": "", "value": 0.02027873065124891, "name": "gate_error"}, {"date": "2019-08-29T12:37:00.806886+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "qubits": [19, 18], "gate": "cx", "name": "cx19_18"}]} \ No newline at end of file +{"general": [], "qubits": [[{"date": "2019-10-06T20:47:47+00:00", "unit": "\u00b5s", "value": 74.83952330243338, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 71.4202454959009, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.919892119600908, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 54.68626103330947, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 60.70195921779713, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.831960664452536, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.029000000000000026, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04600000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 54.71491358065838, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 78.10680047360002, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.940456353916524, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.03400000000000003, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.06000000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.008, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 91.79892479694225, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 91.03108645956549, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.5147345268577315, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.02400000000000002, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.030000000000000027, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.018, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 93.76815773128386, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 125.53730248433925, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.662919458970246, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04899999999999993, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.06999999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.028, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 78.81320050319941, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 73.31878305794932, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.957353894573826, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.041000000000000036, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.050000000000000044, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.032, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 74.55443606215356, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 83.24642666041788, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.9955667289306005, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.031000000000000028, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.038000000000000034, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.024, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 81.01111563369945, "name": "T1"}, {"date": "2019-10-05T20:55:27+00:00", "unit": "\u00b5s", "value": 22.42756570850294, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.811619192641292, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.041000000000000036, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.026, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 71.123068497754, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 91.88163087188487, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 5.013719103432012, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.05899999999999994, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.10799999999999998, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.01, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 51.68509818846387, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 97.68146160856635, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 5.056299100211388, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.030000000000000027, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.016, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 89.44217749808405, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 17.87784188741667, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.718486297983972, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.05600000000000005, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.07399999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.038, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 101.87602856574809, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 134.97336000877485, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.899889567567074, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.038000000000000034, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.02, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 90.66859352347241, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 18.361798056038648, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.772827330542938, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.052000000000000046, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.018, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 56.630371989177256, "name": "T1"}, {"date": "2019-10-03T21:45:49+00:00", "unit": "\u00b5s", "value": 30.937840378708813, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 5.110855311409945, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.052000000000000046, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.09199999999999997, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 66.88722168094999, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 65.44944881338212, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.990057161447801, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.02200000000000002, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.038000000000000034, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.006, "name": "prob_meas1_prep0"}], [{"date": "2019-10-06T20:47:47+00:00", "unit": "\u00b5s", "value": 89.0915614312045, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 21.874335440429398, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.806125096701479, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.03600000000000003, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.06000000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 30.37708981471975, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 41.149159357563526, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.955671316070989, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.15599999999999992, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.19999999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.112, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 66.4095213876651, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 21.292757340112722, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.599299215561779, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.052000000000000046, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.07799999999999996, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.026, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 79.64375893667459, "name": "T1"}, {"date": "2019-10-07T20:40:40+00:00", "unit": "\u00b5s", "value": 100.80611581913071, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.82797989029422, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.025000000000000022, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04200000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.008, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T20:39:30+00:00", "unit": "\u00b5s", "value": 78.3231913687434, "name": "T1"}, {"date": "2019-10-07T20:45:51+00:00", "unit": "\u00b5s", "value": 90.73162313154104, "name": "T2"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "GHz", "value": 4.938658589204626, "name": "frequency"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.041000000000000036, "name": "readout_error"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04200000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T20:37:36+00:00", "unit": "", "value": 0.04, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0010076467591284945, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0010076467591284945, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002015293518256989, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0017562067933842497, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0017562067933842497, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0035124135867684995, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.001051351273010438, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.001051351273010438, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002102702546020876, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007850689758185343, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007850689758185343, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0015701379516370685, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007303980169498843, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007303980169498843, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0014607960338997685, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0012497194248676556, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0012497194248676556, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0024994388497353113, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.001174875227741368, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.001174875227741368, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002349750455482736, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0036571994143867314, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0036571994143867314, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.007314398828773463, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002213415356051083, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002213415356051083, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.004426830712102166, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0011483347542554168, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0011483347542554168, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0022966695085108336, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.001270662900791756, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.001270662900791756, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.002541325801583512, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0006950916134566943, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0006950916134566943, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0013901832269133886, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0013923308431948703, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0013923308431948703, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0027846616863897405, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0035138403022632056, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0035138403022632056, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.007027680604526411, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0019024682295245429, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0019024682295245429, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0038049364590490857, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002596675651085207, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.002596675651085207, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.005193351302170414, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.011569140749443901, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.011569140749443901, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.023138281498887803, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0011352113768054416, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.0011352113768054416, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-07T20:53:23+00:00", "unit": "", "value": 0.002270422753610883, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007077057192830814, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0007077057192830814, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0014154114385661629, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0009223892992605438, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 113.77777777777777, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0009223892992605438, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 103.1111111111111, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-07T20:51:06+00:00", "unit": "", "value": 0.0018447785985210876, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 206.2222222222222, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T21:18:16+00:00", "unit": "", "value": 0.018348234720821227, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [0, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T21:26:31+00:00", "unit": "", "value": 0.01950952631756478, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 433.77777777777777, "name": "gate_length"}], "name": "cx0_5"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-07T21:18:16+00:00", "unit": "", "value": 0.018348234720821227, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T21:11:57+00:00", "unit": "", "value": 0.020385377535338506, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T21:11:57+00:00", "unit": "", "value": 0.020385377535338506, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T21:05:41+00:00", "unit": "", "value": 0.023464178979961364, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 839.1111111111111, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T21:05:41+00:00", "unit": "", "value": 0.023464178979961364, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 839.1111111111111, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-07T20:58:49+00:00", "unit": "", "value": 0.015947074681332857, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 1137.7777777777778, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T20:58:49+00:00", "unit": "", "value": 0.015947074681332857, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 1137.7777777777778, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [4, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T21:33:51+00:00", "unit": "", "value": 0.05166261475184261, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 888.8888888888888, "name": "gate_length"}], "name": "cx4_9"}, {"qubits": [5, 0], "gate": "cx", "parameters": [{"date": "2019-10-07T21:26:31+00:00", "unit": "", "value": 0.01950952631756478, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 433.77777777777777, "name": "gate_length"}], "name": "cx5_0"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T22:13:03+00:00", "unit": "", "value": 0.016225623627552893, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T22:19:01+00:00", "unit": "", "value": 0.020354930739063998, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T22:13:03+00:00", "unit": "", "value": 0.016225623627552893, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 455.1111111111111, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T22:07:13+00:00", "unit": "", "value": 0.02789881487841339, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T22:07:13+00:00", "unit": "", "value": 0.02789881487841339, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T21:53:45+00:00", "unit": "", "value": 0.035117643483730226, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T22:00:01+00:00", "unit": "", "value": 0.01705159434530748, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T21:53:45+00:00", "unit": "", "value": 0.035117643483730226, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T21:40:34+00:00", "unit": "", "value": 0.01719170274508794, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 4], "gate": "cx", "parameters": [{"date": "2019-10-07T21:33:51+00:00", "unit": "", "value": 0.05166261475184261, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 888.8888888888888, "name": "gate_length"}], "name": "cx9_4"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T21:40:34+00:00", "unit": "", "value": 0.01719170274508794, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T21:46:51+00:00", "unit": "", "value": 0.02168406202870754, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T22:19:01+00:00", "unit": "", "value": 0.020354930739063998, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T22:50:04+00:00", "unit": "", "value": 0.02126993330289842, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [10, 15], "gate": "cx", "parameters": [{"date": "2019-10-07T23:23:26+00:00", "unit": "", "value": 0.015545910453450856, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "name": "cx10_15"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T22:50:04+00:00", "unit": "", "value": 0.02126993330289842, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 661.3333333333333, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T22:44:35+00:00", "unit": "", "value": 0.01687289466942163, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T22:00:01+00:00", "unit": "", "value": 0.01705159434530748, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T22:44:35+00:00", "unit": "", "value": 0.01687289466942163, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 448.0, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T22:38:01+00:00", "unit": "", "value": 0.038297168369467116, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T22:38:01+00:00", "unit": "", "value": 0.038297168369467116, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 618.6666666666666, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T22:31:53+00:00", "unit": "", "value": 0.023990962483357997, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T21:46:51+00:00", "unit": "", "value": 0.02168406202870754, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T22:31:53+00:00", "unit": "", "value": 0.023990962483357997, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [14, 19], "gate": "cx", "parameters": [{"date": "2019-10-07T22:25:38+00:00", "unit": "", "value": 0.021277452082323373, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 469.3333333333333, "name": "gate_length"}], "name": "cx14_19"}, {"qubits": [15, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T23:23:26+00:00", "unit": "", "value": 0.015545910453450856, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 476.4444444444444, "name": "gate_length"}], "name": "cx15_10"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T23:16:40+00:00", "unit": "", "value": 0.034187232822651986, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 789.3333333333333, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-07T23:16:40+00:00", "unit": "", "value": 0.034187232822651986, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 789.3333333333333, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T23:10:32+00:00", "unit": "", "value": 0.08244103637340802, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T23:10:32+00:00", "unit": "", "value": 0.08244103637340802, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 704.0, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T23:01:38+00:00", "unit": "", "value": 0.018285774093612706, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 668.4444444444445, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T23:01:38+00:00", "unit": "", "value": 0.018285774093612706, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 668.4444444444445, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-07T22:55:44+00:00", "unit": "", "value": 0.01285611913382742, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T22:25:38+00:00", "unit": "", "value": 0.021277452082323373, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 469.3333333333333, "name": "gate_length"}], "name": "cx19_14"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T22:55:44+00:00", "unit": "", "value": 0.01285611913382742, "name": "gate_error"}, {"date": "2019-10-07T23:23:26+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.2.1", "backend_name": "ibmq_poughkeepsie", "last_update_date": "2019-10-07T23:23:26+00:00"} \ No newline at end of file diff --git a/qiskit/test/mock/props_singapore.json b/qiskit/test/mock/props_singapore.json new file mode 100644 index 000000000000..bd460403197e --- /dev/null +++ b/qiskit/test/mock/props_singapore.json @@ -0,0 +1 @@ +{"general": [], "qubits": [[{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 98.50001846063365, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 142.79433528474766, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.676715786802928, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.028000000000000025, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.016000000000000014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-05T10:14:29+00:00", "unit": "\u00b5s", "value": 71.8423910064075, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 86.1000420353437, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.782680699300517, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05800000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 54.586493833620445, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 64.28987220978689, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.685409810699721, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.02750000000000008, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.015, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 71.88906145160064, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 100.29926276217378, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.716928039422963, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.031000000000000028, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.049000000000000044, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.013, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 52.770110881257324, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 61.064644709448174, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.564662441799778, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024499999999999966, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.005, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 106.63080350740401, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 63.847221711183266, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.3093990890670115, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05049999999999999, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05700000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.044, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 53.25798980049998, "name": "T1"}, {"date": "2019-10-07T10:25:34+00:00", "unit": "\u00b5s", "value": 59.50768130704096, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.662502738898581, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05300000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.017, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 70.7178193327572, "name": "T1"}, {"date": "2019-09-30T09:12:16+00:00", "unit": "\u00b5s", "value": 91.5454015797137, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.83100170618901, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.034499999999999975, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.025, "name": "prob_meas1_prep0"}], [{"date": "2019-10-05T10:14:29+00:00", "unit": "\u00b5s", "value": 81.4823552465602, "name": "T1"}, {"date": "2019-10-07T10:25:34+00:00", "unit": "\u00b5s", "value": 80.29259328068997, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.623118095677056, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04200000000000004, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05700000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027, "name": "prob_meas1_prep0"}], [{"date": "2019-10-06T09:52:34+00:00", "unit": "\u00b5s", "value": 75.22358280239378, "name": "T1"}, {"date": "2019-10-04T10:03:13+00:00", "unit": "\u00b5s", "value": 33.6275779166682, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.697684600011119, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.040000000000000036, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 70.98747296573573, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 113.20586880438636, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.424172526087491, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.02849999999999997, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04500000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 49.81041273082784, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 72.19589834748233, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.521513114099939, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03400000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.061, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.007000000000000006, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 82.5827071619044, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 141.83075197141548, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.603498735627486, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.034499999999999975, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05500000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 95.85019354756015, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 131.6531371896787, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.624418341917924, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.019, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 35.88916991811218, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 62.03490787220797, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.757476384494219, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024499999999999966, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03700000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-06T09:52:34+00:00", "unit": "\u00b5s", "value": 104.68198729947855, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 57.97422234961757, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.488504164049106, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.033500000000000085, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.011, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 92.36366680998361, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 94.59861170877572, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.738439313844244, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.039000000000000035, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.015, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 107.49950920916586, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 133.11941489971574, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.8824966313847975, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03049999999999997, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04700000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-03T09:48:38+00:00", "unit": "\u00b5s", "value": 105.19080597037585, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 111.7410815464684, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.5284500512834285, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.08450000000000002, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.101, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.06799999999999995, "name": "prob_meas1_prep0"}], [{"date": "2019-10-04T10:01:26+00:00", "unit": "\u00b5s", "value": 129.411447716364, "name": "T1"}, {"date": "2019-10-04T10:03:13+00:00", "unit": "\u00b5s", "value": 94.47076929782332, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.6976528478044095, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04200000000000004, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.06499999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.019, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005688851193218149, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005688851193218149, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0011377702386436298, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005995105803450207, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005995105803450207, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0011990211606900413, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0022127694703092497, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0022127694703092497, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0044255389406184995, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0009010448455703253, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0009010448455703253, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0018020896911406506, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00022510791737658382, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00022510791737658382, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00045021583475316764, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00037422191608514393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00037422191608514393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0007484438321702879, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000378362284572259, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000378362284572259, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000756724569144518, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004125770256412488, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004125770256412488, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0008251540512824976, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0005417535111698166, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0005417535111698166, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0010835070223396332, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003155501728177163, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003155501728177163, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0006311003456354326, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005368264006968577, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005368264006968577, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0010736528013937153, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004105472539004482, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004105472539004482, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0008210945078008964, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0027345208771739214, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0027345208771739214, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.005469041754347843, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0034136411938485564, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0034136411938485564, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.006827282387697113, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003519344587204795, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003519344587204795, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.000703868917440959, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0016090282661921586, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0016090282661921586, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.003218056532384317, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.00036655471720775684, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.00036655471720775684, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0007331094344155137, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00028697003074466967, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00028697003074466967, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005739400614893393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003816864785326346, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003816864785326346, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0007633729570652692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003179681265439094, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003179681265439094, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0006359362530878187, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T10:56:40+00:00", "unit": "", "value": 0.016951800122571692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 504.88888888888886, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-07T10:56:40+00:00", "unit": "", "value": 0.016951800122571692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 504.88888888888886, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T11:13:55+00:00", "unit": "", "value": 0.03515653355748438, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [1, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T11:20:02+00:00", "unit": "", "value": 0.015497896558171687, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx1_6"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T11:13:55+00:00", "unit": "", "value": 0.03515653355748438, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T11:37:38+00:00", "unit": "", "value": 0.0160990621644867, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 405.3333333333333, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T11:37:38+00:00", "unit": "", "value": 0.0160990621644867, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 405.3333333333333, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-07T11:55:00+00:00", "unit": "", "value": 0.011826337096007389, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [3, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T12:12:23+00:00", "unit": "", "value": 0.02454490012996005, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx3_8"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T11:55:00+00:00", "unit": "", "value": 0.011826337096007389, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T12:29:49+00:00", "unit": "", "value": 0.02021153777322543, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 590.2222222222222, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T14:13:49+00:00", "unit": "", "value": 0.015922830657213644, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 711.1111111111111, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T11:20:02+00:00", "unit": "", "value": 0.015497896558171687, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx6_1"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T12:29:49+00:00", "unit": "", "value": 0.02021153777322543, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 590.2222222222222, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T12:47:04+00:00", "unit": "", "value": 0.013273348749692243, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 540.4444444444445, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T12:47:04+00:00", "unit": "", "value": 0.013273348749692243, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 540.4444444444445, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T13:04:16+00:00", "unit": "", "value": 0.016090620555644725, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T13:21:38+00:00", "unit": "", "value": 0.011384053501933722, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T12:12:23+00:00", "unit": "", "value": 0.02454490012996005, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx8_3"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T13:04:16+00:00", "unit": "", "value": 0.016090620555644725, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T13:39:02+00:00", "unit": "", "value": 0.014462795657984778, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 248.88888888888889, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T13:39:02+00:00", "unit": "", "value": 0.014462795657984778, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 248.88888888888889, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T13:56:21+00:00", "unit": "", "value": 0.010910395045313853, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T14:13:49+00:00", "unit": "", "value": 0.015922830657213644, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 711.1111111111111, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T14:35:42+00:00", "unit": "", "value": 0.010285529834766077, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T14:35:42+00:00", "unit": "", "value": 0.010285529834766077, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T14:57:14+00:00", "unit": "", "value": 0.02382591530175221, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [11, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:09:43+00:00", "unit": "", "value": 0.01296503598444329, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx11_16"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T13:21:38+00:00", "unit": "", "value": 0.011384053501933722, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T14:57:14+00:00", "unit": "", "value": 0.02382591530175221, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:14:44+00:00", "unit": "", "value": 0.0634606351390915, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 1045.3333333333333, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T15:14:44+00:00", "unit": "", "value": 0.0634606351390915, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 1045.3333333333333, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T15:50:34+00:00", "unit": "", "value": 0.02584357040051538, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [13, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T15:33:08+00:00", "unit": "", "value": 0.02862492489048793, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx13_18"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T13:56:21+00:00", "unit": "", "value": 0.010910395045313853, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:50:34+00:00", "unit": "", "value": 0.02584357040051538, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:32:14+00:00", "unit": "", "value": 0.013742969331295318, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 391.1111111111111, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T16:09:43+00:00", "unit": "", "value": 0.01296503598444329, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx16_11"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-07T16:32:14+00:00", "unit": "", "value": 0.013742969331295318, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 391.1111111111111, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T16:49:53+00:00", "unit": "", "value": 0.012724327435765598, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:49:53+00:00", "unit": "", "value": 0.012724327435765598, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T17:07:15+00:00", "unit": "", "value": 0.0116296454858979, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 760.8888888888888, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:33:08+00:00", "unit": "", "value": 0.02862492489048793, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx18_13"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T17:07:15+00:00", "unit": "", "value": 0.0116296454858979, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 760.8888888888888, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-07T17:24:07+00:00", "unit": "", "value": 0.009729516587356962, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T17:24:07+00:00", "unit": "", "value": 0.009729516587356962, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.0.10", "backend_name": "ibmq_singapore", "last_update_date": "2019-10-07T17:24:07+00:00"} \ No newline at end of file diff --git a/qiskit/test/mock/props_vigo.py b/qiskit/test/mock/props_vigo.py new file mode 100644 index 000000000000..26dd752fc6cf --- /dev/null +++ b/qiskit/test/mock/props_vigo.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Vigo device (5 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from .fake_backend import FakeBackend + + +class FakeVigo(FakeBackend): + """A fake 5 qubit backend.""" + + def __init__(self): + """ + 0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 + """ + cmap = [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 4], [4, 3]] + + configuration = QasmBackendConfiguration( + backend_name='fake_vigo', + backend_version='0.0.0', + n_qubits=5, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=False, + max_shots=65536, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 8/30/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_vigo.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/test/randomized/test_transpiler_equivalence.py b/test/randomized/test_transpiler_equivalence.py index 13fb9f79db58..a69ffe50b6b5 100644 --- a/test/randomized/test_transpiler_equivalence.py +++ b/test/randomized/test_transpiler_equivalence.py @@ -26,8 +26,10 @@ from qiskit import execute, transpile, Aer from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister from qiskit.circuit import Measure, Reset, Gate -from qiskit.test.mock import \ - FakeTenerife, FakeMelbourne, FakeRueschlikon, FakeTokyo, FakePoughkeepsie +from qiskit.test.mock import (FakeYorktown, FakeTenerife, FakeOurense, FakeVigo, + FakeMelbourne, FakeRueschlikon, + FakeTokyo, FakePoughkeepsie, FakeAlmaden, FakeSingapore, + FakeJohannesburg, FakeBoeblingen) from qiskit.test.base import dicts_almost_equal @@ -48,8 +50,10 @@ oneQ_oneC_gates = [Measure] variadic_gates = [Barrier] -mock_backends = [FakeTenerife(), FakeMelbourne(), FakeRueschlikon(), - FakeTokyo(), FakePoughkeepsie()] +mock_backends = [FakeYorktown(), FakeTenerife(), FakeOurense(), FakeVigo(), + FakeMelbourne(), FakeRueschlikon(), + FakeTokyo(), FakePoughkeepsie(), FakeAlmaden(), FakeSingapore(), + FakeJohannesburg(), FakeBoeblingen()] @settings(report_multiple_bugs=False, From 90d09ae6b008b7ccce596f011e2d449b6eb54e3a Mon Sep 17 00:00:00 2001 From: Ali Javadi-Abhari Date: Wed, 9 Oct 2019 15:29:19 -0400 Subject: [PATCH 09/37] Update CODEOWNERS --- .github/CODEOWNERS | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ed0254bb0e27..219d1448c11a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,6 +2,9 @@ # modify particular files in the repo. The PR can be merged when approved by at # least one codeowner. However, all Qiskit team members can (and should!) review the PRs. +# Global rule, unless specialized by a later one +* @ajavadia @kdk @mtreinish @1ucian0 + # Individual folders on root directory /tools/ @mtreinish @kdk /examples/ @jaygambetta @mtreinish @maddy-tod @@ -9,21 +12,18 @@ test/ @ajavadia @mtreinish @kdk @1ucian0 docs/ @nonhermitian @mtreinish # Qiskit folders (also their corresponding tests) -assembler/ @diego-plan @taalexander @mtreinish -circuit/ @ajavadia @kdk @ewinston @jaygambetta @1ucian0 -compiler/ @jaygambetta @ajavadia @kdk -converters/ @mtreinish @1ucian0 +circuit/ @ajavadia @kdk @ewinston @1ucian0 @mtreinish +extensions/ @ajavadia @kdk @ewinston @1ucian0 @mtreinish dagcircuit/ @ajavadia @kdk @1ucian0 @maddy-tod -extensions/ @ajavadia @kdk @ewinston -providers/ @diego-plan9 @mtreinish +providers/ @ajavdia @mtreinish @diego-plan9 basicaer/ @chriseclectic @ajavadia pulse/ @lcapelluto @taalexander @eggerdj @nkanazawa1989 -qobj/ @diego-plan9 @jyu00 @taalexander -quantum_info/ @chriseclectic @jaygambetta @levbishop @ajavadia +quantum_info/ @chriseclectic @ajavadia qi/ @chriseclectic @ajavadia -result/ @diego-plan9 @jyu00 @taalexander @mtreinish +result/ @diego-plan9 @jyu00 @taalexander @mtreinish @ajavadia schemas/ @diego-plan9 @dcmckayibm -qiskit/tools/ @nonhermitian transpiler/ @ajavadia @kdk @1ucian0 @itoko @mtreinish -validation/ @diego-plan9 @atilag -visualization/ @nonhermitian @mtreinish @1ucian0 @maddy-tod +assembler/ @ajavadia @kdk @diego-plan @taalexander @mtreinish +qobj/ @diego-plan9 @jyu00 @taalexander @kdk +validation/ @ajavadia @diego-plan @taalexander @mtreinish +visualization/ @nonhermitian @mtreinish @1ucian0 @maddy-tod @ajavadia From 017e1b852d9c4f88c92332ef2cb69f677346c66f Mon Sep 17 00:00:00 2001 From: dennis-liu-1 <54714046+dennis-liu-1@users.noreply.github.com> Date: Thu, 10 Oct 2019 10:27:26 -0400 Subject: [PATCH 10/37] Update plot_state_city() function (#3087) * updated plot_city visualization Matplotlib has a function called get_autoscalez_on() which automatically determines the best intervals to use. This is used in place of set_major_locator(MaxNLocator(5)), which would sometimes cut off the max and min values on the plot axes. Both the real/imag plots should have the same maximum value now. Fixes #2322 * updated plot_city visualization again * removed an unnecessary import * Update qiskit/visualization/state_visualization.py Co-Authored-By: Luciano * Update qiskit/visualization/state_visualization.py Co-Authored-By: Luciano * Update qiskit/visualization/state_visualization.py Co-Authored-By: Matthew Treinish * Fix lint from rebase --- qiskit/visualization/state_visualization.py | 53 ++++++++++----------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/qiskit/visualization/state_visualization.py b/qiskit/visualization/state_visualization.py index 626a09b8e784..09672c54268d 100644 --- a/qiskit/visualization/state_visualization.py +++ b/qiskit/visualization/state_visualization.py @@ -28,7 +28,6 @@ if HAS_MATPLOTLIB: from matplotlib import get_backend - from matplotlib.ticker import MaxNLocator from matplotlib import pyplot as plt from matplotlib.patches import FancyArrowPatch from matplotlib.patches import Circle @@ -330,6 +329,10 @@ def plot_state_city(rho, title="", figsize=None, color=None, y = [0, 0, max(ypos)+0.5, max(ypos)+0.5] z = [0, 0, 0, 0] verts = [list(zip(x, y, z))] + max_dzr = max(dzr) + min_dzr = min(dzr) + min_dzi = np.min(dzi) + max_dzi = np.max(dzi) if ax1 is not None: fc1 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzr, color[0]) @@ -348,6 +351,21 @@ def plot_state_city(rho, title="", figsize=None, color=None, if min(dzr) < 0 < max(dzr): ax1.add_collection3d(pc1) + ax1.set_xticks(np.arange(0.5, lx+0.5, 1)) + ax1.set_yticks(np.arange(0.5, ly+0.5, 1)) + if max_dzr != min_dzr: + ax1.axes.set_zlim3d(np.min(dzr), max(np.max(dzr) + 1e-9, max_dzi)) + else: + if min_dzr == 0: + ax1.axes.set_zlim3d(np.min(dzr), max(np.max(dzr)+1e-9, np.max(dzi))) + else: + ax1.axes.set_zlim3d(auto=True) + ax1.get_autoscalez_on() + ax1.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) + ax1.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) + ax1.set_zlabel('Re[$\\rho$]', fontsize=14) + for tick in ax1.zaxis.get_major_ticks(): + tick.label.set_fontsize(14) if ax2 is not None: fc2 = generate_facecolors(xpos, ypos, zpos, dx, dy, dzi, color[1]) @@ -363,48 +381,29 @@ def plot_state_city(rho, title="", figsize=None, color=None, pc2 = Poly3DCollection(verts, alpha=0.2, facecolor='k', linewidths=1, zorder=1) + if min(dzi) < 0 < max(dzi): ax2.add_collection3d(pc2) - if ax1 is not None: - ax1.set_xticks(np.arange(0.5, lx+0.5, 1)) - ax1.set_yticks(np.arange(0.5, ly+0.5, 1)) - max_dzr = max(dzr) - min_dzr = min(dzr) - if max_dzr != min_dzr: - ax1.axes.set_zlim3d(np.min(dzr), np.max(dzr)+1e-9) - else: - if min_dzr == 0: - ax1.axes.set_zlim3d(np.min(dzr), np.max(dzr)+1e-9) - else: - ax1.axes.set_zlim3d(auto=True) - ax1.zaxis.set_major_locator(MaxNLocator(5)) - ax1.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) - ax1.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) - ax1.set_zlabel("Real[rho]", fontsize=14) - for tick in ax1.zaxis.get_major_ticks(): - tick.label.set_fontsize(14) - if ax2 is not None: + ax2.set_xticks(np.arange(0.5, lx+0.5, 1)) ax2.set_yticks(np.arange(0.5, ly+0.5, 1)) - min_dzi = np.min(dzi) - max_dzi = np.max(dzi) if min_dzi != max_dzi: eps = 0 - ax2.zaxis.set_major_locator(MaxNLocator(5)) - ax2.axes.set_zlim3d(np.min(dzi), np.max(dzi)+eps) + ax2.axes.set_zlim3d(np.min(dzi), max(np.max(dzr)+1e-9, np.max(dzi)+eps)) else: - ax2.axes.set_zlim3d(auto=True) if min_dzi == 0: ax2.set_zticks([0]) eps = 1e-9 - ax2.axes.set_zlim3d(np.min(dzi), np.max(dzi)+eps) + ax2.axes.set_zlim3d(np.min(dzi), max(np.max(dzr)+1e-9, np.max(dzi)+eps)) else: ax2.axes.set_zlim3d(auto=True) ax2.w_xaxis.set_ticklabels(row_names, fontsize=14, rotation=45) ax2.w_yaxis.set_ticklabels(column_names, fontsize=14, rotation=-22.5) - ax2.set_zlabel("Imag[rho]", fontsize=14) + ax2.set_zlabel('Im[$\\rho$]', fontsize=14) for tick in ax2.zaxis.get_major_ticks(): tick.label.set_fontsize(14) + ax2.get_autoscalez_on() + fig.suptitle(title, fontsize=16) if ax_real is None and ax_imag is None: if get_backend() in ['module://ipykernel.pylab.backend_inline', From da18214fed7fdca8806d12971c382ff49ce8db35 Mon Sep 17 00:00:00 2001 From: Nathan Shammah Date: Fri, 11 Oct 2019 01:49:49 +0900 Subject: [PATCH 11/37] Fix Bloch sphere add_points() method (#3230) Fix #3229, restoring the possibility to draw qubits as points on the Bloch sphere. Fix adding points to the QuTiP Bloch sphere, with visualization.bloch.Bloch.add_points(). Apparently the broadcast error arises in Matplotlib 3.1.0 and subsequent versions, differently from 3.0.3 (which worked fine), simply because `edgecolor='none'` is not supported, it is now set to `None`. --- qiskit/visualization/bloch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qiskit/visualization/bloch.py b/qiskit/visualization/bloch.py index b59f6f21c653..dc56aafd5b82 100644 --- a/qiskit/visualization/bloch.py +++ b/qiskit/visualization/bloch.py @@ -548,7 +548,7 @@ def plot_points(self): np.real(self.points[k][2][indperm]), s=self.point_size[np.mod(k, len(self.point_size))], alpha=1, - edgecolor='none', + edgecolor=None, zdir='z', color=self.point_color[np.mod(k, len(self.point_color))], marker=self.point_marker[np.mod(k, @@ -566,7 +566,7 @@ def plot_points(self): self.axes.scatter(np.real(self.points[k][1][indperm]), -np.real(self.points[k][0][indperm]), np.real(self.points[k][2][indperm]), - s=pnt_size, alpha=1, edgecolor='none', + s=pnt_size, alpha=1, edgecolor=None, zdir='z', color=pnt_colors, marker=marker) From 2308b194c85b2293be1d832e1531e7fb6ff89633 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 10 Oct 2019 19:30:24 +0200 Subject: [PATCH 12/37] Update README link to hello_quantum.py example (#3227) Currently, the link to the hello_quantum.py example results in a HTTP 404. This commit updates the link to point to examples/python/ibmq. The file was moved to this location in Commit f5dd2e2753952ff7cdf340d3a917b0878a26e36b ("Add tests that run example python scripts"). --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 157908b73065..6e1d0a7e15e6 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ In this case, the output will be: {'00': 513, '11': 511} ``` -A script is available [here](examples/python/hello_quantum.py), where we also show how to +A script is available [here](examples/python/ibmq/hello_quantum.py), where we also show how to run the same program on a real quantum computer via IBMQ. ### Executing your code on a real quantum chip From 043cff708da6aa4f1a8b5d03111654b5585b04ca Mon Sep 17 00:00:00 2001 From: Kevin Krsulich Date: Thu, 10 Oct 2019 16:23:55 -0400 Subject: [PATCH 13/37] DAG to circuit converter can use _append, should not copy registers. (#3176) * Use QuantumCircuit._append in dag_to_circuit converter. * Don't copy registers in dag_to_circuit converter. --- qiskit/converters/dag_to_circuit.py | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/qiskit/converters/dag_to_circuit.py b/qiskit/converters/dag_to_circuit.py index ffbbc7a61716..240819f63689 100644 --- a/qiskit/converters/dag_to_circuit.py +++ b/qiskit/converters/dag_to_circuit.py @@ -13,11 +13,7 @@ # that they have been altered from the originals. """Helper function for converting a dag to a circuit""" -import collections - from qiskit.circuit import QuantumCircuit -from qiskit.circuit import ClassicalRegister -from qiskit.circuit import QuantumRegister def dag_to_circuit(dag): @@ -29,29 +25,14 @@ def dag_to_circuit(dag): Return: QuantumCircuit: the circuit representing the input dag. """ - qregs = collections.OrderedDict() - for qreg in dag.qregs.values(): - qreg_tmp = QuantumRegister(qreg.size, name=qreg.name) - qregs[qreg.name] = qreg_tmp - cregs = collections.OrderedDict() - for creg in dag.cregs.values(): - creg_tmp = ClassicalRegister(creg.size, name=creg.name) - cregs[creg.name] = creg_tmp name = dag.name or None - circuit = QuantumCircuit(*qregs.values(), *cregs.values(), name=name) + circuit = QuantumCircuit(*dag.qregs.values(), *dag.cregs.values(), name=name) for node in dag.topological_op_nodes(): - qubits = [] - for qubit in node.qargs: - qubits.append(qregs[qubit.register.name][qubit.index]) - - clbits = [] - for clbit in node.cargs: - clbits.append(cregs[clbit.register.name][clbit.index]) - - # Get arguments for classical condition (if any) + # Get arguments for classical control (if any) inst = node.op.copy() inst.condition = node.condition - circuit.append(inst, qubits, clbits) + circuit._append(inst, node.qargs, node.cargs) + return circuit From 8f70d2df44016e7ba375eac1e7c4b38c6eb29f4d Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 10 Oct 2019 17:20:46 -0400 Subject: [PATCH 14/37] Add deprecation policy to CONTRIBUTING.md (#3191) * Add deprecation policy to CONTRIBUTING.md As we've become better about stabilizing interfaces in terra we've started deprecating features and APIs prior removal. This is necessary step towards growing user trust that they can rely on terra moving forward, so that code they write using it will continue to work in the future. However it's not necessarily clear what the expectations are for features and APIs when they become deprecated. This commit attempts to address this by adding a deprecation policy to the CONTRIBUTING.md file which clearly documents how deprecations are handled and establishes the policy around their use. This way end users know what to expect when dealing with deprecations and how long they have to adapt to changes. * Apply suggestions from code review Co-Authored-By: elfrocampeador * Apply suggestions from code review Co-Authored-By: Kevin Krsulich * Add examples for deprecations This commit adds additional sections to the deprecation policy with examples on how to raise a warning, and write release notes for a deprecation and a deprecation removal. * Apply suggestions from code review Co-Authored-By: Kevin Krsulich * Update deprecation warning example This updates the warning based on the review discussion for how to best advertise the removal date. The example deprecation warning now indicates which release a deprecation was added in and mentions the policy of a minimum of 3 months between deprecation in a release and removal. --- CONTRIBUTING.md | 119 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec0004e3708f..8f0382b9c3f3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -526,6 +526,125 @@ the following steps: The `stable/*` branches should only receive changes in the form of bug fixes. +## Deprecation Policy + +End users of Qiskit need to know if a feature or an API they are using and rely +on will still be supported by the software tomorrow. Users rely on existing +features, knowing under which conditions the project can remove (or change in a +backwards incompatible manner) a feature or API is important. To manage +expectations the following policy is how API and feature deprecation and removal +is handled by Qiskit: + +1. Features, APIs or configuration options are marked deprecated in the code. +Appropriate `DeprecationWarning` class warnings will be sent to the user. The +deprecated code will be frozen and receive only minimal maintenance (just so +that it continues to work as-is). + +2. A migration path will be documented for current users of the feature. This +will be outlined in the both the release notes adding the deprecation and the +release notes removing the feature at the completion of the deprecation cycle. +In addition, if feasible the warning message will also include the migration +path. A migration path might be "stop using that feature", but in such cases +it is necessary to first judge how widely used and/or important the feature +is to end users and decided an obsolescence date based on that. + +3. An obsolescence date for the feature will be set. The feature must remain +intact and working (although with the proper warning being emitted) in all +releases pushed until after that obsolescence date. At the very minimum the +feature (or API, or configuration option) should be marked as deprecated (and +still be supported) for at least three months of linear time from the release +date of the first release to include the deprecation warning. For example, if a +feature were deprecated in the 0.9.0 release of terra, which was released on +August 22, 2019, then that feature should still appear in all releases until at +least November 22, 2019. Since releases do not occur at fixed time intervals +this may mean that a deprecation warning may only occur in one release prior to +removal. + +Note that this delay is a minimum. For significant features, it is recommend +that the deprecated feature appears for at least double that time. Also, per +the stable branch policy, deprecation removals can only occur during minor +version releases, they are not appropriate for backporting. + +### Deprecation Warnings + +The proper way to raise a deprecation warning is to use the ``warn`` function +from the [`warnings` module](https://docs.python.org/3/library/warnings.html) +in the python standard library. The warning category class +should be a ``DeprecationWarning``. An example would be: + +```python +import warnings + +def foo(input): + warnings.warn('The qiskit.foo() function is deprecated as of 0.9.0, and ' + 'will be removed no earlier than 3 months after that release ' + 'date. You should use the qiskit.bar() function instead.', + DeprecationWarning, stacklevel=2) +``` + +One thing to note here is the `stack_level` kwarg on the warn() call. This +argument is used to specify which level in the call stack will be used as +the line initiating the warning. Typically `stack_level` should be set to 2 +as this will show the line calling the context where the warning was raised. +In the above example it would be the caller of `foo()`. If you did not set this, +the warning would show that the warning was caused by the line in the foo() +function, which is not helpful for users when trying to determine the origin +of a deprecated call. This value may be adjust though depending on the call +stack and where `warn()` gets called from. For example, if the warning is always +raised by a private method that only has one caller `stack_level=3` might be +appropriate. + +### Deprecation Release Notes + +You can refer to the Release Notes section for the process of creating a +new release note. One thing to keep in mind for deprecation release notes +though is that we need to clearly document a migration path in that release note. +This should outline what the current deprecated behavior would look like and +how users will need to update their code when that deprecated feature is +removed. In addition it is also good to explain the reasoning behind why the +change was being made. This provides context for users as to why they want +to update their code using Qiskit. A simple example would be: + +```yaml + +deprecations: + - | + The function ``qiskit.foo()`` has been deprecated. An alternative function + ``qiskit.bar()`` can be used instead to provide the same functionality. + This alternative function provides the exact same functionality but with + better performance and more thorough validity checking. +``` + +In addition the `Changelog: Deprecation` label should be applied to any PRs +adding deprecation warnings so that they are highlighted in the changelog for +the release. + +#### Deprecation Removal Release Notes + +When an obsolecense date has passed and it's been determined safe to remove a +deprecated feature from Qiskit we need to have an upgrade note in the release +notes. We can copy the migration path from the deprecation release +note but we should also indicate that the feature was deprecated and in which +release. For example, building off the example in the previous section, if +that deprecation occurred in the 0.9.0 release which occurred on August 22, 2019 +and the removal occurred in the **hypothetical** 0.11.0 release on December 2nd, +2019 the release note would look like: + +```yaml +upgrade: + - | + The previously deprecated function ``qiskit.foo()``, which was deprecated + in the 0.9.0 release, has been removed. The ``qiskit.bar()`` function + should be used instead. ``qiskit.bar()`` provides the exact same + functionality but with better performance and more thorough validity + checking. +``` + +Pull requests that remove a deprecated function will need to be tagged with the +`Changelog: Removal` label so that they get highlighted in the changelog for +the release. + + ## Stable Branch Policy The stable branch is intended to be a safe source of fixes for high From e27f8bb13806e192c607ed5badeb0b3cf7f4e980 Mon Sep 17 00:00:00 2001 From: Matt-Stypulkoski <50181769+Matt-Stypulkoski@users.noreply.github.com> Date: Thu, 10 Oct 2019 23:30:15 -0400 Subject: [PATCH 15/37] Prevent Custom Multiqubit Gate Overlapping (#3174) * Fix custom multiqubit gate box overlapping * Apply custom gate overlapping fix to subtext * Fix linter --- qiskit/visualization/matplotlib.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/qiskit/visualization/matplotlib.py b/qiskit/visualization/matplotlib.py index 50c280ff3c10..4ff48aa5aea3 100644 --- a/qiskit/visualization/matplotlib.py +++ b/qiskit/visualization/matplotlib.py @@ -189,10 +189,10 @@ def _custom_multiqubit_gate(self, xy, cxy=None, fc=None, wide=True, text=None, ypos = min([y[1] for y in cxy]) if wide: if subtext: - boxes_length = round(max([len(text), len(subtext)]) / 8) or 1 + boxes_length = round(max([len(text), len(subtext)]) / 6) or 1 else: - boxes_length = round(len(text) / 8) or 1 - wid = WID * 2.2 * boxes_length + boxes_length = math.ceil(len(text) / 6) or 1 + wid = WID * 2.5 * boxes_length else: wid = WID @@ -224,6 +224,7 @@ def _custom_multiqubit_gate(self, xy, cxy=None, fc=None, wide=True, text=None, clip_on=True, zorder=PORDER_TEXT) if text: + disp_text = text if subtext: self.ax.text(xpos, ypos + 0.5 * height, disp_text, ha='center', @@ -241,7 +242,8 @@ def _custom_multiqubit_gate(self, xy, cxy=None, fc=None, wide=True, text=None, fontsize=self._style.fs, color=self._style.gt, clip_on=True, - zorder=PORDER_TEXT) + zorder=PORDER_TEXT, + wrap=True) def _gate(self, xy, fc=None, wide=False, text=None, subtext=None): xpos, ypos = xy @@ -668,7 +670,8 @@ def _draw_ops(self, verbose=False): elif op.name not in ['barrier', 'snapshot', 'load', 'save', 'noise', 'cswap', 'swap', 'measure'] and len( op.name) >= 4: - box_width = round(len(op.name) / 8) + box_width = math.ceil(len(op.name) / 6) + # handle params/subtext longer than op names if op.type == 'op' and hasattr(op.op, 'params'): param = self.param_parse(op.op.params) @@ -684,13 +687,7 @@ def _draw_ops(self, verbose=False): layer_width = 2 continue # If more than 4 characters min width is 2 - if box_width <= 1: - box_width = 2 - if layer_width < box_width: - if box_width > 2: - layer_width = box_width * 2 - else: - layer_width = 2 + layer_width = math.ceil(box_width * WID * 2.5) this_anc = prev_anc + 1 From 6e7cde4649e4478feac8807b5cb381e7e588978e Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Fri, 11 Oct 2019 10:04:24 -0400 Subject: [PATCH 16/37] Deprecate passing in an ast node as a instruction parameter (#3240) This commit deprecates the option of passing in a circuit parameter of a qasm.node.Node type. Passing in qasm ast nodes as a parameter is rarely used and is not actually done anywhere in the qiskit-terra code or tests. Additionally there is the qiskit ast_to_circuit converter which will take a program node object (the root node of a qasm ast) and convert that directly to a circuit object. --- qiskit/circuit/instruction.py | 18 +++++++++++++++--- ...-qasm-ast-node-params-3cc930ea2c677a96.yaml | 10 ++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml diff --git a/qiskit/circuit/instruction.py b/qiskit/circuit/instruction.py index 8676987be998..e5e52c1f3636 100644 --- a/qiskit/circuit/instruction.py +++ b/qiskit/circuit/instruction.py @@ -34,6 +34,8 @@ """ import copy from itertools import zip_longest +import warnings + import sympy import numpy @@ -52,11 +54,14 @@ class Instruction: def __init__(self, name, num_qubits, num_clbits, params): """Create a new instruction. + Args: name (str): instruction name num_qubits (int): instruction's qubit width num_clbits (int): instruction's clbit width - params (list[sympy.Basic|qasm.Node|int|float|complex|str|ndarray]): list of parameters + params (list[sympy.Basic||int|float|complex|str|ParameterExpressionndarray]): list of + parameters + Raises: QiskitError: when the register is not in the correct format. """ @@ -140,6 +145,15 @@ def params(self, parameters): self._params.append(single_param) # example: OpenQASM parsed instruction elif isinstance(single_param, node.Node): + warnings.warn('Using qasm ast node as a circuit.Instruction ' + 'parameter is deprecated as of the 0.10.0, and ' + 'will be removed no earlier than 3 months after ' + 'that release date. You should convert the qasm ' + 'node to a supported type int, float, complex, ' + 'str, circuit.ParameterExpression, or ndarray ' + 'before setting Instruction.parameters', + DeprecationWarning, stacklevel=3) + self._params.append(single_param.sym()) # example: u3(0.1, 0.2, 0.3) elif isinstance(single_param, (int, float)): @@ -344,7 +358,6 @@ def repeat(self, n): @property def control(self): """temporary classical control. Will be deprecated.""" - import warnings warnings.warn('The instruction attribute, "control", will be renamed ' 'to "condition". The "control" method will later be used ' 'to create quantum controlled gates') @@ -352,7 +365,6 @@ def control(self): @control.setter def control(self, value): - import warnings warnings.warn('The instruction attribute, "control", will be renamed ' 'to "condition". The "control" method will later be used ' 'to create quantum controlled gates') diff --git a/releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml b/releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml new file mode 100644 index 000000000000..627b8b906f2a --- /dev/null +++ b/releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml @@ -0,0 +1,10 @@ +--- +deprecations: + - | + Support for setting ``qiskit.circuit.Instruction`` parameters with an object + of type ``qiskit.qasm.node.Node`` has been deprecated. ``Node`` objects that + were previously used as parameters should be converted to a supported type + prior to initializing a new ``Instruction`` object or calling the + ``Instruction.params`` setter. Supported types are ``int``, ``float``, + ``complex``, ``str``, ``qiskit.circuit.ParameterExpression``, or + ``numpy.ndarray``. From 5270887cc26775606c80521a43ddc24e34fff4d8 Mon Sep 17 00:00:00 2001 From: Kevin Krsulich Date: Fri, 11 Oct 2019 11:30:14 -0400 Subject: [PATCH 17/37] Add initial support for working with ion-trap devices (#3214) * Add partial transpiler support for targeting ion trap backends. (#3122) * handle reset/barrier/measure (#3130) * Do not unroll an Rx,Ry,Rxx circuit to U3,CX because of measure. (#3140) * rebase ion-trap branch (#3153) * Remove changelog and document automated creation (#3109) * Remove changelog and document automated creation With the introduction of the qiskit-bot release automation for terra we no longer need to manually maintain or keep a changelog in repo. The github release pages (which we were manually copy and pasting the changelog into already) take the place of this file. For all future releases the creation of this page is completely automatic and handled by the bot. This works by using the git log and PR tags to figure out which commits belong in the changelog summary. The commit msg summary (the first line) is used for the changelog based on the tags. If a longer explanation is necessary that should be handled in the reno release notes. Fixes #3077 * Add README section on changelog * Make tweaks to readme for clarity * The option fig.tight_layout is triggering warnings in some situations so it is being removed (#3123) * no fig.tight_layout * removing the rest of fig.tight_layout() * check casteable types in Layout (#3100) * test * cast in insinstance * style * layouts are already layouts :) * Travis CI: The sudo: tag is deprecated on Travis (#3134) https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration * Fix a syntax error in QuantumCircuit.mirror. (#3138) * Fix for #3106 gatefacecolor key on circuit diagrams (#3137) * Issue #3106 gatefacecolor key has no effect on circuit diagrams If the style property "gatefacecolor" is set to a different value than the default, this color is applied. Fixes #3106 * Solved style problem space before : eliminated * Update plot_state_hinton() formatting (#3093) Add axes to the image part. It looks like the image axes already exist for non-empty graphs. The change that I made here is to remove if np.any(dataimag != 0): if the desired behavior is to see the axes on graphs that don't contain any elements. Replace rho with the latex rho Use standard format for real and imag parts of rho Fixes #2321 * Set barrier across multi-qubits correctly (#3042) * Previously it was assumed that specified barrier has a single contiguous span across qubits. Qubits for the barrier need not be adjacent in the diagram. This commit handles this case by adding barrier across correct qubits. * compute multiple short spans. Fixes #2918 * Test pulse clipping fix Osx #1. (#3144) * Remove superfluous reference to timeslots from assemble_schedules (#3139) * Extend custom multiqubit gates over classical bits for mpl (#3062) * Got it to extend over the clasical bits * Fixed a small bug * Removed a file accidentally modified * Fix linter * Deprecate allowing extra keys in circuit drawer style dict (#3105) * test * cast in insinstance * style * layouts are already layouts :) * style['plotbarrier'] is being deprecated * internal param for text drawer renamed to plot_barriers * error when style contains unknown options * better error message * remove #3100, since it was not my intention to be on it * style * remove plotbarrier * unused import * replace error with warning * release note * rochester_layout (#3125) * Use _append when args already converted and broadcast. (#2936) * Remove line in init which had been commented out (#3150) * Fix circuit drawing justification (#3061) Fixes #2802 qiskit/visualization/utils.py _get_layered_instructions() was erroneous and did not justify left nor right correctly. I have reworked that code which underlies many visual representations of circuits to the user. * refactored, needs more work on right justification * Looks like this works for qiskit-terra issue #2802 * May fix first test failure for this pull request, while causing another? * Draws conditionals on ClassicalRegister correctly now. * - Occurs check for gate in gates leads to good test results. - Added a few more self.maxDiff = None while debugging. Should they be pulled out? * tabs and trailing spaces ;) * removed the maxDiff's because they make the Style and lint test in Python 3.5 fail * added tests modified changelog * Test case extended to include original issue reported in #2802 * oops, left a maxDiff=None in from testing. Fixed * changes to utils.py requested by reviewer maddy-tod * test cases split as requested by reviewer maddy-tod * added circuit diagrams in comments to new tests * removed note from changelog and made it a release note per @mtreinish * made _LayerSpooler a private class * Revert "Remove changelog and document automated creation (#3109)" This reverts commit effad1228e0d9f24ea3343e0821054b74bd4e8ea. * Make _LayerSpooler a subclass of list The _LayerSpooler class was only ever used as list. While the class was an independent type it basically just wrapped an internal list. THen there were helper functions to access and manipulate that list. These methods just duplicated what python already provides and the list class itself already implements. This commit fixes this so the _LayerSpooler itself is a subclass of list so when it's initialized you can just treat it as the output list it was generating. * Clean up release note, fix only, not prelude * un reverted my revert of CONTRIBUTING.md * refactored, needs more work on right justification * Looks like this works for qiskit-terra issue #2802 * May fix first test failure for this pull request, while causing another? * Draws conditionals on ClassicalRegister correctly now. * - Occurs check for gate in gates leads to good test results. - Added a few more self.maxDiff = None while debugging. Should they be pulled out? * tabs and trailing spaces ;) * removed the maxDiff's because they make the Style and lint test in Python 3.5 fail * added tests modified changelog * Test case extended to include original issue reported in #2802 * oops, left a maxDiff=None in from testing. Fixed * changes to utils.py requested by reviewer maddy-tod * test cases split as requested by reviewer maddy-tod * added circuit diagrams in comments to new tests * removed note from changelog and made it a release note per @mtreinish * made _LayerSpooler a private class * Make _LayerSpooler a subclass of list The _LayerSpooler class was only ever used as list. While the class was an independent type it basically just wrapped an internal list. THen there were helper functions to access and manipulate that list. These methods just duplicated what python already provides and the list class itself already implements. This commit fixes this so the _LayerSpooler itself is a subclass of list so when it's initialized you can just treat it as the output list it was generating. * Clean up release note, fix only, not prelude * put back missing section * Add partial transpiler support for targeting ion trap backends. (#3122) * handle reset/barrier/measure (#3130) * Do not unroll an Rx,Ry,Rxx circuit to U3,CX because of measure. (#3140) * Add global Molmer-Sorenson gate (#3149) * add global ms gate * clean up * Update qiskit/extensions/standard/ms.py Co-Authored-By: Kevin Krsulich * Update qiskit/extensions/standard/ms.py Co-Authored-By: Kevin Krsulich * clean up * Update qiskit/extensions/standard/ms.py Co-Authored-By: Lauren Capelluto * Update MS docstring --- qiskit/extensions/standard/__init__.py | 1 + qiskit/extensions/standard/ms.py | 59 ++++++++++ .../transpiler/passes/ms_basis_decomposer.py | 102 ++++++++++++++++++ qiskit/transpiler/transpile_circuit.py | 17 +++ test/python/compiler/test_transpiler.py | 56 ++++++++++ 5 files changed, 235 insertions(+) create mode 100755 qiskit/extensions/standard/ms.py create mode 100644 qiskit/transpiler/passes/ms_basis_decomposer.py diff --git a/qiskit/extensions/standard/__init__.py b/qiskit/extensions/standard/__init__.py index 0794d9189725..934106d6ac87 100644 --- a/qiskit/extensions/standard/__init__.py +++ b/qiskit/extensions/standard/__init__.py @@ -45,3 +45,4 @@ from .cu3 import Cu3Gate from .rzz import RZZGate from .rxx import RXXGate +from .ms import MSGate diff --git a/qiskit/extensions/standard/ms.py b/qiskit/extensions/standard/ms.py new file mode 100755 index 000000000000..dad447f10d70 --- /dev/null +++ b/qiskit/extensions/standard/ms.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +# pylint: disable=invalid-name + +""" +Global Mølmer–Sørensen gate. + +The Mølmer–Sørensen gate is native to ion-trap systems. The global MS can be +applied to multiple ions to entangle multiple qubits simultaneously. + +In the two-qubit case, this is equivalent to an XX(theta) interaction, +and is thus reduced to the RXXGate. +""" + + +from qiskit.circuit import Gate +from qiskit.circuit import QuantumCircuit +from qiskit.circuit import QuantumRegister +from qiskit.extensions.standard.rxx import RXXGate + + +class MSGate(Gate): + """Global Molmer-Sorensen gate.""" + + def __init__(self, n_qubits, theta): + """Create new MS gate.""" + super().__init__("ms", n_qubits, [theta]) + + def _define(self): + definition = [] + q = QuantumRegister(self.num_qubits, "q") + rule = [] + for i in range(self.num_qubits): + for j in range(i+1, self.num_qubits): + rule += [(RXXGate(self.params[0]), [q[i], q[j]], [])] + + for inst in rule: + definition.append(inst) + self.definition = definition + + +def ms(self, theta, qubits): + """Apply MS to q1 and q2.""" + return self.append(MSGate(len(qubits), theta), qubits) + + +QuantumCircuit.ms = ms diff --git a/qiskit/transpiler/passes/ms_basis_decomposer.py b/qiskit/transpiler/passes/ms_basis_decomposer.py new file mode 100644 index 000000000000..526876ba9de6 --- /dev/null +++ b/qiskit/transpiler/passes/ms_basis_decomposer.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2017, 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Pass for converting a circuit targeting U3,CX basis to Rx,Ry,Rxx.""" + +from qiskit.transpiler.basepasses import TransformationPass +from qiskit.exceptions import QiskitError + +from qiskit.converters import circuit_to_dag +from qiskit.extensions.standard import U3Gate, CnotGate + +from qiskit.transpiler.passes import Unroller +from qiskit.quantum_info.synthesis.one_qubit_decompose import OneQubitEulerDecomposer +from qiskit.quantum_info.synthesis.ion_decompose import cnot_rxx_decompose + + +class MSBasisDecomposer(TransformationPass): + """ + Convert a circuit in U3,CX to Rx,Ry,Rxx without unrolling or simplification. + """ + + supported_input_gates = (U3Gate, CnotGate) + supported_basis_names = ('rx', 'ry', 'rxx', 'ms') + + def __init__(self, basis): + """ + Args: + basis (list[str]): Target basis names, e.g. `['rx', 'ry', 'rxx', 'ms']` . + + Raises: + QiskitError: if target basis is not [ 'rx', 'ry', 'rxx', 'ms' ] + + """ + super().__init__() + + self.basis = basis + self.requires = [Unroller(list(set(basis).union(['u3', 'cx'])))] + + def run(self, dag): + """Replace U3,CX nodes in input dag with equivalent Rx,Ry,Rxx gates. + + Args: + dag(DAGCircuit): input dag + + Raises: + QiskitError: if input dag includes gates outside U3,CX. + + Returns: + DAGCircuit: output dag + """ + + one_q_decomposer = OneQubitEulerDecomposer(basis='XYX') + cnot_decomposition = cnot_rxx_decompose() + + for node in dag.op_nodes(): + basic_insts = ['measure', 'reset', 'barrier', 'snapshot'] + if node.name in basic_insts: + # TODO: this is legacy behavior. basic_insts should be removed and these + # instructions should be part of the device-reported basis. Currently, no + # backend reports "measure", for example. + continue + if node.name in self.basis: # If already a base, ignore. + continue + + if not isinstance(node.op, self.supported_input_gates): + raise QiskitError("Cannot convert the circuit to the given basis, %s. " + "No rule to expand instruction %s." % + (str(self.basis), node.op.name)) + + if isinstance(node.op, U3Gate): + replacement_circuit = one_q_decomposer(node.op) + elif isinstance(node.op, CnotGate): + # N.B. We can't circuit_to_dag once outside the loop because + # substitute_node_with_dag will modify the input DAG if the + # node to be replaced is conditional. + + replacement_circuit = cnot_decomposition + else: + raise QiskitError("Unable to handle instruction (%s, %s)." + % (node.op.name, type(node.op))) + + replacement_dag = circuit_to_dag(replacement_circuit) + + # N.B. wires kwarg can be omitted for both 1Q and 2Q substitutions. + # For 1Q, one-to-one mapping is always correct. For 2Q, + # cnot_rxx_decompose follows convention of control as q[0], target + # as q[1], which matches qarg order in CX node. + + dag.substitute_node_with_dag(node, replacement_dag) + + return dag diff --git a/qiskit/transpiler/transpile_circuit.py b/qiskit/transpiler/transpile_circuit.py index bbd7208793b8..aed51e61501b 100644 --- a/qiskit/transpiler/transpile_circuit.py +++ b/qiskit/transpiler/transpile_circuit.py @@ -18,6 +18,7 @@ level_1_pass_manager, level_2_pass_manager, level_3_pass_manager) +from qiskit.transpiler.passes.ms_basis_decomposer import MSBasisDecomposer from qiskit.transpiler.exceptions import TranspilerError @@ -40,6 +41,19 @@ def transpile_circuit(circuit, transpile_config): # or we choose an appropriate one based on desired optimization level (default: level 1) else: + # Workaround for ion trap support: If basis gates includes + # Mølmer-Sørensen (rxx) and the circuit includes gates outside the basis, + # first unroll to u3, cx, then run MSBasisDecomposer to target basis. + basic_insts = ['measure', 'reset', 'barrier', 'snapshot'] + device_insts = set(transpile_config.basis_gates).union(basic_insts) + + ms_basis_swap = None + if 'rxx' in transpile_config.basis_gates and \ + not device_insts >= circuit.count_ops().keys(): + ms_basis_swap = transpile_config.basis_gates + transpile_config.basis_gates = list(set(['u3', 'cx']).union( + transpile_config.basis_gates)) + level = transpile_config.optimization_level if level is None: level = 1 @@ -55,6 +69,9 @@ def transpile_circuit(circuit, transpile_config): else: raise TranspilerError("optimization_level can range from 0 to 3.") + if ms_basis_swap is not None: + pass_manager.append(MSBasisDecomposer(ms_basis_swap)) + # Set a callback on the pass manager there is one if getattr(transpile_config, 'callback', None): pass_manager.callback = transpile_config.callback diff --git a/test/python/compiler/test_transpiler.py b/test/python/compiler/test_transpiler.py index 2324996784e4..0663b9ea18b4 100644 --- a/test/python/compiler/test_transpiler.py +++ b/test/python/compiler/test_transpiler.py @@ -17,6 +17,7 @@ import math import unittest from unittest.mock import patch +from ddt import ddt, data from qiskit import BasicAer from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit @@ -31,8 +32,10 @@ from qiskit.transpiler import PassManager from qiskit.transpiler.exceptions import TranspilerError from qiskit.transpiler.passes import BarrierBeforeFinalMeasurements, CXDirection +from qiskit.quantum_info import Operator +@ddt class TestTranspile(QiskitTestCase): """Test transpile function.""" @@ -636,3 +639,56 @@ def test_check_circuit_width(self): with self.assertRaises(TranspilerError): transpile(qc, coupling_map=cmap) + + @data(0, 1, 2, 3) + def test_ms_unrolls_to_cx(self, optimization_level): + """Verify a Rx,Ry,Rxx circuit transpile to a U3,CX target.""" + + qc = QuantumCircuit(2) + qc.rx(math.pi/2, 0) + qc.ry(math.pi/4, 1) + qc.rxx(math.pi/4, 0, 1) + + out = transpile(qc, basis_gates=['u3', 'cx'], optimization_level=optimization_level) + + self.assertTrue(Operator(qc).equiv(out)) + + @data(0, 1, 2, 3) + def test_ms_can_target_ms(self, optimization_level): + """Verify a Rx,Ry,Rxx circuit can transpile to an Rx,Ry,Rxx target.""" + + qc = QuantumCircuit(2) + qc.rx(math.pi/2, 0) + qc.ry(math.pi/4, 1) + qc.rxx(math.pi/4, 0, 1) + + out = transpile(qc, basis_gates=['rx', 'ry', 'rxx'], optimization_level=optimization_level) + + self.assertTrue(Operator(qc).equiv(out)) + + @data(0, 1, 2, 3) + def test_cx_can_target_ms(self, optimization_level): + """Verify a U3,CX circuit can transpiler to a Rx,Ry,Rxx target.""" + + qc = QuantumCircuit(2) + qc.h(0) + qc.cx(0, 1) + qc.rz(math.pi/4, [0, 1]) + + out = transpile(qc, basis_gates=['rx', 'ry', 'rxx'], optimization_level=optimization_level) + + self.assertTrue(Operator(qc).equiv(out)) + + @data(0, 1, 2, 3) + def test_measure_doesnt_unroll_ms(self, optimization_level): + """Verify a measure doesn't cause an Rx,Ry,Rxx circuit to unroll to U3,CX.""" + + qc = QuantumCircuit(2, 2) + qc.rx(math.pi/2, 0) + qc.ry(math.pi/4, 1) + qc.rxx(math.pi/4, 0, 1) + qc.measure([0, 1], [0, 1]) + + out = transpile(qc, basis_gates=['rx', 'ry', 'rxx'], optimization_level=optimization_level) + + self.assertEqual(qc, out) From b1e25954f92955e2e7b13ad93ff649e0943788f2 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Fri, 11 Oct 2019 14:08:34 -0400 Subject: [PATCH 18/37] Fix latex drawer bit subscript for indexes >=10 (#3245) The latex drawer was writing out latex for the bit labels as: \lstick{$REG_$INDEX: \ket{0}} where $REG and $INDEX are a quantum register name and index respectively. However, if the index exceeds 1 character in length the latex subscript doesn't work anymore because it will only apply to the first character. This commit fixes that issue by wrapping the index in {} to make the subscript apply to the whole thing. Fixes #3244 --- qiskit/visualization/latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qiskit/visualization/latex.py b/qiskit/visualization/latex.py index cb3aa6c1efc8..cc597e7b87c1 100644 --- a/qiskit/visualization/latex.py +++ b/qiskit/visualization/latex.py @@ -221,7 +221,7 @@ def _initialize_latex_array(self, aliases=None): ": 0}" else: if self.layout is None: - self._latex[i][0] = "\\lstick{{ {}_{} : \\ket{{0}} }}".format( + self._latex[i][0] = "\\lstick{{ {}_{{{}}} : \\ket{{0}} }}".format( self.ordered_regs[i].register.name, self.ordered_regs[i].index) else: self._latex[i][0] = "\\lstick{{({}_{{{}}})~q_{{{}}} : \\ket{{0}} }}".format( From 195f2328efd831958d1eb9f622f9c49e7608b231 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Fri, 11 Oct 2019 16:36:46 -0400 Subject: [PATCH 19/37] Use numpy randint instead of choice for conditional (#3248) The conditional code in qiskit.circuit.random.random_circuit() was creating a list of 2^n_qubits to use np.random.choice() to pick a single integer from that list. However, when you have a large number of qubits, like 53, this will result in a memory error because you're trying to allocate a list larger than is possible. This commit changes the selection of the conditional value to select a random integer directly instead of using a list to select a random integer. --- qiskit/circuit/random/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/qiskit/circuit/random/utils.py b/qiskit/circuit/random/utils.py index 21e9737e1f39..a464fbb8d1b3 100644 --- a/qiskit/circuit/random/utils.py +++ b/qiskit/circuit/random/utils.py @@ -96,8 +96,7 @@ def random_circuit(n_qubits, depth, max_operands=3, measure=False, # with some low probability, condition on classical bit values if conditional and rng.choice(range(10)) == 0: - possible_values = range(pow(2, n_qubits)) - value = rng.choice(list(possible_values)) + value = rng.randint(0, np.power(2, n_qubits)) op.condition = (cr, value) qc.append(op, register_operands) From e5870a44ab8b866c6acb8b5449ec1bb15633dcc8 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Fri, 11 Oct 2019 21:18:26 -0400 Subject: [PATCH 20/37] Update docstring for circuit_drawer and QuantumCircuit.draw (#3219) * Update docstring for circuit_drawer and QuantumCircuit.draw The docstrings for both the qiskit.visualization.circuit_drawer() function and the qiskit.circuit.QuantumCircuit.draw() method were quite stale. With numerous formatting issues and out of date information. This commit goes through them and updates both the style and contents to render correctly in sphinx and reflect the current state of the functions. * Apply suggestions from code review Co-Authored-By: Ali Javadi-Abhari * Fix lint issues introduced by github web editor * Add style dict doc to circuit draw() method --- qiskit/circuit/quantumcircuit.py | 200 +++++++++++--- qiskit/visualization/circuit_visualization.py | 250 ++++++++++-------- 2 files changed, 301 insertions(+), 149 deletions(-) diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index a7b738c66d5b..4633945b3e29 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -564,72 +564,192 @@ def draw(self, scale=0.7, filename=None, style=None, output=None, with_layout=True, fold=None, ax=None): """Draw the quantum circuit - Using the output parameter you can specify the format. The choices are: - 0. text: ASCII art string - 1. latex: high-quality images, but heavy external software dependencies - 2. matplotlib: purely in Python with no external dependencies + **text**: ASCII art TextDrawing that can be printed in the console. - Defaults to an overcomplete basis, in order to not alter gates. + **latex**: high-quality images compiled via latex. + + **latex_source**: raw uncompiled latex output. + + **matplotlib**: images with color rendered purely in Python. Args: scale (float): scale of image to draw (shrink if < 1) filename (str): file path to save image to style (dict or str): dictionary of style or file name of style - file. You can refer to the - :ref:`Style Dict Doc ` for more information - on the contents. + file. This option is only used by the ``mpl`` output type. If a + str is passed in that is the path to a json file which contains + that will be open, parsed, and then used just as the input + dict. See: :ref:`Style Dict Doc ` for more + information on the contents. output (str): Select the output method to use for drawing the - circuit. Valid choices are `text`, `latex`, `latex_source`, - `mpl`. By default the 'text' drawer is used unless a user - config file has an alternative backend set as the default. If - the output is passed in that backend will always be used. + circuit. Valid choices are ``text``, ``latex``, + ``latex_source``, or ``mpl``. By default the `'text`' drawer is + used unless a user config file has an alternative backend set + as the default. If the output kwarg is set, that backend + will always be used over the default in a user config file. interactive (bool): when set true show the circuit in a new window (for `mpl` this depends on the matplotlib backend being used supporting this). Note when used with either the `text` or the `latex_source` output type this has no effect and will be silently ignored. - line_length (int): sets the length of the lines generated by `text` + line_length (int): Deprecated, see `fold` which supersedes this + option. Sets the length of the lines generated by `text` output + type. This useful when the drawing does not fit in the console. + If None (default), it will try to guess the console width using + ``shutil.get_terminal_size()``. However, if you're running in + jupyter the default line length is set to 80 characters. If you + don't want pagination at all, set ``line_length=-1``. reverse_bits (bool): When set to True reverse the bit order inside registers for the output visualization. plot_barriers (bool): Enable/disable drawing barriers in the output circuit. Defaults to True. - justify (string): Options are `left`, `right` or `none`, if anything - else is supplied it defaults to left justified. It refers to where - gates should be placed in the output circuit if there is an option. - `none` results in each gate being placed in its own column. Currently - only supported by text drawer. - vertical_compression (string): `high`, `medium` or `low`. It merges the - lines generated by `text` so the drawing will take less vertical room. - Default is `medium`. It is ignored if output is not `text`. - idle_wires (bool): Include idle wires. Default is True. - with_layout (bool): Include layout information, with labels on the physical - layout. Default is True. + justify (string): Options are ``left``, ``right`` or + ``none``, if anything else is supplied it defaults to left + justified. It refers to where gates should be placed in the + output circuit if there is an option. ``none`` results in + each gate being placed in its own column. + vertical_compression (string): ``high``, ``medium`` or ``low``. It + merges the lines generated by the ``text`` output so the + drawing will take less vertical room. Default is ``medium``. + Only used by the ``text`` output, will be silently ignored + otherwise. + idle_wires (bool): Include idle wires (wires with no circuit + elements) in output visualization. Default is True. + with_layout (bool): Include layout information, with labels on the + physical layout. Default is True. fold (int): Sets pagination. It can be disabled using -1. In `text`, sets the length of the lines. This useful when the - drawing does not fit in the console. If None (default), it will try to - guess the console width using `shutil.get_terminal_size()`. However, if - running in jupyter, the default line length is set to 80 characters. - In `mpl` is the amount of operations before folding. Default is 25. + drawing does not fit in the console. If None (default), it will + try to guess the console width using ``shutil. + get_terminal_size()``. However, if running in jupyter, the + default line length is set to 80 characters. In ``mpl`` is the + number of (visual) layers before folding. Default is 25. ax (matplotlib.axes.Axes): An optional Axes object to be used for the visualization output. If none is specified a new matplotlib - Figure will be created and used. Additionally, if specified there - will be no returned Figure since it is redundant. This is only used - when the ``output`` kwarg is set to use the ``mpl`` backend. It - will be silently ignored with all other outputs. + Figure will be created and used. Additionally, if specified + there will be no returned Figure since it is redundant. This is + only used when the ``output`` kwarg is set to use the ``mpl`` + backend. It will be silently ignored with all other outputs. Returns: - PIL.Image or matplotlib.figure or str or TextDrawing: - * PIL.Image: (output `latex`) an in-memory representation of the - image of the circuit diagram. - * matplotlib.figure: (output `mpl`) a matplotlib figure object - for the circuit diagram, if the ``ax`` kwarg is not set. - * str: (output `latex_source`). The LaTeX source code. - * TextDrawing: (output `text`). A drawing that can be printed as - ascii art + :class:`PIL.Image` or :class:`matplotlib.figure` or :class:`str` or + :class:`TextDrawing`: + + * `PIL.Image` (output='latex') + an in-memory representation of the image of the circuit + diagram. + * `matplotlib.figure.Figure` (output='mpl') + a matplotlib figure object for the circuit diagram. + * `str` (output='latex_source') + The LaTeX source code for visualizing the circuit diagram. + * `TextDrawing` (output='text') + A drawing that can be printed as ascii art Raises: VisualizationError: when an invalid output method is selected + ImportError: when the output methods requires non-installed + libraries. + + .. _style-dict-circ-doc: + + **Style Dict Details** + + The style dict kwarg contains numerous options that define the style of + the output circuit visualization. The style dict is only used by the + ``mpl`` output. The options available in the style dict are defined + below: + + Args: + textcolor (str): The color code to use for text. Defaults to + `'#000000'` + subtextcolor (str): The color code to use for subtext. Defaults to + `'#000000'` + linecolor (str): The color code to use for lines. Defaults to + `'#000000'` + creglinecolor (str): The color code to use for classical register + lines. Defaults to `'#778899'` + gatetextcolor (str): The color code to use for gate text. Defaults + to `'#000000'` + gatefacecolor (str): The color code to use for gates. Defaults to + `'#ffffff'` + barrierfacecolor (str): The color code to use for barriers. + Defaults to `'#bdbdbd'` + backgroundcolor (str): The color code to use for the background. + Defaults to `'#ffffff'` + fontsize (int): The font size to use for text. Defaults to 13 + subfontsize (int): The font size to use for subtext. Defaults to 8 + displaytext (dict): A dictionary of the text to use for each + element type in the output visualization. The default values + are:: + + { + 'id': 'id', + 'u0': 'U_0', + 'u1': 'U_1', + 'u2': 'U_2', + 'u3': 'U_3', + 'x': 'X', + 'y': 'Y', + 'z': 'Z', + 'h': 'H', + 's': 'S', + 'sdg': 'S^\\dagger', + 't': 'T', + 'tdg': 'T^\\dagger', + 'rx': 'R_x', + 'ry': 'R_y', + 'rz': 'R_z', + 'reset': '\\left|0\\right\\rangle' + } + + You must specify all the necessary values if using this. There + is no provision for passing an incomplete dict in. + displaycolor (dict): The color codes to use for each circuit + element. The default values are:: + + { + 'id': '#F0E442', + 'u0': '#E7AB3B', + 'u1': '#E7AB3B', + 'u2': '#E7AB3B', + 'u3': '#E7AB3B', + 'x': '#58C698', + 'y': '#58C698', + 'z': '#58C698', + 'h': '#70B7EB', + 's': '#E0722D', + 'sdg': '#E0722D', + 't': '#E0722D', + 'tdg': '#E0722D', + 'rx': '#ffffff', + 'ry': '#ffffff', + 'rz': '#ffffff', + 'reset': '#D188B4', + 'target': '#70B7EB', + 'meas': '#D188B4' + } + + Also, just like `displaytext` there is no provision for an + incomplete dict passed in. + + latexdrawerstyle (bool): When set to True enable latex mode which + will draw gates like the `latex` output modes. + usepiformat (bool): When set to True use radians for output + fold (int): The number of circuit elements to fold the circuit at. + Defaults to 20 + cregbundle (bool): If set True bundle classical registers + showindex (bool): If set True draw an index. + compress (bool): If set True draw a compressed circuit + figwidth (int): The maximum width (in inches) for the output figure. + dpi (int): The DPI to use for the output image. Defaults to 150 + margin (list): A list of margin values to adjust spacing around + output image. Takes a list of 4 ints: + [x left, x right, y bottom, y top]. + creglinestyle (str): The style of line to use for classical + registers. Choices are `'solid'`, `'doublet'`, or any valid + matplotlib `linestyle` kwarg value. Defaults to `doublet` """ + # pylint: disable=cyclic-import from qiskit.visualization import circuit_drawer return circuit_drawer(self, scale=scale, diff --git a/qiskit/visualization/circuit_visualization.py b/qiskit/visualization/circuit_visualization.py index 9ee337ee7ac7..31e8b9d3a354 100644 --- a/qiskit/visualization/circuit_visualization.py +++ b/qiskit/visualization/circuit_visualization.py @@ -14,10 +14,17 @@ """ -Two quantum circuit drawers based on: - 0. Ascii art - 1. LaTeX - 2. Matplotlib +Module for the primary interface to the circuit drawers. + +This module contains the end user facing API for drawing quantum circuits. +There are 3 available drawer backends available: + + 0. Ascii art + 1. LaTeX + 2. Matplotlib + +This provides a single function entrypoint to drawing a circuit object with +any of the backends. """ import errno @@ -59,161 +66,186 @@ def circuit_drawer(circuit, fold=None, ax=None): """Draw a quantum circuit to different formats (set by output parameter): - 0. text: ASCII art TextDrawing that can be printed in the console. - 1. latex: high-quality images, but heavy external software dependencies - 2. matplotlib: purely in Python with no external dependencies + + **text**: ASCII art TextDrawing that can be printed in the console. + + **latex**: high-quality images compiled via latex. + + **latex_source**: raw uncompiled latex output. + + **matplotlib**: images with color rendered purely in Python. Args: circuit (QuantumCircuit): the quantum circuit to draw scale (float): scale of image to draw (shrink if < 1) filename (str): file path to save image to style (dict or str): dictionary of style or file name of style file. - This option is only used by the `mpl`, `latex`, and `latex_source` - output types. If a str is passed in that is the path to a json - file which contains that will be open, parsed, and then used just - as the input dict. + This option is only used by the ``mpl`` output type. If a str is + passed in that is the path to a json file which contains that will + be open, parsed, and then used just as the input dict. See: + :ref:`Style Dict Doc ` for more information on the + contents. output (str): Select the output method to use for drawing the circuit. - Valid choices are `text`, `latex`, `latex_source`, `mpl`. By - default the 'text' drawer is used unless a user config file has - an alternative backend set as the default. If the output is passed - in that backend will always be used. + Valid choices are ``text``, ``latex``, ``latex_source``, ``mpl``. + By default the `'text`' drawer is used unless a user config file + has an alternative backend set as the default. If the output kwarg + is set, that backend will always be used over the default in a user + config file. interactive (bool): when set true show the circuit in a new window (for `mpl` this depends on the matplotlib backend being used supporting this). Note when used with either the `text` or the `latex_source` output type this has no effect and will be silently ignored. - line_length (int): Deprecated. See `fold`. + line_length (int): Deprecated, see `fold` which supersedes this option. + Sets the length of the lines generated by `text` output type. + This useful when the drawing does not fit in the console. If None + (default), it will try to guess the console width using + ``shutil.get_terminal_size()``. However, if you're running in + jupyter the default line length is set to 80 characters. If you + don't want pagination at all, set ``line_length=-1``. reverse_bits (bool): When set to True reverse the bit order inside registers for the output visualization. plot_barriers (bool): Enable/disable drawing barriers in the output circuit. Defaults to True. - justify (string): Options are `left`, `right` or `none`, if anything - else is supplied it defaults to left justified. It refers to where - gates should be placed in the output circuit if there is an option. - `none` results in each gate being placed in its own column. Currently - only supported by text drawer. - vertical_compression (string): `high`, `medium` or `low`. It merges the - lines generated by `text` so the drawing will take less vertical room. - Default is `medium`. It is ignored if output is not `text`. - idle_wires (bool): Include idle wires. Default is True. - with_layout (bool): Include layout information, with labels on the physical - layout. + justify (string): Options are ``left``, ``right`` or ``none``, if + anything else is supplied it defaults to left justified. It refers + to where gates should be placed in the output circuit if there is + an option. ``none`` results in each gate being placed in its own + column. + vertical_compression (string): ``high``, ``medium`` or ``low``. It + merges the lines generated by the ``text`` output so the drawing + will take less vertical room. Default is ``medium``. Only used by + the ``text`` output, will be silently ignored otherwise. + idle_wires (bool): Include idle wires (wires with no circuit elements) + in output visualization. Default is True. + with_layout (bool): Include layout information, with labels on the + physical layout. Default is True. fold (int): Sets pagination. It can be disabled using -1. In `text`, sets the length of the lines. This useful when the - drawing does not fit in the console. If None (default), it will try to - guess the console width using `shutil.get_terminal_size()`. However, if - running in jupyter, the default line length is set to 80 characters. - In `mpl` is the amount of operations before folding. Default is 25. + drawing does not fit in the console. If None (default), it will try + to guess the console width using ``shutil.get_terminal_size()``. + However, if running in jupyter, the default line length is set to + 80 characters. In ``mpl`` it is the number of (visual) layers before + folding. Default is 25. ax (matplotlib.axes.Axes): An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. This is only used when the ``output`` kwarg is set to use the ``mpl`` backend. It will be silently ignored with all other outputs. + Returns: - PIL.Image: (output `latex`) an in-memory representation of the image - of the circuit diagram. - matplotlib.figure: (output `mpl`) a matplotlib figure object for the - circuit diagram, if the ``ax`` kwarg is not set - String: (output `latex_source`). The LaTeX source code. - TextDrawing: (output `text`). A drawing that can be printed as ascii art + :class:`PIL.Image` or :class:`matplotlib.figure` or :class:`str` or + :class:`TextDrawing`: + + * `PIL.Image` (output='latex') + an in-memory representation of the image of the circuit diagram. + * `matplotlib.figure.Figure` (output='mpl') + a matplotlib figure object for the circuit diagram. + * `str` (output='latex_source') + The LaTeX source code for visualizing the circuit diagram. + * `TextDrawing` (output='text') + A drawing that can be printed as ascii art + Raises: VisualizationError: when an invalid output method is selected - ImportError: when the output methods requieres non-installed libraries. + ImportError: when the output methods requires non-installed libraries. .. _style-dict-doc: + **Style Dict Details** + The style dict kwarg contains numerous options that define the style of the - output circuit visualization. While the style dict is used by the `mpl`, - `latex`, and `latex_source` outputs some options in that are only used - by the `mpl` output. These options are defined below, if it is only used by - the `mpl` output it is marked as such: + output circuit visualization. The style dict is only used by the ``mpl`` + output. The options available in the style dict are defined below: + Args: textcolor (str): The color code to use for text. Defaults to - `'#000000'` (`mpl` only) + `'#000000'` subtextcolor (str): The color code to use for subtext. Defaults to - `'#000000'` (`mpl` only) + `'#000000'` linecolor (str): The color code to use for lines. Defaults to - `'#000000'` (`mpl` only) + `'#000000'` creglinecolor (str): The color code to use for classical register - lines. Defaults to `'#778899'`(`mpl` only) + lines. Defaults to `'#778899'` gatetextcolor (str): The color code to use for gate text. Defaults to - `'#000000'` (`mpl` only) + `'#000000'` gatefacecolor (str): The color code to use for gates. Defaults to - `'#ffffff'` (`mpl` only) + `'#ffffff'` barrierfacecolor (str): The color code to use for barriers. Defaults to - `'#bdbdbd'` (`mpl` only) + `'#bdbdbd'` backgroundcolor (str): The color code to use for the background. - Defaults to `'#ffffff'` (`mpl` only) - fontsize (int): The font size to use for text. Defaults to 13 (`mpl` - only) + Defaults to `'#ffffff'` + fontsize (int): The font size to use for text. Defaults to 13 subfontsize (int): The font size to use for subtext. Defaults to 8 - (`mpl` only) displaytext (dict): A dictionary of the text to use for each element - type in the output visualization. The default values are: - { - 'id': 'id', - 'u0': 'U_0', - 'u1': 'U_1', - 'u2': 'U_2', - 'u3': 'U_3', - 'x': 'X', - 'y': 'Y', - 'z': 'Z', - 'h': 'H', - 's': 'S', - 'sdg': 'S^\\dagger', - 't': 'T', - 'tdg': 'T^\\dagger', - 'rx': 'R_x', - 'ry': 'R_y', - 'rz': 'R_z', - 'reset': '\\left|0\\right\\rangle' - } + type in the output visualization. The default values are:: + + { + 'id': 'id', + 'u0': 'U_0', + 'u1': 'U_1', + 'u2': 'U_2', + 'u3': 'U_3', + 'x': 'X', + 'y': 'Y', + 'z': 'Z', + 'h': 'H', + 's': 'S', + 'sdg': 'S^\\dagger', + 't': 'T', + 'tdg': 'T^\\dagger', + 'rx': 'R_x', + 'ry': 'R_y', + 'rz': 'R_z', + 'reset': '\\left|0\\right\\rangle' + } + You must specify all the necessary values if using this. There is - no provision for passing an incomplete dict in. (`mpl` only) + no provision for passing an incomplete dict in. displaycolor (dict): The color codes to use for each circuit element. - The default values are: - { - 'id': '#F0E442', - 'u0': '#E7AB3B', - 'u1': '#E7AB3B', - 'u2': '#E7AB3B', - 'u3': '#E7AB3B', - 'x': '#58C698', - 'y': '#58C698', - 'z': '#58C698', - 'h': '#70B7EB', - 's': '#E0722D', - 'sdg': '#E0722D', - 't': '#E0722D', - 'tdg': '#E0722D', - 'rx': '#ffffff', - 'ry': '#ffffff', - 'rz': '#ffffff', - 'reset': '#D188B4', - 'target': '#70B7EB', - 'meas': '#D188B4' - } + The default values are:: + + { + 'id': '#F0E442', + 'u0': '#E7AB3B', + 'u1': '#E7AB3B', + 'u2': '#E7AB3B', + 'u3': '#E7AB3B', + 'x': '#58C698', + 'y': '#58C698', + 'z': '#58C698', + 'h': '#70B7EB', + 's': '#E0722D', + 'sdg': '#E0722D', + 't': '#E0722D', + 'tdg': '#E0722D', + 'rx': '#ffffff', + 'ry': '#ffffff', + 'rz': '#ffffff', + 'reset': '#D188B4', + 'target': '#70B7EB', + 'meas': '#D188B4' + } + Also, just like `displaytext` there is no provision for an - incomplete dict passed in. (`mpl` only) + incomplete dict passed in. + latexdrawerstyle (bool): When set to True enable latex mode which will - draw gates like the `latex` output modes. (`mpl` only) - usepiformat (bool): When set to True use radians for output (`mpl` - only) + draw gates like the `latex` output modes. + usepiformat (bool): When set to True use radians for output fold (int): The number of circuit elements to fold the circuit at. - Defaults to 20 (`mpl` only) - cregbundle (bool): If set True bundle classical registers (`mpl` only) - showindex (bool): If set True draw an index. (`mpl` only) - compress (bool): If set True draw a compressed circuit (`mpl` only) + Defaults to 20 + cregbundle (bool): If set True bundle classical registers + showindex (bool): If set True draw an index. + compress (bool): If set True draw a compressed circuit figwidth (int): The maximum width (in inches) for the output figure. - (`mpl` only) - dpi (int): The DPI to use for the output image. Defaults to 150 (`mpl` - only) - margin (list): `mpl` only + dpi (int): The DPI to use for the output image. Defaults to 150 + margin (list): A list of margin values to adjust spacing around output + image. Takes a list of 4 ints: [x left, x right, y bottom, y top]. creglinestyle (str): The style of line to use for classical registers. Choices are `'solid'`, `'doublet'`, or any valid matplotlib - `linestyle` kwarg value. Defaults to `doublet`(`mpl` only) + `linestyle` kwarg value. Defaults to `doublet` """ image = None config = user_config.get_config() From d84b0bbd26f380cf15029f5fb80bf569a78d029d Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Fri, 11 Oct 2019 23:03:57 -0400 Subject: [PATCH 21/37] Speed up random circuit creation (#3249) The qiskit.circuit.random.random_circuit() function was previously using signature inspection to figure out how many angles a gate needed. While this is fine for smaller circuit creation, when the circuits get really large the time it takes the inspect module to return the signature starts to add up. The use of the signature check isn't required because the number of parameters for gates are fixed. This commit speeds random circuit creation by creating a list of each gate with parameters and just checking if the randomly selected operation is present in one of those. --- qiskit/circuit/random/utils.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/qiskit/circuit/random/utils.py b/qiskit/circuit/random/utils.py index a464fbb8d1b3..0ce1f7969f5d 100644 --- a/qiskit/circuit/random/utils.py +++ b/qiskit/circuit/random/utils.py @@ -14,7 +14,6 @@ """Utility functions for generating random circuits.""" -from inspect import signature import numpy as np from qiskit.circuit import QuantumRegister, ClassicalRegister, QuantumCircuit @@ -52,6 +51,9 @@ def random_circuit(n_qubits, depth, max_operands=3, measure=False, one_q_ops = [IdGate, U1Gate, U2Gate, U3Gate, XGate, YGate, ZGate, HGate, SGate, SdgGate, TGate, TdgGate, RXGate, RYGate, RZGate] + one_param = [U1Gate, RXGate, RYGate, RZGate, RZZGate, Cu1Gate, CrzGate] + two_param = [U2Gate] + three_param = [U3Gate, Cu3Gate] two_q_ops = [CnotGate, CyGate, CzGate, CHGate, CrzGate, Cu1Gate, Cu3Gate, SwapGate, RZZGate] three_q_ops = [ToffoliGate, FredkinGate] @@ -86,10 +88,14 @@ def random_circuit(n_qubits, depth, max_operands=3, measure=False, operation = rng.choice(two_q_ops) elif num_operands == 3: operation = rng.choice(three_q_ops) - op_args = list(signature(operation).parameters.keys()) - num_angles = len(op_args) - if 'label' in op_args: # TODO: label is not part of gate params and must be removed - num_angles -= 1 + if operation in one_param: + num_angles = 1 + elif operation in two_param: + num_angles = 2 + elif operation in three_param: + num_angles = 3 + else: + num_angles = 0 angles = [rng.uniform(0, 2*np.pi) for x in range(num_angles)] register_operands = [qr[i] for i in operands] op = operation(*angles) From af714e3e23a50d84ff5106cac7047b086b32cefa Mon Sep 17 00:00:00 2001 From: Luciano Date: Sat, 12 Oct 2019 14:52:35 +0800 Subject: [PATCH 22/37] disable=invalid-name at line level instead of file level (#3242) * qiskit/qasm/node/customunitary.py * qiskit/qasm/node/opaque.py * qiskit/visualization/counts_visualization.py * qiskit/visualization/pass_manager_visualization.py * qiskit/visualization/gate_map.py * qiskit/extensions/ * qiskit/qasm/node/qreg.py * qiskit/quantum_info/states/measures.py * qiskit/qasm/node/indexedid.py * qiskit/qasm/node/creg.py * qiskit/tools/jupyter/copyright.py * qiskit/tools/jupyter/version_table.py * qiskit/quantum_info/random/utils.py * lint --- qiskit/extensions/quantum_initializer/diag.py | 1 - .../extensions/quantum_initializer/ucrot.py | 10 ++- qiskit/extensions/standard/ch.py | 4 +- qiskit/extensions/standard/cx.py | 4 +- qiskit/extensions/standard/cy.py | 4 +- qiskit/extensions/standard/cz.py | 4 +- qiskit/extensions/standard/h.py | 4 +- qiskit/extensions/standard/rx.py | 4 +- qiskit/extensions/standard/ry.py | 4 +- qiskit/extensions/standard/rz.py | 4 +- qiskit/extensions/standard/s.py | 8 +-- qiskit/extensions/standard/t.py | 4 +- qiskit/extensions/standard/u0.py | 4 +- qiskit/extensions/standard/u1.py | 4 +- qiskit/extensions/standard/u2.py | 3 +- qiskit/extensions/standard/u3.py | 4 +- qiskit/qasm/node/creg.py | 4 +- qiskit/qasm/node/customunitary.py | 4 +- qiskit/qasm/node/gate.py | 4 +- qiskit/qasm/node/indexedid.py | 4 +- qiskit/qasm/node/opaque.py | 4 +- qiskit/qasm/node/qreg.py | 4 +- qiskit/quantum_info/random/utils.py | 34 +++++---- qiskit/quantum_info/states/measures.py | 32 ++++----- qiskit/tools/jupyter/copyright.py | 2 +- qiskit/tools/jupyter/version_table.py | 2 +- qiskit/visualization/counts_visualization.py | 2 +- qiskit/visualization/gate_map.py | 72 +++++++++---------- .../pass_manager_visualization.py | 13 ++-- 29 files changed, 104 insertions(+), 147 deletions(-) diff --git a/qiskit/extensions/quantum_initializer/diag.py b/qiskit/extensions/quantum_initializer/diag.py index 81e085dbc041..1a1341247d7a 100644 --- a/qiskit/extensions/quantum_initializer/diag.py +++ b/qiskit/extensions/quantum_initializer/diag.py @@ -15,7 +15,6 @@ # The structure of the code is based on Emanuel Malvetti's semester thesis at ETH in 2018, # which was supervised by Raban Iten and Prof. Renato Renner. -# pylint: disable=invalid-name # pylint: disable=missing-param-doc # pylint: disable=missing-type-doc diff --git a/qiskit/extensions/quantum_initializer/ucrot.py b/qiskit/extensions/quantum_initializer/ucrot.py index 5efd13d5286d..f1d0fab723bf 100644 --- a/qiskit/extensions/quantum_initializer/ucrot.py +++ b/qiskit/extensions/quantum_initializer/ucrot.py @@ -15,8 +15,6 @@ # The structure of the code is based on Emanuel Malvetti's semester thesis at ETH in 2018, # which was supervised by Raban Iten and Prof. Renato Renner. -# pylint: disable=invalid-name - """ (Abstract) base class for uniformly controlled (also called multiplexed) single-qubit rotations R_t. This class provides a basis for the decomposition of uniformly controlled R_x,R_y and R_z gates @@ -55,9 +53,9 @@ def __init__(self, angle_list, rot_axis): if not isinstance(angle_list, list): raise QiskitError("The angles are not provided in a list.") # Check if the angles in angle_list are real numbers - for a in angle_list: + for angle in angle_list: try: - float(a) + float(angle) except TypeError: raise QiskitError( "An angle cannot be converted to type float (real angles are expected).") @@ -165,5 +163,5 @@ def _dec_uc_rotations(angles, start_index, end_index, reversedDec): # Calculate the new rotation angles according to Shende's decomposition -def _update_angles(a1, a2): - return (a1 + a2) / 2.0, (a1 - a2) / 2.0 +def _update_angles(angle1, angle2): + return (angle1 + angle2) / 2.0, (angle1 - angle2) / 2.0 diff --git a/qiskit/extensions/standard/ch.py b/qiskit/extensions/standard/ch.py index 19c255bc154d..83e453a6a6e7 100644 --- a/qiskit/extensions/standard/ch.py +++ b/qiskit/extensions/standard/ch.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ controlled-H gate. """ @@ -76,7 +74,7 @@ def to_matrix(self): [0, 1/np.sqrt(2), 0, -1/np.sqrt(2)]], dtype=complex) -def ch(self, ctl, tgt): +def ch(self, ctl, tgt): # pylint: disable=invalid-name """Apply CH from ctl to tgt.""" return self.append(CHGate(), [ctl, tgt], []) diff --git a/qiskit/extensions/standard/cx.py b/qiskit/extensions/standard/cx.py index cda467e7ecec..dd7451dc5994 100644 --- a/qiskit/extensions/standard/cx.py +++ b/qiskit/extensions/standard/cx.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ controlled-NOT gate. """ @@ -43,7 +41,7 @@ def to_matrix(self): [0, 1, 0, 0]], dtype=complex) -def cx(self, ctl, tgt): +def cx(self, ctl, tgt): # pylint: disable=invalid-name """Apply CX from ctl to tgt.""" return self.append(CnotGate(), [ctl, tgt], []) diff --git a/qiskit/extensions/standard/cy.py b/qiskit/extensions/standard/cy.py index 445e2688f4ee..95d2d1a12c80 100644 --- a/qiskit/extensions/standard/cy.py +++ b/qiskit/extensions/standard/cy.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ controlled-Y gate. """ @@ -52,7 +50,7 @@ def inverse(self): return CyGate() # self-inverse -def cy(self, ctl, tgt): +def cy(self, ctl, tgt): # pylint: disable=invalid-name """Apply CY to circuit.""" return self.append(CyGate(), [ctl, tgt], []) diff --git a/qiskit/extensions/standard/cz.py b/qiskit/extensions/standard/cz.py index 74e1259ce8d8..ea540c8e2d5e 100644 --- a/qiskit/extensions/standard/cz.py +++ b/qiskit/extensions/standard/cz.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ controlled-Phase gate. """ @@ -60,7 +58,7 @@ def to_matrix(self): [0, 0, 0, -1]], dtype=complex) -def cz(self, ctl, tgt): +def cz(self, ctl, tgt): # pylint: disable=invalid-name """Apply CZ to circuit.""" return self.append(CzGate(), [ctl, tgt], []) diff --git a/qiskit/extensions/standard/h.py b/qiskit/extensions/standard/h.py index c3e32fe41d38..d3a698ca2e91 100644 --- a/qiskit/extensions/standard/h.py +++ b/qiskit/extensions/standard/h.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Hadamard gate. """ @@ -56,7 +54,7 @@ def to_matrix(self): [1, -1]], dtype=complex) / numpy.sqrt(2) -def h(self, q): +def h(self, q): # pylint: disable=invalid-name """Apply H to q.""" return self.append(HGate(), [q], []) diff --git a/qiskit/extensions/standard/rx.py b/qiskit/extensions/standard/rx.py index acd1b284add2..ba5773fdadde 100644 --- a/qiskit/extensions/standard/rx.py +++ b/qiskit/extensions/standard/rx.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Rotation around the x-axis. """ @@ -61,7 +59,7 @@ def to_matrix(self): [-1j * sin, cos]], dtype=complex) -def rx(self, theta, q): +def rx(self, theta, q): # pylint: disable=invalid-name """Apply Rx to q.""" return self.append(RXGate(theta), [q], []) diff --git a/qiskit/extensions/standard/ry.py b/qiskit/extensions/standard/ry.py index 938bffac46c9..c0dd7f397f94 100644 --- a/qiskit/extensions/standard/ry.py +++ b/qiskit/extensions/standard/ry.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Rotation around the y-axis. """ @@ -60,7 +58,7 @@ def to_matrix(self): [sin, cos]], dtype=complex) -def ry(self, theta, q): +def ry(self, theta, q): # pylint: disable=invalid-name """Apply Ry to q.""" return self.append(RYGate(theta), [q], []) diff --git a/qiskit/extensions/standard/rz.py b/qiskit/extensions/standard/rz.py index 245fa8a47730..7277de061408 100644 --- a/qiskit/extensions/standard/rz.py +++ b/qiskit/extensions/standard/rz.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Rotation around the z-axis. """ @@ -51,7 +49,7 @@ def inverse(self): return RZGate(-self.params[0]) -def rz(self, phi, q): +def rz(self, phi, q): # pylint: disable=invalid-name """Apply Rz to q.""" return self.append(RZGate(phi), [q], []) diff --git a/qiskit/extensions/standard/s.py b/qiskit/extensions/standard/s.py index 95ff3043ce0c..6a8c3350d1b1 100644 --- a/qiskit/extensions/standard/s.py +++ b/qiskit/extensions/standard/s.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ S=diag(1,i) Clifford phase gate or its inverse. """ @@ -39,7 +37,7 @@ def _define(self): definition = [] q = QuantumRegister(1, "q") rule = [ - (U1Gate(pi/2), [q[0]], []) + (U1Gate(pi / 2), [q[0]], []) ] for inst in rule: definition.append(inst) @@ -69,7 +67,7 @@ def _define(self): definition = [] q = QuantumRegister(1, "q") rule = [ - (U1Gate(-pi/2), [q[0]], []) + (U1Gate(-pi / 2), [q[0]], []) ] for inst in rule: definition.append(inst) @@ -85,7 +83,7 @@ def to_matrix(self): [0, -1j]], dtype=complex) -def s(self, q): +def s(self, q): # pylint: disable=invalid-name """Apply S to q.""" return self.append(SGate(), [q], []) diff --git a/qiskit/extensions/standard/t.py b/qiskit/extensions/standard/t.py index 2cd66abf4145..35c9fdc1c4c4 100644 --- a/qiskit/extensions/standard/t.py +++ b/qiskit/extensions/standard/t.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ T=sqrt(S) phase gate or its inverse. """ @@ -85,7 +83,7 @@ def to_matrix(self): [0, (1-1j) / numpy.sqrt(2)]], dtype=complex) -def t(self, q): +def t(self, q): # pylint: disable=invalid-name """Apply T to q.""" return self.append(TGate(), [q], []) diff --git a/qiskit/extensions/standard/u0.py b/qiskit/extensions/standard/u0.py index ed4d9e079059..cab99c645046 100644 --- a/qiskit/extensions/standard/u0.py +++ b/qiskit/extensions/standard/u0.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Single qubit gate cycle idle. """ @@ -54,7 +52,7 @@ def to_matrix(self): [0, 1]], dtype=complex) -def u0(self, m, q): +def u0(self, m, q): # pylint: disable=invalid-name """Apply u0 with length m to q.""" return self.append(U0Gate(m), [q], []) diff --git a/qiskit/extensions/standard/u1.py b/qiskit/extensions/standard/u1.py index b1f3568966a7..41a2d9358e47 100644 --- a/qiskit/extensions/standard/u1.py +++ b/qiskit/extensions/standard/u1.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Diagonal single qubit gate. """ @@ -52,7 +50,7 @@ def to_matrix(self): return numpy.array([[1, 0], [0, numpy.exp(1j * lam)]], dtype=complex) -def u1(self, theta, q): +def u1(self, theta, q): # pylint: disable=invalid-name """Apply u1 with angle theta to q.""" return self.append(U1Gate(theta), [q], []) diff --git a/qiskit/extensions/standard/u2.py b/qiskit/extensions/standard/u2.py index 4494c3af7f7d..dad746af2f80 100644 --- a/qiskit/extensions/standard/u2.py +++ b/qiskit/extensions/standard/u2.py @@ -12,7 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name """ One-pulse single-qubit gate. """ @@ -59,7 +58,7 @@ def to_matrix(self): dtype=complex) -def u2(self, phi, lam, q): +def u2(self, phi, lam, q): # pylint: disable=invalid-name """Apply u2 to q.""" return self.append(U2Gate(phi, lam), [q], []) diff --git a/qiskit/extensions/standard/u3.py b/qiskit/extensions/standard/u3.py index 3f026016cf2d..d436cd9b3daa 100644 --- a/qiskit/extensions/standard/u3.py +++ b/qiskit/extensions/standard/u3.py @@ -12,10 +12,10 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name """ Two-pulse single-qubit gate. """ + import numpy from qiskit.circuit import Gate from qiskit.circuit import QuantumCircuit @@ -51,7 +51,7 @@ def to_matrix(self): dtype=complex) -def u3(self, theta, phi, lam, q): +def u3(self, theta, phi, lam, q): # pylint: disable=invalid-name """Apply u3 to q.""" return self.append(U3Gate(theta, phi, lam), [q], []) diff --git a/qiskit/qasm/node/creg.py b/qiskit/qasm/node/creg.py index b5f0ca866fc4..8c4a925b7c44 100644 --- a/qiskit/qasm/node/creg.py +++ b/qiskit/qasm/node/creg.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM creg statement.""" from .node import Node @@ -29,7 +27,7 @@ def __init__(self, children): """Create the creg node.""" super().__init__('creg', children, None) # This is the indexed id, the full "id[n]" object - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name # Name of the creg self.name = self.id.name # Source line number diff --git a/qiskit/qasm/node/customunitary.py b/qiskit/qasm/node/customunitary.py index 06c42fbab6d0..08bc784bb072 100644 --- a/qiskit/qasm/node/customunitary.py +++ b/qiskit/qasm/node/customunitary.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM custom gate statement.""" from .node import Node @@ -36,7 +34,7 @@ class CustomUnitary(Node): def __init__(self, children): """Create the custom gate node.""" super().__init__('custom_unitary', children, None) - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name self.name = self.id.name if len(children) == 3: self.arguments = children[1] diff --git a/qiskit/qasm/node/gate.py b/qiskit/qasm/node/gate.py index 76cc64fe6296..12f95bfae173 100644 --- a/qiskit/qasm/node/gate.py +++ b/qiskit/qasm/node/gate.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM gate definition.""" from .node import Node @@ -32,7 +30,7 @@ class Gate(Node): def __init__(self, children): """Create the gate node.""" super().__init__('gate', children, None) - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name # The next three fields are required by the symbtab self.name = self.id.name self.line = self.id.line diff --git a/qiskit/qasm/node/indexedid.py b/qiskit/qasm/node/indexedid.py index d991c2277c43..b48a56986dee 100644 --- a/qiskit/qasm/node/indexedid.py +++ b/qiskit/qasm/node/indexedid.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM indexed id.""" from .node import Node @@ -29,7 +27,7 @@ class IndexedId(Node): def __init__(self, children): """Create the indexed id node.""" super().__init__('indexed_id', children, None) - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name self.name = self.id.name self.line = self.id.line self.file = self.id.file diff --git a/qiskit/qasm/node/opaque.py b/qiskit/qasm/node/opaque.py index 4389588f2ccb..9138fe796ffe 100644 --- a/qiskit/qasm/node/opaque.py +++ b/qiskit/qasm/node/opaque.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM opaque gate declaration.""" from .node import Node @@ -31,7 +29,7 @@ class Opaque(Node): def __init__(self, children): """Create the opaque gate node.""" super().__init__('opaque', children, None) - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name # The next three fields are required by the symbtab self.name = self.id.name self.line = self.id.line diff --git a/qiskit/qasm/node/qreg.py b/qiskit/qasm/node/qreg.py index f853633fbda5..f6f0affd20f2 100644 --- a/qiskit/qasm/node/qreg.py +++ b/qiskit/qasm/node/qreg.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """Node for an OPENQASM qreg statement.""" from .node import Node @@ -29,7 +27,7 @@ def __init__(self, children): """Create the qreg node.""" super().__init__('qreg', children, None) # This is the indexed id, the full "id[n]" object - self.id = children[0] + self.id = children[0] # pylint: disable=invalid-name # Name of the qreg self.name = self.id.name # Source line number diff --git a/qiskit/quantum_info/random/utils.py b/qiskit/quantum_info/random/utils.py index 28304385d83a..c79287da9a5c 100644 --- a/qiskit/quantum_info/random/utils.py +++ b/qiskit/quantum_info/random/utils.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Methods to create random unitaries, states, etc. """ @@ -47,8 +45,8 @@ def random_state(dim, seed=None): x += x == 0 x = -np.log(x) sumx = sum(x) - phases = rng.rand(dim)*2.0*np.pi - return np.sqrt(x/sumx)*np.exp(1j*phases) + phases = rng.rand(dim) * 2.0 * np.pi + return np.sqrt(x / sumx) * np.exp(1j * phases) def random_unitary(dim, seed=None): @@ -114,41 +112,41 @@ def __ginibre_matrix(nrow, ncol=None, seed=None): ncol = nrow if seed is not None: np.random.seed(seed) - G = np.random.normal(size=(nrow, ncol)) + \ - np.random.normal(size=(nrow, ncol)) * 1j - return G + + ginibre = np.random.normal(size=(nrow, ncol)) + np.random.normal(size=(nrow, ncol)) * 1j + return ginibre -def __random_density_hs(N, rank=None, seed=None): +def __random_density_hs(length, rank=None, seed=None): """ Generate a random density matrix from the Hilbert-Schmidt metric. Args: - N (int): the length of the density matrix. + length (int): the length of the density matrix. rank (int or None): the rank of the density matrix. The default value is full-rank. seed (int): Optional. To set a random seed. Returns: ndarray: rho (N,N a density matrix. """ - G = __ginibre_matrix(N, rank, seed) - G = G.dot(G.conj().T) - return G / np.trace(G) + ginibre = __ginibre_matrix(length, rank, seed) + ginibre = ginibre.dot(ginibre.conj().T) + return ginibre / np.trace(ginibre) -def __random_density_bures(N, rank=None, seed=None): +def __random_density_bures(length, rank=None, seed=None): """ Generate a random density matrix from the Bures metric. Args: - N (int): the length of the density matrix. + length (int): the length of the density matrix. rank (int or None): the rank of the density matrix. The default value is full-rank. seed (int): Optional. To set a random seed. Returns: ndarray: rho (N,N) a density matrix. """ - P = np.eye(N) + random_unitary(N).data - G = P.dot(__ginibre_matrix(N, rank, seed)) - G = G.dot(G.conj().T) - return G / np.trace(G) + density = np.eye(length) + random_unitary(length).data + ginibre = density.dot(__ginibre_matrix(length, rank, seed)) + ginibre = ginibre.dot(ginibre.conj().T) + return ginibre / np.trace(ginibre) diff --git a/qiskit/quantum_info/states/measures.py b/qiskit/quantum_info/states/measures.py index 04214770a887..8822c29a1504 100644 --- a/qiskit/quantum_info/states/measures.py +++ b/qiskit/quantum_info/states/measures.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ A collection of useful quantum information functions for states. @@ -48,36 +46,36 @@ def state_fidelity(state1, state2): array_like: The state fidelity F(state1, state2). """ # convert input to numpy arrays - s1 = np.array(state1) - s2 = np.array(state2) + state1 = np.array(state1) + state2 = np.array(state2) # fidelity of two state vectors - if s1.ndim == 1 and s2.ndim == 1: - return np.abs(s2.conj().dot(s1)) ** 2 + if state1.ndim == 1 and state2.ndim == 1: + return np.abs(state2.conj().dot(state1)) ** 2 # fidelity of vector and density matrix - elif s1.ndim == 1: + elif state1.ndim == 1: # psi = s1, rho = s2 - return np.abs(s1.conj().dot(s2).dot(s1)) - elif s2.ndim == 1: + return np.abs(state1.conj().dot(state2).dot(state1)) + elif state2.ndim == 1: # psi = s2, rho = s1 - return np.abs(s2.conj().dot(s1).dot(s2)) + return np.abs(state2.conj().dot(state1).dot(state2)) # fidelity of two density matrices - s1sq = _funm_svd(s1, np.sqrt) - s2sq = _funm_svd(s2, np.sqrt) + s1sq = _funm_svd(state1, np.sqrt) + s2sq = _funm_svd(state2, np.sqrt) return np.linalg.norm(s1sq.dot(s2sq), ord='nuc') ** 2 -def _funm_svd(a, func): +def _funm_svd(matrix, func): """Apply real scalar function to singular values of a matrix. Args: - a (array_like): (N, N) Matrix at which to evaluate the function. + matrix (array_like): (N, N) Matrix at which to evaluate the function. func (callable): Callable object that evaluates a scalar function f. Returns: ndarray: funm (N, N) Value of the matrix function specified by func evaluated at `A`. """ - U, s, Vh = la.svd(a, lapack_driver='gesvd') - S = np.diag(func(s)) - return U.dot(S).dot(Vh) + unitary1, singular_values, unitary2 = la.svd(matrix, lapack_driver='gesvd') + diag_func_singular = np.diag(func(singular_values)) + return unitary1.dot(diag_func_singular).dot(unitary2) diff --git a/qiskit/tools/jupyter/copyright.py b/qiskit/tools/jupyter/copyright.py index b8304f4c71ef..8485f69f1aef 100644 --- a/qiskit/tools/jupyter/copyright.py +++ b/qiskit/tools/jupyter/copyright.py @@ -11,7 +11,7 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name, unused-argument +# pylint: disable=unused-argument """A module for monitoring backends.""" diff --git a/qiskit/tools/jupyter/version_table.py b/qiskit/tools/jupyter/version_table.py index 83a4fb0fbf62..bfc278e62f4e 100644 --- a/qiskit/tools/jupyter/version_table.py +++ b/qiskit/tools/jupyter/version_table.py @@ -11,7 +11,7 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name, unused-argument +# pylint: disable=unused-argument """A module for monitoring backends.""" diff --git a/qiskit/visualization/counts_visualization.py b/qiskit/visualization/counts_visualization.py index fd3570342d3e..2f11d5da74b6 100644 --- a/qiskit/visualization/counts_visualization.py +++ b/qiskit/visualization/counts_visualization.py @@ -12,7 +12,7 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name,import-error +# pylint: disable=import-error """ Visualization functions for measurement counts. diff --git a/qiskit/visualization/gate_map.py b/qiskit/visualization/gate_map.py index cbb826ec2d22..67a497b31af1 100644 --- a/qiskit/visualization/gate_map.py +++ b/qiskit/visualization/gate_map.py @@ -11,7 +11,6 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name """A module for visualizing device coupling maps""" @@ -34,6 +33,7 @@ class _GraphDist(): """Transform the circles properly for non-square axes. """ + def __init__(self, size, ax, x=True): self.size = size self.ax = ax # pylint: disable=invalid-name @@ -168,7 +168,7 @@ def plot_gate_map(backend, figsize=None, max_dim = max(x_max, y_max) if figsize is None: - if x_max/max_dim > 0.33 and y_max/max_dim > 0.33: + if x_max / max_dim > 0.33 and y_max / max_dim > 0.33: figsize = (5, 5) else: figsize = (9, 3) @@ -179,9 +179,9 @@ def plot_gate_map(backend, figsize=None, # set coloring if qubit_color is None: - qubit_color = ['#648fff']*config.n_qubits + qubit_color = ['#648fff'] * config.n_qubits if line_color is None: - line_color = ['#648fff']*len(cmap) + line_color = ['#648fff'] * len(cmap) # Add lines for couplings for ind, edge in enumerate(cmap): @@ -195,31 +195,31 @@ def plot_gate_map(backend, figsize=None, if is_symmetric: if y_start == y_end: - x_end = (x_end - x_start)/2+x_start + x_end = (x_end - x_start) / 2 + x_start elif x_start == x_end: - y_end = (y_end - y_start)/2+y_start + y_end = (y_end - y_start) / 2 + y_start else: - x_end = (x_end - x_start)/2+x_start - y_end = (y_end - y_start)/2+y_start + x_end = (x_end - x_start) / 2 + x_start + y_end = (y_end - y_start) / 2 + y_start ax.add_artist(plt.Line2D([x_start, x_end], [-y_start, -y_end], color=line_color[ind], linewidth=line_width, zorder=0)) if plot_directed: - dx = x_end-x_start # pylint: disable=invalid-name - dy = y_end-y_start # pylint: disable=invalid-name + dx = x_end - x_start # pylint: disable=invalid-name + dy = y_end - y_start # pylint: disable=invalid-name if is_symmetric: - x_arrow = x_start+dx*0.95 - y_arrow = -y_start-dy*0.95 - dx_arrow = dx*0.01 - dy_arrow = -dy*0.01 + x_arrow = x_start + dx * 0.95 + y_arrow = -y_start - dy * 0.95 + dx_arrow = dx * 0.01 + dy_arrow = -dy * 0.01 head_width = 0.15 else: - x_arrow = x_start+dx*0.5 - y_arrow = -y_start-dy*0.5 - dx_arrow = dx*0.2 - dy_arrow = -dy*0.2 + x_arrow = x_start + dx * 0.5 + y_arrow = -y_start - dy * 0.5 + dx_arrow = dx * 0.2 + dy_arrow = -dy * 0.2 head_width = 0.2 ax.add_patch(mpatches.FancyArrow(x_arrow, y_arrow, @@ -244,8 +244,8 @@ def plot_gate_map(backend, figsize=None, horizontalalignment='center', verticalalignment='center', color=font_color, size=font_size, weight='bold') - ax.set_xlim([-1, x_max+1]) - ax.set_ylim([-(y_max+1), 1]) + ax.set_xlim([-1, x_max + 1]) + ax.set_ylim([-(y_max + 1), 1]) if not input_axes: if get_backend() in ['module://ipykernel.pylab.backend_inline', 'nbAgg']: @@ -277,7 +277,7 @@ def plot_circuit_layout(circuit, backend, view='virtual'): n_qubits = backend.configuration().n_qubits qubits = [] - qubit_labels = [None]*n_qubits + qubit_labels = [None] * n_qubits if view == 'virtual': idx = 0 @@ -296,13 +296,13 @@ def plot_circuit_layout(circuit, backend, view='virtual'): else: raise VisualizationError("Layout view must be 'virtual' or 'physical'.") - qcolors = ['#648fff']*n_qubits + qcolors = ['#648fff'] * n_qubits for k in qubits: qcolors[k] = 'k' cmap = backend.configuration().coupling_map - lcolors = ['#648fff']*len(cmap) + lcolors = ['#648fff'] * len(cmap) for idx, edge in enumerate(cmap): if edge[0] in qubits and edge[1] in qubits: @@ -338,10 +338,10 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True): # U2 error rates single_gate_errors = [q['parameters'][0]['value'] - for q in props['gates'][1:3*n_qubits:3]] + for q in props['gates'][1:3 * n_qubits:3]] # Convert to percent - single_gate_errors = 100*np.asarray(single_gate_errors) + single_gate_errors = 100 * np.asarray(single_gate_errors) avg_1q_err = np.mean(single_gate_errors) single_norm = matplotlib.colors.Normalize( @@ -367,7 +367,7 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True): continue # Convert to percent - cx_errors = 100*np.asarray(cx_errors) + cx_errors = 100 * np.asarray(cx_errors) avg_cx_err = np.mean(cx_errors) cx_norm = matplotlib.colors.Normalize( @@ -383,21 +383,21 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True): if item['name'] == 'readout_error': read_err.append(item['value']) - read_err = 100*np.asarray(read_err) + read_err = 100 * np.asarray(read_err) avg_read_err = np.mean(read_err) max_read_err = np.max(read_err) fig = plt.figure(figsize=figsize) gridspec.GridSpec(nrows=2, ncols=3) - gs = gridspec.GridSpec(12, 12, height_ratios=[1]*11+[0.5], - width_ratios=[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]) + grid_spec = gridspec.GridSpec(12, 12, height_ratios=[1] * 11 + [0.5], + width_ratios=[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]) - left_ax = plt.subplot(gs[2:10, :1]) - main_ax = plt.subplot(gs[:11, 1:11]) - right_ax = plt.subplot(gs[2:10, 11:]) - bleft_ax = plt.subplot(gs[-1, :5]) - bright_ax = plt.subplot(gs[-1, 7:]) + left_ax = plt.subplot(grid_spec[2:10, :1]) + main_ax = plt.subplot(grid_spec[:11, 1:11]) + right_ax = plt.subplot(grid_spec[2:10, 11:]) + bleft_ax = plt.subplot(grid_spec[-1, :5]) + bright_ax = plt.subplot(grid_spec[-1, 7:]) plot_gate_map(backend, qubit_color=q_colors, line_color=line_colors, @@ -429,8 +429,8 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True): num_left = n_qubits num_right = 0 else: - num_left = math.ceil(n_qubits/2) - num_right = n_qubits-num_left + num_left = math.ceil(n_qubits / 2) + num_right = n_qubits - num_left left_ax.barh(range(num_left), read_err[:num_left], align='center', color='#007d79') left_ax.axvline(avg_read_err, linestyle='--', color='#212121') diff --git a/qiskit/visualization/pass_manager_visualization.py b/qiskit/visualization/pass_manager_visualization.py index 9f15479f27b3..db29bc33e078 100644 --- a/qiskit/visualization/pass_manager_visualization.py +++ b/qiskit/visualization/pass_manager_visualization.py @@ -12,8 +12,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -# pylint: disable=invalid-name - """ Visualization function for a pass manager. Passes are grouped based on their flow controller, and coloured based on the type of pass. @@ -65,17 +63,20 @@ def pass_manager_drawer(pass_manager, filename, style=None, raw=False): try: import subprocess - _PROC = subprocess.Popen(['dot', '-V'], stdout=subprocess.PIPE, + _PROC = subprocess.Popen(['dot', '-V'], # pylint: disable=invalid-name + stdout=subprocess.PIPE, stderr=subprocess.PIPE) _PROC.communicate() if _PROC.returncode != 0: - HAS_GRAPHVIZ = False + has_graphviz = False else: - HAS_GRAPHVIZ = True + has_graphviz = True except Exception: # pylint: disable=broad-except # this is raised when the dot command cannot be found, which means GraphViz # isn't installed - HAS_GRAPHVIZ = False + has_graphviz = False + + HAS_GRAPHVIZ = has_graphviz # pylint: disable=invalid-name try: import pydot From 998c232b00c56040a14af23999a07787c0090e5e Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Mon, 14 Oct 2019 05:00:37 -0400 Subject: [PATCH 23/37] Update release note styling and wording (#3252) This commit updates some styling and wording issues in the release notes for the 0.10.0 release so far. The most common issues is the use of markdown style formatting instead of rst which is what reno uses. --- ...ircuit-drawing-has-changed-f62ce5aaeb8ce221.yaml | 4 ++-- ...s-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml | 6 +++--- ...ta-modification-validation-52f02f955ecf90a1.yaml | 2 +- .../notes/dense_noise_aware-46489df2439aab05.yaml | 6 ++++-- ...recate-instruction-control-a363a15b3f0f0d72.yaml | 8 ++++---- .../deprecate_bit_eq_tuple-e751168412b09702.yaml | 12 ++++++++---- .../deprecate_unknown_styles-93f84aedd1887c44.yaml | 8 +++++--- .../mock-backend-properties-a369bb6efdbae602.yaml | 12 ++++++------ .../notes/passmanager_replace-d89e2cc46517d917.yaml | 8 +++++++- ...ve-deprecated-device-specs-2d1aeab5f09b5a68.yaml | 1 + ...ve-deprecated-schedule-ops-f57b3c2477312cbb.yaml | 13 ++++++++----- .../notes/rzz-visualization-5ade105ae6cae0eb.yaml | 3 ++- 12 files changed, 51 insertions(+), 32 deletions(-) diff --git a/releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml b/releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml index 4a16dcf8313f..674f61a944b2 100644 --- a/releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml +++ b/releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml @@ -4,5 +4,5 @@ fixes: Instructions layering which underlies all types of circuit drawing has changed to address right/left justification. This sometimes results in output which is topologically equivalent to the rendering in prior versions - but visually different than previously rendered. The change in layering - fixes qiskit-terra issue \#2802 + but visually different than previously rendered. Fixes + `issue #2802 `_ diff --git a/releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml b/releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml index 8d1b7c41186a..64c29757254e 100644 --- a/releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml +++ b/releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml @@ -1,7 +1,7 @@ --- fixes: - | - Add `memory_slots` to `QobjExperimentHeader` of pulse Qobj. This fixes a - bug in the data format of `meas_level=2` result of pulse experiment. + Add ``memory_slots`` to ``QobjExperimentHeader`` of pulse Qobj. This fixes + a bug in the data format of ``meas_level=2`` results of pulse experiments. Measured quantum states are returned as a bit string with zero padding - based on `memory_slots` number. + based on the number set for ``memory_slots``. diff --git a/releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml b/releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml index e3eb96accfe2..13bc62db1ba1 100644 --- a/releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml +++ b/releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml @@ -2,7 +2,7 @@ upgrade: - | Assignments and modifications to the ``data`` attribute of - ``qiskit.QuantumCircuit`` objects are no validated following the same + ``qiskit.QuantumCircuit`` objects are now validated following the same rules used throughout the ``QuantumCircuit`` API. This was done to improve the performance of the circuits API since we can now assume the ``data`` attribute is in a known format. If you were manually modifying diff --git a/releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml b/releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml index 622b77e4a1e2..ae2d8fde84c9 100644 --- a/releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml +++ b/releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml @@ -1,5 +1,7 @@ --- upgrade: - | - The `DenseLayout` is now noise-aware. The optimization level 2 uses this layout selection - mechanisms. + The transpiler default passmanager for optimization level 2 now uses the + ``DenseLayout`` layout selection mechanism by default instead of + ``NoiseAdaptiveLayout``. The ``Denselayout`` pass has also been modified + to be made noise-aware. diff --git a/releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml b/releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml index 873d250522cc..4a7b256e7579 100644 --- a/releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml +++ b/releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml @@ -1,7 +1,7 @@ --- deprecations: - | - Instruction.control is used for classical control. This usage is - being deprecated this can be used for quantum control in the - future. Classically conditioned operations will instead be handled - by Instruction.condition. + Using the ``control`` property of ``qiskit.circuit.Instruction`` for + classical control is now deprecated. In the future this property will be + used for quantum control. Classically conditioned operations will instead + be handled by the ``condition`` property of ``qiskit.circuit.Instruction``. diff --git a/releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml b/releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml index 0ccfe286fc9c..31f3b5558f76 100644 --- a/releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml +++ b/releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml @@ -1,7 +1,11 @@ --- deprecations: - | - Until Qiskit-terra 8.0, bits (qubits and classical bits) used to be represented as a tuple. - In 0.8, qubits and classical bits are instances of `Qubit` and `Clbit` classes respectably. - Therefore, all the tuples had been converted to instances. Additionally, comparing tuples and - `Qubits`/`Clbits` is also being deprecated now. \ No newline at end of file + In the qiskit 0.9.0 release the representation of bits (both qubits and + classical bits) changed from tuples of the form ``(register, index)`` to be + instances of the classes ``qiskit.circuit.Qubit`` and + ``qiskit.circuit.Clbit``. For backwards compatibility comparing + the equality between a legacy tuple and the bit classes was supported as + everything transitioned from tuples to being objects. This support is now + deprecated and will be removed in the future. Everything should use the bit + classes instead of tuples moving forward. diff --git a/releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml b/releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml index 7ada0d9f524c..7240b321fca6 100644 --- a/releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml +++ b/releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml @@ -1,6 +1,8 @@ --- deprecations: - | - The matplotlib drawer raises a warning when the `style` argument dictonary includes - a key that is not supported by the drawer. In the future, unsupported keys will raise - an exception. + When the ``mpl`` output is used for either ``qiskit.QuantumCircuit.draw()`` + or ``qiskit.visualization.circuit_drawer()`` and the ``style`` kwarg is + used, passing in unsupported dictionary keys as part of the ``style``` + dictionary is now deprecated. Where these unknown arguments were previously + silently ignored, in the future, unsupported keys will raise an exception. diff --git a/releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml b/releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml index 1e36cb5b1c12..45cf7d06177f 100644 --- a/releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml +++ b/releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml @@ -1,9 +1,9 @@ --- features: - | - The backends in `qiskit.test.mock` now contain a snapshot of real - device calibration data. This is accessible via `backend.properties()`. - This can be used to test any code that depends on backend properties, - such as noise-adaptive transpiler passes or device noise models for - simulation. This would create a faster testing and development cycle - without the need to go to live backends. + The backends in ``qiskit.test.mock`` now contain a snapshot of real + device calibration data. This is accessible via the ``properties()`` method + for each backend. This can be used to test any code that depends on + backend properties, such as noise-adaptive transpiler passes or device + noise models for simulation. This will create a faster testing and + development cycle without the need to go to live backends. diff --git a/releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml b/releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml index 3a657322b84e..80395504f7d8 100644 --- a/releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml +++ b/releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml @@ -7,6 +7,7 @@ features: optimization level 0: .. code-block:: python + from qiskit.transpiler.preset_passmanagers.level0 import level_0_pass_manager from qiskit.transpiler.transpile_config import TranspileConfig @@ -15,6 +16,7 @@ features: pass_manager.draw() .. code-block:: + [0] FlowLinear: SetLayout [1] Conditional: TrivialLayout [2] FlowLinear: FullAncillaAllocation, EnlargeWithAncilla, ApplyLayout @@ -23,12 +25,14 @@ features: The layout selection is set in the stage `[1]`. Let's replace it with `DenseLayout`: .. code-block:: python + from qiskit.transpiler.passes import DenseLayout pass_manager.replace(1, DenseLayout(coupling_map), condition=lambda property_set: not property_set['layout']) pass_manager.draw() .. code-block:: + [0] FlowLinear: SetLayout [1] Conditional: DenseLayout [2] FlowLinear: FullAncillaAllocation, EnlargeWithAncilla, ApplyLayout @@ -37,11 +41,13 @@ features: If you want to replace it without any condition, you can use set-item shortcut: .. code-block:: python + pass_manager[1] = DenseLayout(coupling_map) pass_manager.draw() .. code-block:: + [0] FlowLinear: SetLayout [1] FlowLinear: DenseLayout [2] FlowLinear: FullAncillaAllocation, EnlargeWithAncilla, ApplyLayout - [3] FlowLinear: Unroller \ No newline at end of file + [3] FlowLinear: Unroller diff --git a/releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml b/releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml index 0b2138cad60b..ec9ce83083d2 100644 --- a/releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml +++ b/releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml @@ -3,6 +3,7 @@ upgrade: - | The deprecated ``DeviceSpecification`` class has been removed. Instead you should use the ``PulseChannelSpec``. For example, you can run something like:: + device = pulse.PulseChannelSpec.from_backend(backend) device.drives[0] # for DeviceSpecification, this was device.q[0].drive device.memoryslots # this was device.mem diff --git a/releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml b/releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml index 17c7253460eb..01e6659bd9d8 100644 --- a/releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml +++ b/releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml @@ -1,14 +1,17 @@ --- upgrade: - | - Removed deprecated `ops.py` from pulse. Use `Schedule` and `Instruction` - methods directly. Rather than:: + The deprecated module ``qiskit.pulse.ops`` has been removed. Use + ``Schedule`` and ``Instruction`` methods directly. For example, rather + than:: + ops.union(schedule_0, schedule_1) ops.union(instruction, schedule) # etc - Please use:: + Instead please use:: + schedule_0.union(schedule_1) instruction.union(schedule) - This same pattern applies to other `ops` functions: insert, shift, append, - and flatten. + This same pattern applies to other ``ops`` functions: ``insert``, ``shift``, + ``append``, and ``flatten``. diff --git a/releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml b/releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml index 55ef329b7b86..5555854749d0 100644 --- a/releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml +++ b/releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml @@ -3,4 +3,5 @@ fixes: - | Fixed the visualization of the rzz gate in the latex circuit drawer to match the cu1 gate to reflect the symmetry in the rzz gate. The fix is based on - the cds command of the qcircuit latex package. Fixes issue \#1957 + the cds command of the qcircuit latex package. Fixes + `issue #1957 `_ From 14491426b40ed547ad2276d86f1bffaf669f2b10 Mon Sep 17 00:00:00 2001 From: Paul Nation Date: Mon, 14 Oct 2019 09:45:19 -0400 Subject: [PATCH 24/37] Module level documentation for qiskit.visualization (#3187) * update visualization docs * style * add width change * quanum -> quantum * add coloring to function links * add otehr visuals * simplify even more * more styling * styling * a bit softer link color * add example * add inline * Add qiskit-aer and qiskit-ibmq-provider to docs job Using jupyter-sphinx to build examples in the docs enables us to actually run examples in the docs and get jupyter output. However, the module fails by default if there is anything printed to stderr when executing code. The base qiskit namespace will print a warning if ibmq and aer are not found on a system (which is to provide cover for python packaging issues). To avoid these warnings the simplest step is to install both packages into the venv to avoid a warning. This commit does just that. --- .gitignore | 3 + docs/_static/style.css | 12 +++ docs/apidocs/qiskit.rst | 3 +- docs/apidocs/visualization.rst | 6 ++ .../visualization/interactive/interactive.rst | 13 --- docs/apidocs/visualization/visualization.rst | 22 ----- docs/conf.py | 45 ++++++++-- docs/images/logo.png | Bin 0 -> 9489 bytes qiskit/visualization/__init__.py | 82 +++++++++++++++++- qiskit/visualization/counts_visualization.py | 16 ++++ requirements-dev.txt | 3 +- tox.ini | 2 + 12 files changed, 162 insertions(+), 45 deletions(-) create mode 100644 docs/_static/style.css create mode 100644 docs/apidocs/visualization.rst delete mode 100644 docs/apidocs/visualization/interactive/interactive.rst delete mode 100644 docs/apidocs/visualization/visualization.rst create mode 100644 docs/images/logo.png diff --git a/.gitignore b/.gitignore index 1a645c41440f..f97eea26d89e 100644 --- a/.gitignore +++ b/.gitignore @@ -140,3 +140,6 @@ src/qasm-simulator-cpp/test/qubit_vector_tests # Cython pass qiskit/transpiler/passes/**/cython/**/*.cpp + +docs/api/* +docs/stubs/* diff --git a/docs/_static/style.css b/docs/_static/style.css new file mode 100644 index 000000000000..84980a3a4a60 --- /dev/null +++ b/docs/_static/style.css @@ -0,0 +1,12 @@ +.wy-nav-content { + max-width: 90% !important; +} + +.wy-side-scroll { + background:#8c8c8c; +} + +.pre +{ +color:#BE8184; +} diff --git a/docs/apidocs/qiskit.rst b/docs/apidocs/qiskit.rst index 7ec6e33787f0..62447593c352 100644 --- a/docs/apidocs/qiskit.rst +++ b/docs/apidocs/qiskit.rst @@ -1,3 +1,4 @@ +.. module:: qiskit ============= API Reference @@ -22,4 +23,4 @@ API Reference tools/tools transpiler/transpiler validation - visualization/visualization + visualization diff --git a/docs/apidocs/visualization.rst b/docs/apidocs/visualization.rst new file mode 100644 index 000000000000..4dcc8b7c076e --- /dev/null +++ b/docs/apidocs/visualization.rst @@ -0,0 +1,6 @@ +.. _qiskit-visualization: + +.. automodule:: qiskit.visualization + :no-members: + :no-inherited-members: + :no-special-members: diff --git a/docs/apidocs/visualization/interactive/interactive.rst b/docs/apidocs/visualization/interactive/interactive.rst deleted file mode 100644 index 860762832720..000000000000 --- a/docs/apidocs/visualization/interactive/interactive.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _qiskit-visualization-interactive: - -******************************** -qiskit.visualization.interactive -******************************** - -.. currentmodule:: qiskit.visualization.interactive - - -.. automodapi:: qiskit.visualization.interactive - :no-heading: - :no-inheritance-diagram: - :inherited-members: diff --git a/docs/apidocs/visualization/visualization.rst b/docs/apidocs/visualization/visualization.rst deleted file mode 100644 index 55017a5423ee..000000000000 --- a/docs/apidocs/visualization/visualization.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. _qiskit-visualization: - -******************** -qiskit.visualization -******************** - -.. currentmodule:: qiskit.visualization - - -.. automodapi:: qiskit.visualization - :no-heading: - :no-inheritance-diagram: - :inherited-members: - - -Submodules -========== - -.. toctree:: - :maxdepth: 1 - - interactive/interactive diff --git a/docs/conf.py b/docs/conf.py index 509870b102b4..a196960fbf5c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -33,6 +33,11 @@ Sphinx documentation builder """ +import os +# Set env flag so that we can doc functions that may otherwise not be loaded +# see for example interactive visualizations in qiskit.visualization. +os.environ['QISKIT_DOCS'] = 'TRUE' + # -- Project information ----------------------------------------------------- project = 'Qiskit' copyright = '2019, Qiskit Development Team' # pylint: disable=redefined-builtin @@ -53,17 +58,35 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + 'sphinx.ext.napoleon', 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx_automodapi.automodapi', 'sphinx.ext.mathjax', - 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', 'sphinx.ext.extlinks', 'sphinx_tabs.tabs', - 'sphinx_automodapi.automodapi', - 'IPython.sphinxext.ipython_console_highlighting', - 'IPython.sphinxext.ipython_directive', + 'jupyter_sphinx.execute', 'reno.sphinxext', ] +html_static_path = ['_static'] +html_css_files = [ + 'style.css', +] + +# ----------------------------------------------------------------------------- +# Autosummary +# ----------------------------------------------------------------------------- + +autosummary_generate = True + +# ----------------------------------------------------------------------------- +# Autodoc +# ----------------------------------------------------------------------------- + +autodoc_default_options = { + 'inherited-members': None, +} # If true, figures, tables and code-blocks are automatically numbered if they @@ -89,7 +112,7 @@ exclude_patterns = [] # The name of the Pygments (syntax highlighting) style to use. -pygments_style = None +pygments_style = 'colorful' # A boolean that decides whether module names are prepended to all object names # (for object types where a “module” of some kind is defined), e.g. for @@ -113,5 +136,15 @@ # html_theme = 'sphinx_rtd_theme' # use the theme in subdir 'theme' -html_sidebars = {'**': ['globaltoc.html']} +html_logo = 'images/logo.png' +#html_sidebars = {'**': ['globaltoc.html']} html_last_updated_fmt = '%Y/%m/%d' + +html_theme_options = { + 'logo_only': True, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': True, + 'style_nav_header_background': '#212121', +} + diff --git a/docs/images/logo.png b/docs/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f83672e4046aad1e65cfda275129e5c64dfa1c GIT binary patch literal 9489 zcma)C1yEeUmK_FnPjDt^a1AoJySsGyGO*>08UO&ml#`WIf5~J2J}5{p?*r-Wrk4!CQcOt< z0QeSz{>K#Yr4BNaRaXK4yyyUcfDi!S;ROmf1OQyw0f6K8001}@0C???*`g*0007ag zG<98cl@!5d_O`61=Jp>TtRA)wFA@NNpa=M+XbW*M1$o%o*g1negsA?(0Kb&~!faHa ze^6XL2~p`Pse&ZzogkohtlX^ZRKjQ=5J=F;+ybmFDg7_;mzogOM;8|dFdLh@yF05p z7puLKB^w7nKR+8gCmSax%L{|W+0)L&)Pu#&nfjkf{#%bE#M#Wr%E86T-VXFvujvPS zR~I2Fs=tQ*o&MQQ7b}bZv1I4`uWr3`knQgmHV#&Hwtwq>5f%K4g4H3;_BO76)oa;V zxd?L#{)7C#;s3GrPbmp|TL&kIv-69XFvq_{{uBG(d=)1v$V>nJn)x^XKe7MKSN&-3 zV*lc6Co3~KI~R!4i?M%6|91obZ^plL39|il*MGS0pJVe6^kr~_(FEE4J3?!BrxRK?6iRS>n&k?u@z?fw4BV z7zp8G%|SNFh3cfA(cqHJgKbb$6;R-rx0dzIqXBwYrYQT;X3k4Q%qDl~X8!)a)@@WK z60Th$rAa!gk25+R1sI;8nx3mNRu@NXx1aUk-7owYiUGRa({~sVy8GANHx$e?n zZexQoUz^m2$OlB`=0Ro3vn(!#_Jrbx?*~v`SXiJ(ZB$rh1t945L{@d-If@5bkQpj_ zg^p)K5sQD^0?X9UL83F`qSEg}XSU>L^bzPbSvdma@uR^cS^y_e>aH;7_HgMBpmV9i zQh1Fq_(4x0DPl6mZ(L*Y%hpB-K{>&^UB)g1X{H{$O}cvAl?Dg{X-RnU2;4vl0H3V` z8EY~gcVtiAhq)44gk-Ff%@1#-3O;_j40e<906;%Y;t5MLDP^%j$Bu_%2;P7{;Xj~z z4(dr6(=*5J764@R+6{_<(jW|UoO@ZqrVQ z+?f$TP?D`=X7q&{O7fL+92sSBZ-dX}avk?*{LdRwoB@Y|1-E5NfA~qh@@aFX>%(FKHbMJGbU5+UXu0QM+g`; zy-A1wGhn2(AUIM|#LjG1k!8vWhxYJa6ZJ@SuIA;l$RM>Y5kJQ-$~?C7M|;! zTHBRcV_Pd-k$b?4@v=+y6A!zCv4lTS&Dsa|D$A;th^1GCNgQ(>{m=;6M#vcq4;NLi{G2cByPEQ6pE|I-^Ks6mpf47mr@4S!sl3?XJ z)jtcennV<2-PC9<2BCJP%Bvo|i3}Pf4-XH=-dTo$7|TFYo>Ehkk% z6C%$(bd`c^`AVsOSQj&K*UHdsDVq_K&}1+~`MYMKex334`$Eipwr2gOs?8c~S8fU5 zuao-w`-LBlpYL{J>H=l&`(k}8g9Z?l=~On4&d#)qvjE&~r;EkO$;otpInl+%+1U_l zv~-dwd-Od6xP^WCY>#a-17e#6n`KnCnh{yHeBW8>PAa{0YbIs>t}DFZkFa>*>q&`> z--~83Sstnq7eBmzHXoGEC<}}=R*j8~4S-6Fxd8A*X#=!eKZCkPolovD*Ba2~OxDH) z&JD3WIJu&y(|v2i>eS#tUy->LBQeEe0Q0lU%izzd)vd|R&Idnb{K&!836yk7>DS-H zhp)ji60R&Z)4L$0n}AOV#O2KbnZAE=8OC<9X0FXR)oCrJHaj;aYv#c2?L z%<$T;uR6@@S>6Ckv0ps@r`7*=>jtV~BZkY9r#akhG)fpF8YuD_VWP$L1*aKaptKDG^|hcK-{jtK(lUAc z8@Q6VdR^+4?}u8Sqs+cpVcZ@i&0}b%!)bHf-vIGffp-r>?k3J?18V-YqPJ)E{;ga2 z5v&i5!C2r!-~$h358`#6N@!M2MAhiVXo4E58qsTUWi+0sDuWK6d-Mepe;BzzgUu3> zYD2Bt(&vIkV8GJ^s1~7=B6HdKAj|#9XZy#OI^W|~9Ls*+dGa{x0W#;&=tbUWokau> zDiA7MyhV>!PqE`pe-v&_e+*@3Fad&LWk6ME%UGS|#QMo;-9$$~iy6xvleN1PU^jq1 zFfSO%zb~AS?fJH`vz;{HIxs2fy(Lrd`XSKjMac==47jU4-eJzRagFCwNtT<}pi`=j z6ETczQ%m*Cv*L=*>|{Iu^16nTkfN>^OW^aR;H+&b2+%at;RK2^1 zXloV#jGRYUWFA#%Y7xJ<#`y{$Jt3$Xa5L*|`?qHMOSr4t@P!ruiEvspc>H%^)X{uX zwJIjTA-}|yhuOTH7U6ybxaZ!~7w!x9;}cWZ!Qfyr=e>H2laOGq9+ja%K$yxu_5_8Ek&Xmln0-_JAAL}%jMXw;w<)AF&4 zua_2>JYA-kr6o~~$`1tQtifrZb4|r*lqhGJl8mT>l<&p4s#kxR!p9;JzHf_)6G)R6 zfnCqU_+NA*m+M^#ez%$__U`xyguG0pQG?t#`db1*ne{p)N7w(#91+t1eX4lxz^W(;v%>sZkS znZ)vQ>z@Z(P)ds5gVZrTF#k6e*S5vjsi8dnmqYa4+I3G7E)rYk>C$h)arq3v(u&(7)i_Gf^t2!;do`w8k3U^x^zOpJWXU=*&L|DQ#5I#zcDK01;mZ9`@ zDeNHOfQer2mGR<)N?hbhxTX6F!>%>1W~ORZ0n2f|!$3aZDUr_YaQ0w2SYhf`5b1tTgZ2%|4l40`NP;Ax0 zHHqdLA926c0!2M5T_ha@*+IE(x~Rb(V_^nfQ%!<~GiO^u4^Ck^#ilgnMJ+p{@MCO9 z3v=JLg-oKW{+>lGm8kgp9|Xrg3W~Gq31pseGST@sIlg*T8U0vEvYHZYHmJ^jGdzfs zv206Q3fh}-lVT#*5o)z&%_I+)_btae)maRfsc%$?jYOSI`}?y&3(ftW0KHaZ$-r5 z-p%bBEw@q&8E7t!I_qSbwfogj5UqiiY(u$Bd4YknR{r}@*l>|>h_1_Pt`1~ciRyu zwS)~RMxO1vziYSJVtjjlTFv@_@lHOfh!~I;!`1Ruj#rz_q+P#F-j#rp%^QKY!XoB* zUyem`Txd;A&rAYvq830TJ#X5HZf-rT9WkC=iix_aTRgF`R~RcwxD^`MQodHfeV}rY zQ+I4oyH{U!CpikrF9MX3%l#&rZc(GLDfE@$koRpiyuhvwIIhMRM|0z2rOl=~^}C*u zNip`=3I#TyQ)OMBl>CtiIFm_s;+hnK?A0xP_J$43{~rzD*-eW@1s>hVSG-uNN@JR)BmKp?XXlsKj$_(Ec3GIf7-aNbqH zk)~&kXMiQ1V&dl+g1J3VgXzqpa#Ym;9#TVvvXpGtnIC>X#4C%26MdE~U5He`#=j@7 z2==t%oxwUPk7|p}m{1hI@yhZ;p_Y(Iqkm)BFiaRP(p_m_Bil*J*L_LT%Aev?afI4~ zee?;FYo0z+cZyjPho7hIBTqc8MN6#56s8)@m)yuYvcQr&nG};P^w+F{@o;NtzB2-c zWJJMYwJEtJDSq6GLS&BFj(1zoiEJKQeNtpJY*W?#$FolD6I6CGK948Z?+q2<$J06m z&$0Fqre@Tf!@D}=Y99P!Sr_~Yvq{Q$L*kf$GaYB`*X(XqX!In6`&0fsvX9ZP5J3c! z8cqH2oT#*gy4o$*(+bbYI)lbuPDcfltB2gjuQKN+K3OJ+QZs*r@B2Ef05hgPy+79J z1UI+0!vfaaR%}gpP9}Ohk*Vr-O9ab%dQECx37A;4p3jUj+lxHi?VPXsJ)V8~rX$+j zHX#QH;skuinl0lzooAs0_sQ4leJazwTt`$qH}*cO_a7?)!%oCR=1MiL!KJzYDV(R& zJW<|ZXwKN1HarRzGEv%2GceMESbPj@kQUhR!KK|hGVL?tjLY{x2NqWs&Udg- zHXl=XjfQ!SU=&M~QCln~ia^5jI_e?ZBHHL{1XB{_@Ly@$5@8u~bWQ~Wx?LP_*+9{2 z>rq2&>WjC^9d-{y5^cDk`nNex+|;((3r`gO$zmweT_+m_;46E93#*_q^nQl@_TRtN zkq@h*QhsF5TP#A!S$2V!rRK`D8~unDD*n)E+FY8^lc?2=7?P3YKxJivt2!)RL0A%y zVg%^7V;;0D)tIhKPeUMa=jququI-=w~7m5 zguPOR66hyPMfLT}ly-gQ5U#z#6TVGgG@hzI9wbMv{aO(|e3D|X!w(qBOnDvPk?~Gr zeiNtw0UVK=ua7KWy#o+X34cTthvnC(YEl!(=63z6QMhUXSPO3Qk*^-2w^sgeZI#}4 z`P@Z=!@&oRdf)_j-=u%4^6a%0jNf7?$#m*@nJl~pb%ocU4mQeq|F-wtK`PSf)#B#< z&yO1$gaKq24i;QYN=3Gv^O8XP`-cy8*&ukv;e-lW|8b(?!5pksZfp$N)sT%EUBFES zkk8f&-{e%u*@BcMgo_J1IREgK=#0|c#&^&A+7Z?j^9J&xJNJ&Otag4pAGm5ZU)}_M zd#tc^p`T4VPp*ZoOwz(5(6omtRE_I^g<$H+nD2`epiADDrN@`YSl^mA1-U9ycCA5h zyYFDMpswD+nH6MJ?k)3d3&1t7y8LF038v-?Yg zc3x{eyAY%7lb+ENnSXUvVmgAb?NxL{O)92=k3FO~y4rhq!g%~6@_Y5iglhd@rusBF zKyBRb3oI`wI96EXB%o8_Ny#waI$W<&e}~zhV$u7&ePU~*`I}P};73U==@hSeCHP?G zWYu|ME(_j&bMY!Ta-=VEiot7;0~-Tku^dE?&6bAf9>j?Y_8L7?1Z>Y988FB5S{CPa zbSPJmHjl7WCtXxFuD8T(6m=jujEK5}v`d06IQ(-qXG-*He@vlv z{PEQWY5Ndg6g{)Y<;A502Y}=n%}jcF?vp|46Wi{3$3lC^tT+WgKRSCsuVuWyqclmU zPA=Kwgt!FVBe=aU)hc5M@XKoj0^-QTHP-0t`U?Le#gUXR!gt2@B)Oem(fYsWm@arGcq$`t?H! z_8o#o11DaSNoW;d;`FG`0tNTGp)mW78g!>4S_+CU~=M`h!}W`ogGl zQ}{efb+M-yI#9PFt3dK}2=5>$c%89$;e!RJ65j@|l*-K_s-%G8VLrdnYbXO5{(ID(RVp5pB(1uQ~bq9-(UwyCpB z-i^_=x4DIhCT^yPZf`|;E=#V5WQ;UX6hdVBhNF;sc9MY{47Bk<6nok?frUs?zEWEb z#leiQU_XwmgbxAc8BH4mns(Bw^ZSak_f3SdiR=WFY%H zM%}qZ8)*)|bMZ0e152EXvbZiOv;PlM17STq1|>OqvIfN11-p9rMb|&Y5zF{N7brj^ zo+RA!efj|QJbF1(v>)h#Oy(1_Q)@Jt0U956Y3}^MJ{jopV>Nc+aXl}Kc&s5^Ls(!u~bBcZ#2)d2uaXdYG`|vUMiR>EPG5(|f@NIxQ*CR7~HXNocLZ(Yc!=Q@lfk(l* z_;O#=_w$bofLe0B8ayH@b}2Fn?zbH*7o{kr**$My7=`0m5LRtaHkC*p^W*@=q>5iS zOZK@J_e5IgI4+~0g*Nc5|2{CJJZa$Rc;{=vz5mT1_?1v1IZzP!tva387eBlY59f@9 zDlX`1{!w!lNU*{RL6aeM!0eY01q=o$$`~!mmnHdH9+cc|Q7+Rvhs$cZklj!jN@_iC zoH%AOa!2oLeipAg4R7v6Ht?)WZ z+mNW7KM~dQRu}nYQR654-02CN;2Up!jlOe~xspDVJVR`=x0YeG@q|0s*k)ZFc2@2I zt1^ckFs-evjp$V9#_jv%VW)B!Y>vulSk#VkSlH-|Vf^k<@w>zylkPy>=>OW*^|2<* zG2(AvEd?*Du1crGJ{5a-;;^jZ|1cxrkwu1ZjvC;?D(s9!fgGR2-&gj$S)oA0X$8w$ zF9|rse`0YHDv|DOV|2*}VKjCFtHd>4$7{*0eN5uy8+x#X9hKxf0pa;WL+i&oRV>Wl@MYFO&Wm5!sISN6W{h{EjU@xuLKq7z;Z=m8!;&Mf5$9&t z{mF&p;M@ZI4d4;6ClNuE0eVtHEw;+*7=;OaD{g9$mUclAK+lsp!?k;KM?t`p~OQm*M#7emH`$ZJi$`JReKCVXBoE+^EI!4O}uyIKE(S>odQx?OIM_ zSybnr@-wk4*ur-P^Y_m*h;TJH}T( zAWc5GOv};3TAASep0oy3tYA`&W?{cV52^U`wQcmha;2sW{|6GIX zlt@&CfPPPwO_?m@pEFX)vHI6{_~u&BtE*8*5zN?co+4OV4m-Az+dY15H^1M<=*oX4 z$4(ZVIcRh^%x5tAeaW37>0{!RtC6_*s*hYhVjZX@r-=nXWoFaYAAKA#dE%rf@*f<% zOpC-1L!cM~PYMZ&xnD9c)p;~5&l_I$liL4zjdh^hTUGhTkOLo{=W^)R%N{~`2*>K` zD^s2aI`HW!K&CMjf^r{2>G%UTh3gf=_6(-)E4bX!I9A4GO--f(TzMKbWlCDh)}_ME zz65qc^#0?QNhS|@FWU%##j22zW8oO})67N->!U-AEhD>!d{}Zr8&D~}63*nPf88aPMFXV14dfS^XEEt8bO#>w zV;OPZ5UU(8wbgbE_0&8*NSl{_kk!2N5?WXp`@?P!FNJtJi>HsiFFeP_M1~miL$)hQx0)0+5BBf7omt!|R7RFO z5(&`Q8?a?%qcuXA%ReSqY&fL*sAl z{8GrvaZ!JoR9RUpT% zV?@mjd|Dsio%W~ZJleX6%FPSY+@?uUJX@3$+I}eVS>b2RO$4FwOljmyLMcOsTXq;# zdq@<+BFz#7Yi(=A*rCSzdPuX=#>jHbGJ4G>#{yc6Dw0h3+Gq9a-VQhH)}5kjtA?cK zO`EQ`k7r&e8MfAp(USE!ZhT0hq)xh)D1syC=|T{!xsPm;C7m7*o`6!<7%3;)$2)7(bS1iN%P(v# zhV*Pv9Sqq!Kj;tzJvS>}n(MqKg9>aS)+j9-XME>^av7-shHwUkQ1f|Y5%NpPM6=j` zx$$jZNcK1->=soj@A(K!R7^`#nOops_xAoW$gxNW=>=b9Q?Wkxp|*9^#ex}0VKg}1 zz;Gom|4*?gHSbSI` z->jPE8TQ`Y63rpe3q>Z3of+FQCh7drNwp&CKXIKzq_p1`_$3uWt~g>9Q(K{TO`N9+ zYv4~xd=1AeLlhQ-*R?IuAl5>KA}retrj1Qx$JPsZfq z(8-pjTs2c{FI?0qhV3RLy8rd;Q!;C&siR@A4n_3GK z*Ey{c$5Rh1ox%!f?dMv^$T~G~Ni;4X59t$eYkvisbzDMwYj9CcUp4_wcrp<#f$;c)#S^Lg^M{AH z850}SFswfeTwh>0VV}eJ{~o}-dpvDE$kwnNP31@_7;A<9!2ytUr#=q)ii$9j_QmgZ zkImn+U@6edM8MNl*)Lu-rv^`6gM#ibq}_tN_C($s#t5;^;FB)`7rdW*~|?jd4Nug7>e4IdpahOBr6H|1ebsvSKT zv*5{>zUtM3O3yq#?V{RX=8T;7p&BZ4LO!O7+EbQa1|NGup2=w0|DFw6woJvBj4c~r zL2;7OXDHSvFH=s)d9vEm+1Fu^l^9Inu^GsARyQHs=zyf~eA|W#INBbaTW#VIF?n7j zE>fn?98(rzPxqV&fg{|8%Ow5Wx@kyIQo~}02#VTWP?qlCn4)<2X#fvQZh16!w^!CLsyYXlfFgc5$>4#vsz zBbfihv{FJG?xWVI!33FIk7|0_=vQ|5+8B9gu&b=Q@mz@dDP0;dU=O(a1u+0YN&Om0H+g%JtG6x{3i4WrvsK<@! zLhE(l7oAfQVc^^PTtLje$QRZ?3c##gmL=*^|GClS-K~HAacxIEJxrHi;twsRYP_-_ n%Kzuq#{YTIqwCpw^BK@RVaVRmos#|cHj=2.11.0 Sphinx>=1.8.3 sphinx-rtd-theme>=0.4.0 sphinx-tabs>=1.1.11 -sphinx-automodapi \ No newline at end of file +sphinx-automodapi +jupyter-sphinx \ No newline at end of file diff --git a/tox.ini b/tox.ini index 0b1a1007c945..687190d0bbaf 100644 --- a/tox.ini +++ b/tox.ini @@ -35,5 +35,7 @@ commands = [testenv:docs] deps = -r{toxinidir}/requirements-dev.txt + qiskit-aer + qiskit-ibmq-provider commands = sphinx-build -b html docs/ docs/_build/html {posargs} From 4b9668fadeade5788a8e4727f527ed3f019699b6 Mon Sep 17 00:00:00 2001 From: Paul Nation Date: Mon, 14 Oct 2019 10:31:16 -0400 Subject: [PATCH 25/37] fix slight variation in format from rochester props (#3253) * fix slight variation in format from rochester props * fix too many blank lines --- qiskit/visualization/gate_map.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/qiskit/visualization/gate_map.py b/qiskit/visualization/gate_map.py index 67a497b31af1..d5cb50edd22c 100644 --- a/qiskit/visualization/gate_map.py +++ b/qiskit/visualization/gate_map.py @@ -337,8 +337,11 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True): n_qubits = config['n_qubits'] # U2 error rates - single_gate_errors = [q['parameters'][0]['value'] - for q in props['gates'][1:3 * n_qubits:3]] + single_gate_errors = [0]*n_qubits + for gate in props['gates']: + if gate['gate'] == 'u2': + _qubit = gate['qubits'][0] + single_gate_errors[_qubit] = gate['parameters'][0]['value'] # Convert to percent single_gate_errors = 100 * np.asarray(single_gate_errors) From 14dedb04aa9314572073dc5e64e185670f919def Mon Sep 17 00:00:00 2001 From: Kevin Krsulich Date: Mon, 14 Oct 2019 15:04:31 -0400 Subject: [PATCH 26/37] Add release notes for ion trap merge. (#3254) * Rename basis to basis_gates for consistency in MSBasisDecomposer. * Remove target basis limitation for MSBasisDecomposer. * Clarify MSBasisDecomposer unrolling requirement. * Add release note for ion trap support (#3214). --- .../transpiler/passes/ms_basis_decomposer.py | 20 +++++++++---------- ...ial-ion-trap-support-33686980aa9ec3ae.yaml | 17 ++++++++++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml diff --git a/qiskit/transpiler/passes/ms_basis_decomposer.py b/qiskit/transpiler/passes/ms_basis_decomposer.py index 526876ba9de6..a3d300532645 100644 --- a/qiskit/transpiler/passes/ms_basis_decomposer.py +++ b/qiskit/transpiler/passes/ms_basis_decomposer.py @@ -31,21 +31,21 @@ class MSBasisDecomposer(TransformationPass): """ supported_input_gates = (U3Gate, CnotGate) - supported_basis_names = ('rx', 'ry', 'rxx', 'ms') - def __init__(self, basis): + def __init__(self, basis_gates): """ Args: - basis (list[str]): Target basis names, e.g. `['rx', 'ry', 'rxx', 'ms']` . - - Raises: - QiskitError: if target basis is not [ 'rx', 'ry', 'rxx', 'ms' ] + basis_gates (list[str]): Target basis names, e.g. `['rx', 'ry', 'rxx', 'ms']` . """ super().__init__() - self.basis = basis - self.requires = [Unroller(list(set(basis).union(['u3', 'cx'])))] + self.basis_gates = basis_gates + + # Require all gates be unrolled to either a basis gate or U3,CX before + # running the decomposer. + input_basis = set(basis_gates).union(['u3', 'cx']) + self.requires = [Unroller(list(input_basis))] def run(self, dag): """Replace U3,CX nodes in input dag with equivalent Rx,Ry,Rxx gates. @@ -70,13 +70,13 @@ def run(self, dag): # instructions should be part of the device-reported basis. Currently, no # backend reports "measure", for example. continue - if node.name in self.basis: # If already a base, ignore. + if node.name in self.basis_gates: # If already a base, ignore. continue if not isinstance(node.op, self.supported_input_gates): raise QiskitError("Cannot convert the circuit to the given basis, %s. " "No rule to expand instruction %s." % - (str(self.basis), node.op.name)) + (str(self.basis_gates), node.op.name)) if isinstance(node.op, U3Gate): replacement_circuit = one_q_decomposer(node.op) diff --git a/releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml b/releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml new file mode 100644 index 000000000000..aca5f4582c33 --- /dev/null +++ b/releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml @@ -0,0 +1,17 @@ +--- +features: + - | + Initial support for executing experiments on ion trap backends has been + added. + - | + An Rxx gate (rxx) and a global Mølmer–Sørensen gate (ms) have been added + to the standard gate set. + - | + A Cnot to Rxx/Rx/Ry decomposer ``cnot_rxx_decompose`` and a single qubit + Euler angle decomposer ``OneQubitEulerDecomposer`` have been added to the + ``quantum_info.synthesis`` module. + - | + A transpiler pass ``MSBasisDecomposer`` has been added to unroll circuits + defined over U3 and Cnot gates into a circuit defined over Rxx,Ry and Rx. + This pass will be included in preset pass managers for backends which + include the 'rxx' gate in their supported basis gates. From 73bde451a2ecc2ee73567ab951d2c13d676289a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20M=2E=20Rodr=C3=ADguez?= Date: Mon, 14 Oct 2019 23:37:29 +0200 Subject: [PATCH 27/37] Fix no linebreaks before Args (#3236) --- qiskit/assembler/assemble_schedules.py | 1 + qiskit/circuit/quantumcircuit.py | 5 +- .../quantum_initializer/mcg_up_to_diagonal.py | 4 +- qiskit/extensions/quantum_initializer/ucg.py | 3 +- qiskit/pulse/cmd_def.py | 4 ++ qiskit/pulse/commands/instruction.py | 3 +- qiskit/pulse/commands/pulse_decorators.py | 1 + qiskit/pulse/interfaces.py | 1 + qiskit/pulse/pulse_lib/samplers/strategies.py | 3 ++ qiskit/test/mock/fake_backend.py | 3 +- qiskit/transpiler/coupling.py | 1 + qiskit/transpiler/layout.py | 11 ++-- .../transpiler/passes/consolidate_blocks.py | 7 +-- qiskit/transpiler/passes/decompose.py | 3 +- qiskit/transpiler/passes/fixed_point.py | 3 +- .../transpiler/passes/mapping/apply_layout.py | 4 +- .../passes/mapping/check_cx_direction.py | 1 + qiskit/transpiler/passes/mapping/check_map.py | 4 +- .../transpiler/passes/mapping/cx_direction.py | 3 +- .../passes/mapping/enlarge_with_ancilla.py | 6 +-- qiskit/transpiler/passes/unroller.py | 3 +- qiskit/validation/validate.py | 6 ++- qiskit/visualization/bloch.py | 2 + qiskit/visualization/circuit_visualization.py | 4 +- qiskit/visualization/latex.py | 6 ++- qiskit/visualization/pulse/matplotlib.py | 2 + qiskit/visualization/pulse/qcstyle.py | 2 + qiskit/visualization/state_visualization.py | 7 ++- qiskit/visualization/text.py | 53 ++++++++++--------- qiskit/visualization/utils.py | 1 + 30 files changed, 99 insertions(+), 58 deletions(-) diff --git a/qiskit/assembler/assemble_schedules.py b/qiskit/assembler/assemble_schedules.py index ce83aa4f0b62..3e99c660c221 100644 --- a/qiskit/assembler/assemble_schedules.py +++ b/qiskit/assembler/assemble_schedules.py @@ -24,6 +24,7 @@ def assemble_schedules(schedules, qobj_id, qobj_header, run_config): """Assembles a list of schedules into a qobj which can be run on the backend. + Args: schedules (list[Schedule]): schedules to assemble qobj_id (int): identifier for the generated qobj diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index 4633945b3e29..ba1d88123d4d 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -56,7 +56,9 @@ class QuantumCircuit: def __init__(self, *regs, name=None): """Create a new circuit. + A circuit is a list of instructions bound to some registers. + Args: *regs (list(Register) or list(Int)): To be included in the circuit. - If [Register], the QuantumRegister and/or ClassicalRegister @@ -975,7 +977,8 @@ def num_tensor_factors(self): return self.num_unitary_factors() def copy(self, name=None): - """ + """Copy the circuit. + Args: name (str): name to be given to the copied circuit, if None then the name stays the same Returns: diff --git a/qiskit/extensions/quantum_initializer/mcg_up_to_diagonal.py b/qiskit/extensions/quantum_initializer/mcg_up_to_diagonal.py index fb144e1ad9e3..46524d2414f4 100644 --- a/qiskit/extensions/quantum_initializer/mcg_up_to_diagonal.py +++ b/qiskit/extensions/quantum_initializer/mcg_up_to_diagonal.py @@ -42,8 +42,8 @@ class MCGupDiag(Gate): """ def __init__(self, gate, num_controls, num_ancillas_zero, num_ancillas_dirty): - """ - Initialize a multi controlled gate. + """Initialize a multi controlled gate. + Args: gate (ndarray): 2*2 unitary (given as a (complex) ndarray) num_controls (int): number of control qubits diff --git a/qiskit/extensions/quantum_initializer/ucg.py b/qiskit/extensions/quantum_initializer/ucg.py index afc7683f307b..a23b862cdad2 100644 --- a/qiskit/extensions/quantum_initializer/ucg.py +++ b/qiskit/extensions/quantum_initializer/ucg.py @@ -57,7 +57,8 @@ class UCG(Gate): """ def __init__(self, gate_list, up_to_diagonal=False): - """ + """UCG Gate initializer. + Args: gate_list (list[ndarray]): list of two qubit unitaries [U_0,...,U_{2^k-1}], where each single-qubit unitary U_i is given as a 2*2 numpy array. diff --git a/qiskit/pulse/cmd_def.py b/qiskit/pulse/cmd_def.py index be3f8f2b0f43..d60db0cc42a4 100644 --- a/qiskit/pulse/cmd_def.py +++ b/qiskit/pulse/cmd_def.py @@ -30,6 +30,7 @@ def _to_qubit_tuple(qubit_tuple: Union[int, Iterable[int]]) -> Tuple[int]: """Convert argument to tuple. + Args: qubit_tuple: Qubits to enforce as tuple. @@ -68,6 +69,7 @@ def from_defaults(cls, flat_cmd_def: List[PulseQobjInstruction], pulse_library: Dict[str, SamplePulse], buffer: int = 0) -> 'CmdDef': """Create command definition from backend defaults output. + Args: flat_cmd_def: Command definition list returned by backend pulse_library: Dictionary of `SamplePulse`s @@ -121,6 +123,7 @@ def get(self, cmd_name: str, qubits: Union[int, Iterable[int]], *params: List[Union[int, float, complex]], **kwparams: Dict[str, Union[int, float, complex]]) -> Schedule: """Get command from command definition. + Args: cmd_name: Name of the command qubits: Ordered list of qubits command applies to @@ -145,6 +148,7 @@ def get(self, cmd_name: str, qubits: Union[int, Iterable[int]], def get_parameters(self, cmd_name: str, qubits: Union[int, Iterable[int]]) -> Tuple[str]: """Get command parameters from command definition. + Args: cmd_name: Name of the command qubits: Ordered list of qubits command applies to diff --git a/qiskit/pulse/commands/instruction.py b/qiskit/pulse/commands/instruction.py index 207f262eb66d..478b8784fda8 100644 --- a/qiskit/pulse/commands/instruction.py +++ b/qiskit/pulse/commands/instruction.py @@ -30,7 +30,8 @@ class Instruction(ScheduleComponent): def __init__(self, command, *channels: List[Channel], name: Optional[str] = None): - """ + """Instruction initializer. + Args: command: Pulse command to schedule *channels: List of pulse channels to schedule with command diff --git a/qiskit/pulse/commands/pulse_decorators.py b/qiskit/pulse/commands/pulse_decorators.py index d8c1419acf95..4de0f5f163f5 100644 --- a/qiskit/pulse/commands/pulse_decorators.py +++ b/qiskit/pulse/commands/pulse_decorators.py @@ -30,6 +30,7 @@ def functional_pulse(func: Callable): """A decorator for generating SamplePulse from python callable. + Args: func: A function describing pulse envelope. Raises: diff --git a/qiskit/pulse/interfaces.py b/qiskit/pulse/interfaces.py index f22b5def1e5f..2a07f77ac081 100644 --- a/qiskit/pulse/interfaces.py +++ b/qiskit/pulse/interfaces.py @@ -116,6 +116,7 @@ def union(self, *schedules: List['ScheduleComponent'], def shift(self: 'ScheduleComponent', time: int, name: Optional[str] = None) -> 'ScheduleComponent': """Return a new schedule shifted forward by `time`. + Args: time: Time to shift by name: Name of the new schedule. Defaults to name of parent diff --git a/qiskit/pulse/pulse_lib/samplers/strategies.py b/qiskit/pulse/pulse_lib/samplers/strategies.py index d33e6074cecc..e039ae48b854 100644 --- a/qiskit/pulse/pulse_lib/samplers/strategies.py +++ b/qiskit/pulse/pulse_lib/samplers/strategies.py @@ -37,6 +37,7 @@ def f(times: np.ndarray, *args, **kwargs) -> np.ndarray: def left_sample(continuous_pulse: Callable, duration: int, *args, **kwargs) -> np.ndarray: """Left sample a continuous function. + Args: continuous_pulse: Continuous pulse function to sample. duration: Duration to sample for. @@ -49,6 +50,7 @@ def left_sample(continuous_pulse: Callable, duration: int, *args, **kwargs) -> n def right_sample(continuous_pulse: Callable, duration: int, *args, **kwargs) -> np.ndarray: """Sampling strategy for decorator. + Args: continuous_pulse: Continuous pulse function to sample. duration: Duration to sample for. @@ -61,6 +63,7 @@ def right_sample(continuous_pulse: Callable, duration: int, *args, **kwargs) -> def midpoint_sample(continuous_pulse: Callable, duration: int, *args, **kwargs) -> np.ndarray: """Sampling strategy for decorator. + Args: continuous_pulse: Continuous pulse function to sample. duration: Duration to sample for. diff --git a/qiskit/test/mock/fake_backend.py b/qiskit/test/mock/fake_backend.py index cb05706f7774..597a9c4bb73b 100644 --- a/qiskit/test/mock/fake_backend.py +++ b/qiskit/test/mock/fake_backend.py @@ -29,7 +29,8 @@ class FakeBackend(BaseBackend): """This is a dummy backend just for testing purposes.""" def __init__(self, configuration, time_alive=10): - """ + """FakeBackend initializer. + Args: configuration (BackendConfiguration): backend configuration time_alive (int): time to wait before returning result diff --git a/qiskit/transpiler/coupling.py b/qiskit/transpiler/coupling.py index 82585f5f71b2..120c1bae6a71 100644 --- a/qiskit/transpiler/coupling.py +++ b/qiskit/transpiler/coupling.py @@ -172,6 +172,7 @@ def distance(self, physical_qubit1, physical_qubit2): def shortest_undirected_path(self, physical_qubit1, physical_qubit2): """Returns the shortest undirected path between physical_qubit1 and physical_qubit2. + Args: physical_qubit1 (int): A physical qubit physical_qubit2 (int): Another physical qubit diff --git a/qiskit/transpiler/layout.py b/qiskit/transpiler/layout.py index 8a1143a1a5ff..2e2dbf41d8f3 100644 --- a/qiskit/transpiler/layout.py +++ b/qiskit/transpiler/layout.py @@ -159,6 +159,7 @@ def add(self, virtual_bit, physical_bit=None): Adds a map element between `bit` and `physical_bit`. If `physical_bit` is not defined, `bit` will be mapped to a new physical bit (extending the length of the layout by one.) + Args: virtual_bit (tuple): A (qu)bit. For example, (QuantumRegister(3, 'qr'), 2). physical_bit (int): A physical bit. For example, 3. @@ -171,8 +172,8 @@ def add(self, virtual_bit, physical_bit=None): self[virtual_bit] = physical_bit def add_register(self, reg): - """ - Adds at the end physical_qubits that map each bit in reg. + """Adds at the end physical_qubits that map each bit in reg. + Args: reg (Register): A (qu)bit Register. For example, QuantumRegister(3, 'qr'). """ @@ -203,6 +204,7 @@ def get_physical_bits(self): def swap(self, left, right): """Swaps the map between left and right. + Args: left (tuple or int): Item to swap with right. right (tuple or int): Item to swap with left. @@ -246,8 +248,8 @@ def combine_into_edge_map(self, another_layout): @staticmethod def generate_trivial_layout(*regs): - """ - Creates a trivial ("one-to-one") Layout with the registers in `regs`. + """Creates a trivial ("one-to-one") Layout with the registers in `regs`. + Args: *regs (Registers): registers to include in the layout. Returns: @@ -298,6 +300,7 @@ def from_tuplelist(tuple_list): """ Populates a Layout from a list containing virtual qubits---(QuantumRegister, int) tuples---, or None. + Args: tuple_list (list): e.g.: [(qr,0), None, (qr,2), (qr,3)] diff --git a/qiskit/transpiler/passes/consolidate_blocks.py b/qiskit/transpiler/passes/consolidate_blocks.py index 893a49b55d34..6ef084b5cf55 100644 --- a/qiskit/transpiler/passes/consolidate_blocks.py +++ b/qiskit/transpiler/passes/consolidate_blocks.py @@ -37,7 +37,8 @@ class ConsolidateBlocks(TransformationPass): it reads is given such that blocks are in topological order. """ def __init__(self, kak_basis_gate=CnotGate(), force_consolidate=False): - """ + """ConsolidateBlocks initializer. + Args: kak_basis_gate (Gate): Basis gate for KAK decomposition. force_consolidate (bool): Force block consolidation @@ -125,8 +126,8 @@ def run(self, dag): return new_dag def _block_qargs_to_indices(self, block_qargs, global_index_map): - """ - Map each qubit in block_qargs to its wire position among the block's wires. + """Map each qubit in block_qargs to its wire position among the block's wires. + Args: block_qargs (list): list of qubits that a block acts on global_index_map (dict): mapping from each qubit in the diff --git a/qiskit/transpiler/passes/decompose.py b/qiskit/transpiler/passes/decompose.py index 49cd5198b1e1..efb6c586ba04 100644 --- a/qiskit/transpiler/passes/decompose.py +++ b/qiskit/transpiler/passes/decompose.py @@ -24,7 +24,8 @@ class Decompose(TransformationPass): """ def __init__(self, gate=None): - """ + """Decompose initializer. + Args: gate (qiskit.circuit.gate.Gate): Gate to decompose. """ diff --git a/qiskit/transpiler/passes/fixed_point.py b/qiskit/transpiler/passes/fixed_point.py index 2eb7a42ccfed..f0a0984f0c8e 100644 --- a/qiskit/transpiler/passes/fixed_point.py +++ b/qiskit/transpiler/passes/fixed_point.py @@ -25,7 +25,8 @@ class FixedPoint(AnalysisPass): """ def __init__(self, property_to_check): - """ + """FixedPoint initializer. + Args: property_to_check (str): The property to check if a fixed point was reached. """ diff --git a/qiskit/transpiler/passes/mapping/apply_layout.py b/qiskit/transpiler/passes/mapping/apply_layout.py index 2706e4441cdd..544dc8454113 100644 --- a/qiskit/transpiler/passes/mapping/apply_layout.py +++ b/qiskit/transpiler/passes/mapping/apply_layout.py @@ -30,8 +30,8 @@ class ApplyLayout(TransformationPass): """ def run(self, dag): - """ - Runs the ApplyLayout pass on `dag`. + """Runs the ApplyLayout pass on `dag`. + Args: dag (DAGCircuit): DAG to map. Returns: diff --git a/qiskit/transpiler/passes/mapping/check_cx_direction.py b/qiskit/transpiler/passes/mapping/check_cx_direction.py index 9d1471ac7ad7..5085cee4ae79 100644 --- a/qiskit/transpiler/passes/mapping/check_cx_direction.py +++ b/qiskit/transpiler/passes/mapping/check_cx_direction.py @@ -32,6 +32,7 @@ def __init__(self, coupling_map): """ Checks if the CNOTs in DAGCircuit are in the allowed direction with respect to `coupling_map`. + Args: coupling_map (CouplingMap): Directed graph representing a coupling map. """ diff --git a/qiskit/transpiler/passes/mapping/check_map.py b/qiskit/transpiler/passes/mapping/check_map.py index 7990dffa2607..834c038099e2 100644 --- a/qiskit/transpiler/passes/mapping/check_map.py +++ b/qiskit/transpiler/passes/mapping/check_map.py @@ -27,8 +27,8 @@ class CheckMap(AnalysisPass): """ def __init__(self, coupling_map): - """ - Checks if a DAGCircuit is mapped to `coupling_map`. + """Checks if a DAGCircuit is mapped to `coupling_map`. + Args: coupling_map (CouplingMap): Directed graph representing a coupling map. """ diff --git a/qiskit/transpiler/passes/mapping/cx_direction.py b/qiskit/transpiler/passes/mapping/cx_direction.py index 832018d50d9f..993a46b23805 100644 --- a/qiskit/transpiler/passes/mapping/cx_direction.py +++ b/qiskit/transpiler/passes/mapping/cx_direction.py @@ -39,7 +39,8 @@ class CXDirection(TransformationPass): """ def __init__(self, coupling_map): - """ + """CXDirection initializer. + Args: coupling_map (CouplingMap): Directed graph represented a coupling map. """ diff --git a/qiskit/transpiler/passes/mapping/enlarge_with_ancilla.py b/qiskit/transpiler/passes/mapping/enlarge_with_ancilla.py index f904cdfc710f..e3209ce14119 100644 --- a/qiskit/transpiler/passes/mapping/enlarge_with_ancilla.py +++ b/qiskit/transpiler/passes/mapping/enlarge_with_ancilla.py @@ -26,7 +26,8 @@ class EnlargeWithAncilla(TransformationPass): the layout, but not present in the circuit.""" def __init__(self, layout=None): - """ + """EnlargeWithAncilla initializer. + Args: layout (Layout): layout of qubits to consider """ @@ -34,8 +35,7 @@ def __init__(self, layout=None): self.layout = layout def run(self, dag): - """ - Extends dag with virtual qubits that are in layout but not in the circuit yet. + """Extends dag with virtual qubits that are in layout but not in the circuit yet. Args: dag (DAGCircuit): DAG to extend. diff --git a/qiskit/transpiler/passes/unroller.py b/qiskit/transpiler/passes/unroller.py index 5be94d1678f8..b3160ac9283d 100644 --- a/qiskit/transpiler/passes/unroller.py +++ b/qiskit/transpiler/passes/unroller.py @@ -27,7 +27,8 @@ class Unroller(TransformationPass): """ def __init__(self, basis): - """ + """Unroller initializer. + Args: basis (list[str]): Target basis names to unroll to, e.g. `['u3', 'cx']` . """ diff --git a/qiskit/validation/validate.py b/qiskit/validation/validate.py index 4013a5bc4ba1..ad0c7f6a75a5 100644 --- a/qiskit/validation/validate.py +++ b/qiskit/validation/validate.py @@ -32,7 +32,8 @@ class Or(Validator): """ def __init__(self, validators): - """ + """Or initializer. + Args: validators (list[Validator]): list of Validators. """ @@ -68,7 +69,8 @@ class PatternProperties(Validator): """ def __init__(self, pattern_properties): - """ + """PatternProperties initializer. + Args: pattern_properties (dict[Validator: Field]): dictionary of the valid mappings. diff --git a/qiskit/visualization/bloch.py b/qiskit/visualization/bloch.py index dc56aafd5b82..33a4d00a09bd 100644 --- a/qiskit/visualization/bloch.py +++ b/qiskit/visualization/bloch.py @@ -310,6 +310,7 @@ def clear(self): def add_points(self, points, meth='s'): """Add a list of data points to bloch sphere. + Args: points (array_like): Collection of data points. @@ -601,6 +602,7 @@ def show(self, title=''): def save(self, name=None, output='png', dirc=None): """Saves Bloch sphere to file of type ``format`` in directory ``dirc``. + Args: name (str): Name of saved image. Must include path and format as well. diff --git a/qiskit/visualization/circuit_visualization.py b/qiskit/visualization/circuit_visualization.py index 31e8b9d3a354..c5a2617acfca 100644 --- a/qiskit/visualization/circuit_visualization.py +++ b/qiskit/visualization/circuit_visualization.py @@ -386,8 +386,8 @@ def qx_color_scheme(): def _text_circuit_drawer(circuit, filename=None, line_length=None, reverse_bits=False, plot_barriers=True, justify=None, vertical_compression='high', idle_wires=True, with_layout=True, fold=None,): - """ - Draws a circuit using ascii art. + """Draws a circuit using ascii art. + Args: circuit (QuantumCircuit): Input circuit filename (str): optional filename to write the result diff --git a/qiskit/visualization/latex.py b/qiskit/visualization/latex.py index cc597e7b87c1..c64a250c2c40 100644 --- a/qiskit/visualization/latex.py +++ b/qiskit/visualization/latex.py @@ -46,7 +46,8 @@ class QCircuitImage: def __init__(self, qubits, clbits, ops, scale, style=None, plot_barriers=True, reverse_bits=False, layout=None): - """ + """QCircuitImage initializer. + Args: qubits (list[Qubit]): list of qubits clbits (list[Clbit]): list of clbits @@ -768,7 +769,8 @@ def _build_latex_array(self, aliases=None): column += num_cols_used def _get_qubit_index(self, qubit): - """Get the index number for a quantum bit + """Get the index number for a quantum bit. + Args: qubit (tuple): The tuple of the bit of the form (register_name, bit_number) diff --git a/qiskit/visualization/pulse/matplotlib.py b/qiskit/visualization/pulse/matplotlib.py index 1a318edbe9a0..b0692d8380c5 100644 --- a/qiskit/visualization/pulse/matplotlib.py +++ b/qiskit/visualization/pulse/matplotlib.py @@ -225,6 +225,7 @@ def __init__(self, style): def draw(self, pulse, dt, interp_method, scaling=1): """Draw figure. + Args: pulse (SamplePulse): SamplePulse to draw dt (float): time interval @@ -542,6 +543,7 @@ def draw(self, schedule, dt, interp_method, plot_range, scaling=1, channels_to_plot=None, plot_all=True, table=True, label=False, framechange=True): """Draw figure. + Args: schedule (ScheduleComponent): Schedule to draw dt (float): time interval diff --git a/qiskit/visualization/pulse/qcstyle.py b/qiskit/visualization/pulse/qcstyle.py index 0ec4a2b12bc3..806fa6db51a0 100644 --- a/qiskit/visualization/pulse/qcstyle.py +++ b/qiskit/visualization/pulse/qcstyle.py @@ -23,6 +23,7 @@ def __init__(self, figsize=(10, 12), fig_unit_h_table=0.4, m_ch_color=None, s_ch_color=None, s_ch_linestyle='-', table_color=None, bg_color=None, num_points=1000, dpi=150): """Set style sheet for OpenPulse schedule drawer. + Args: figsize (tuple): Size of figure. fig_unit_h_table (float): height of table row @@ -72,6 +73,7 @@ class PulseStyle: def __init__(self, figsize=(7, 5), wave_color=None, bg_color=None, num_points=None, dpi=None): """Set style sheet for OpenPulse sample pulse drawer. + Args: figsize (tuple): Size of figure. wave_color (list[str]): colors for real and imaginary part of waveform. diff --git a/qiskit/visualization/state_visualization.py b/qiskit/visualization/state_visualization.py index 09672c54268d..0c1125c5a0b7 100644 --- a/qiskit/visualization/state_visualization.py +++ b/qiskit/visualization/state_visualization.py @@ -719,8 +719,10 @@ def plot_state_qsphere(rho, figsize=None, ax=None): def generate_facecolors(x, y, z, dx, dy, dz, color): """Generates shaded facecolors for shaded bars. + This is here to work around a Matplotlib bug where alpha does not work in Bar3D. + Args: x (array_like): The x- coordinates of the anchor point of the bars. y (array_like): The y- coordinates of the anchor point of the bars. @@ -804,14 +806,15 @@ def generate_facecolors(x, y, z, dx, dy, dz, color): def _generate_normals(polygons): - """ - Takes a list of polygons and return an array of their normals. + """Takes a list of polygons and return an array of their normals. + Normals point towards the viewer for a face with its vertices in counterclockwise order, following the right hand rule. Uses three points equally spaced around the polygon. This normal of course might not make sense for polygons with more than three points not lying in a plane, but it's a plausible and fast approximation. + Args: polygons (list): list of (M_i, 3) array_like, or (..., M, 3) array_like A sequence of polygons to compute normals for, which can have diff --git a/qiskit/visualization/text.py b/qiskit/visualization/text.py index e40e05ce5df3..40a8ff6667cd 100644 --- a/qiskit/visualization/text.py +++ b/qiskit/visualization/text.py @@ -92,8 +92,8 @@ def width(self, value): self._width = value def connect(self, wire_char, where, label=None): - """ - Connects boxes and elements using wire_char and setting proper connectors. + """Connects boxes and elements using wire_char and setting proper connectors. + Args: wire_char (char): For example '║' or '│'. where (list["top", "bot"]): Where the connector should be set. @@ -198,8 +198,8 @@ class MultiBox(DrawElement): """Elements that is draw on over multiple wires.""" def center_label(self, input_length, order): - """ - In multi-bit elements, the label is centered vertically. + """In multi-bit elements, the label is centered vertically. + Args: input_length (int): Rhe amount of wires affected. order (int): Which middle element is this one? @@ -404,8 +404,8 @@ def __init__(self, wire): @staticmethod def fillup_layer(layer, first_clbit): - """ - Given a layer, replace the Nones in it with EmptyWire elements. + """Given a layer, replace the Nones in it with EmptyWire elements. + Args: layer (list): The layer that contains Nones. first_clbit (int): The first wire that is classic. @@ -430,8 +430,8 @@ def __init__(self, arrow_char): @staticmethod def fillup_layer(layer_length, arrow_char): - """ - Creates a layer with BreakWire elements. + """Creates a layer with BreakWire elements. + Args: layer_length (int): The length of the layer to create arrow_char (char): The char used to create the BreakWire element. @@ -453,8 +453,8 @@ def __init__(self, label): @staticmethod def fillup_layer(names): - """ - Creates a layer with InputWire elements. + """Creates a layer with InputWire elements. + Args: names (list): List of names for the wires. @@ -504,8 +504,8 @@ def single_string(self): return "\n".join(self.lines()) def dump(self, filename, encoding="utf8"): - """ - Dumps the ascii art in the file. + """Dumps the ascii art in the file. + Args: filename (str): File to dump the ascii art. encoding (str): Optional. Default "utf-8". @@ -627,8 +627,8 @@ def should_compress(self, top_line, bot_line): return True def draw_wires(self, wires): - """ - Given a list of wires, creates a list of lines with the text drawing. + """Given a list of wires, creates a list of lines with the text drawing. + Args: wires (list): A list of wires with instructions. Returns: @@ -699,8 +699,8 @@ def label_for_box(instruction): @staticmethod def merge_lines(top, bot, icod="top"): - """ - Merges two lines (top and bot) in the way that the overlapping make senses. + """Merges two lines (top and bot) in the way that the overlapping make senses. + Args: top (str): the top line bot (str): the bottom line @@ -754,6 +754,7 @@ def merge_lines(top, bot, icod="top"): def normalize_width(layer): """ When the elements of the layer have different widths, sets the width to the max elements. + Args: layer (list): A list of elements. """ @@ -938,8 +939,8 @@ def full_layer(self): return self.qubit_layer + self.clbit_layer def set_qubit(self, qubit, element): - """ - Sets the qubit to the element + """Sets the qubit to the element. + Args: qubit (qbit): Element of self.qregs. element (DrawElement): Element to set in the qubit @@ -947,8 +948,8 @@ def set_qubit(self, qubit, element): self.qubit_layer[self.qregs.index(qubit)] = element def set_clbit(self, clbit, element): - """ - Sets the clbit to the element + """Sets the clbit to the element. + Args: clbit (cbit): Element of self.cregs. element (DrawElement): Element to set in the clbit @@ -1031,8 +1032,8 @@ def _set_multibox(self, label, qubits=None, clbits=None, top_connect=None, condi conditional=conditional)) def set_cl_multibox(self, creg, label, top_connect='┴'): - """ - Sets the multi clbit box. + """Sets the multi clbit box. + Args: creg (string): The affected classical register. label (string): The label for the multi clbit box. @@ -1042,8 +1043,8 @@ def set_cl_multibox(self, creg, label, top_connect='┴'): self._set_multibox(label, clbits=clbit, top_connect=top_connect) def set_qu_multibox(self, bits, label, conditional=False): - """ - Sets the multi qubit box. + """Sets the multi qubit box. + Args: bits (list[int]): A list of affected bits. label (string): The label for the multi qubit box. @@ -1052,8 +1053,8 @@ def set_qu_multibox(self, bits, label, conditional=False): self._set_multibox(label, qubits=bits, conditional=conditional) def connect_with(self, wire_char): - """ - Connects the elements in the layer using wire_char. + """Connects the elements in the layer using wire_char. + Args: wire_char (char): For example '║' or '│'. """ diff --git a/qiskit/visualization/utils.py b/qiskit/visualization/utils.py index 2b5ee02861b2..246d1cf04b76 100644 --- a/qiskit/visualization/utils.py +++ b/qiskit/visualization/utils.py @@ -71,6 +71,7 @@ def _get_layered_instructions(circuit, reverse_bits=False, qregs and cregs are the quantum and classical registers in order (based on reverse_bits) and ops is a list of DAG nodes which type is "operation". + Args: circuit (QuantumCircuit): From where the information is extracted. reverse_bits (bool): If true the order of the bits in the registers is From 88f99fbccd2c7a0f1deccaf0fb7f1d16d5bef2b6 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Mon, 14 Oct 2019 21:21:56 -0400 Subject: [PATCH 28/37] Fix rst formatting for QuantumCircuit docstrings (#3261) * Fix rst formatting for QuantumCircuit docstrings The QuantumCircuit had several instances of invalid rst formatting that prevented the docs from rendering clearly. This commit fixes several of them. Two follow ups to this should be fixing all the warnings issued during the docs builds (since most of them are highlighting valid issues with formatting). Additionally all the docstrings for the standard gate and circuit instruction methods should be updated to flush out the docs here. Most of the docstrings for these methods are one line and don't explain clearly what the inputs or outputs are. * Fix lint --- qiskit/circuit/quantumcircuit.py | 79 +++++++++++++------ qiskit/extensions/quantum_initializer/diag.py | 42 +++++----- qiskit/extensions/quantum_initializer/squ.py | 33 ++++---- qiskit/extensions/quantum_initializer/ucg.py | 46 +++++------ qiskit/extensions/quantum_initializer/ucx.py | 38 ++++----- qiskit/extensions/quantum_initializer/ucy.py | 38 ++++----- qiskit/extensions/quantum_initializer/ucz.py | 39 ++++----- 7 files changed, 173 insertions(+), 142 deletions(-) diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index ba1d88123d4d..248e88b66f92 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -60,18 +60,30 @@ def __init__(self, *regs, name=None): A circuit is a list of instructions bound to some registers. Args: - *regs (list(Register) or list(Int)): To be included in the circuit. - - If [Register], the QuantumRegister and/or ClassicalRegister - to include in the circuit. - E.g.: QuantumCircuit(QuantumRegister(4)) - QuantumCircuit(QuantumRegister(4), ClassicalRegister(3)) - QuantumCircuit(QuantumRegister(4, 'qr0'), QuantumRegister(2, 'qr1')) - - If [Int], the amount of qubits and/or classical bits to include - in the circuit. It can be (Int, ) or (Int, Int). - E.g.: QuantumCircuit(4) # A QuantumCircuit with 4 qubits - QuantumCircuit(4, 3) # A QuantumCircuit with 4 qubits and 3 classical bits - name (str or None): the name of the quantum circuit. If - None, an automatically generated string will be assigned. + regs: list(:class:`Register`) or list(``int``) The registers to be + included in the circuit. + + * If a list of :class:`Register` objects, represents the :class:`QuantumRegister` + and/or :class:`ClassicalRegister` objects to include in the circuit. + + For example: + + * ``QuantumCircuit(QuantumRegister(4))`` + * ``QuantumCircuit(QuantumRegister(4), ClassicalRegister(3))`` + * ``QuantumCircuit(QuantumRegister(4, 'qr0'), QuantumRegister(2, 'qr1'))`` + + * If a list of ``int``, the amount of qubits and/or classical + bits to include in the circuit. It can either be a single + int for just the number of quantum bits, or 2 ints for the number of + quantum bits and classical bits respectively. + + For example: + + * ``QuantumCircuit(4) # A QuantumCircuit with 4 qubits`` + * ``QuantumCircuit(4, 3) # A QuantumCircuit with 4 qubits and 3 classical bits`` + + name (str): the name of the quantum circuit. If not set, an + automatically generated string will be assigned. Raises: QiskitError: if the circuit name, if given, is not valid. @@ -106,14 +118,15 @@ def __init__(self, *regs, name=None): @property def data(self): - """Return the circuit data (instructions and context) + """Return the circuit data (instructions and context). Returns: - QuantumCircuitData: a list-like object containing the tuples for the - circuit's data. Each tuple is in the format (instruction, qargs, - cargs). Where instruction is an Instruction (or subclass) object, - qargs is a list of Qubit objects, and cargs is a list of Clbit - objects. + QuantumCircuitData: a list-like object containing the tuples for the circuit's data. + + Each tuple is in the format ``(instruction, qargs, cargs)``. + Where instruction is an Instruction (or subclass) object, + qargs is a list of Qubit objects, and cargs is a list of Clbit + objects. """ return QuantumCircuitData(self) @@ -211,8 +224,7 @@ def inverse(self): return inverse_circ def combine(self, rhs): - """ - Append rhs to self if self contains compatible registers. + """Append rhs to self if self contains compatible registers. Two circuits are compatible if they contain the same registers or if they contain different registers with unique names. The @@ -220,6 +232,15 @@ def combine(self, rhs): circuits. Return self + rhs as a new object. + + Args: + rhs (QuantumCircuit): The quantum circuit to append to the right hand side. + + Returns: + QuantumCircuit: Returns a new QuantumCircuit object + + Raises: + QiskitError: if the rhs circuit is not compatible """ # Check registers in LHS are compatible with RHS self._check_compatible_regs(rhs) @@ -240,8 +261,7 @@ def combine(self, rhs): return circuit def extend(self, rhs): - """ - Append rhs to self if self contains compatible registers. + """Append QuantumCircuit to the right hand side if it contains compatible registers. Two circuits are compatible if they contain the same registers or if they contain different registers with unique names. The @@ -249,6 +269,15 @@ def extend(self, rhs): circuits. Modify and return self. + + Args: + rhs (QuantumCircuit): The quantum circuit to append to the right hand side. + + Returns: + QuantumCircuit: Returns this QuantumCircuit object (which has been modified) + + Raises: + QiskitError: if the rhs circuit is not compatible """ # Check registers in LHS are compatible with RHS self._check_compatible_regs(rhs) @@ -510,7 +539,7 @@ def to_instruction(self, parameter_map=None): Returns: Instruction: a composite instruction encapsulating this circuit - (can be decomposed back) + (can be decomposed back) """ from qiskit.converters.circuit_to_instruction import circuit_to_instruction return circuit_to_instruction(self, parameter_map) @@ -981,9 +1010,9 @@ def copy(self, name=None): Args: name (str): name to be given to the copied circuit, if None then the name stays the same + Returns: - QuantumCircuit: a deepcopy of the current circuit, with the name updated if - it was provided + QuantumCircuit: a deepcopy of the current circuit, with the specified name """ cpy = deepcopy(self) if name: diff --git a/qiskit/extensions/quantum_initializer/diag.py b/qiskit/extensions/quantum_initializer/diag.py index 1a1341247d7a..c4e117e57472 100644 --- a/qiskit/extensions/quantum_initializer/diag.py +++ b/qiskit/extensions/quantum_initializer/diag.py @@ -101,27 +101,27 @@ def _extract_rz(phi1, phi2): def diag_gate(self, diag, qubit): - """ - Attach a diagonal gate to a circuit. The decomposition is based on Theorem 7 given in - "Synthesis of Quantum Logic Circuits" by Shende et al. - (https://arxiv.org/pdf/quant-ph/0406176.pdf). - - Args: - diag (list): list of the 2^k diagonal entries (for a diagonal gate on k qubits). - Must contain at least two entries - qubit (QuantumRegister|list): list of k qubits the diagonal is - acting on (the order of the qubits specifies the computational basis in which the - diagonal gate is provided: the first element in diag acts on the state where all - the qubits in q are in the state 0, the second entry acts on the state where all - the qubits q[1],...,q[k-1] are in the state zero and q[0] is in the state 1, - and so on - - Returns: - QuantumCircuit: the diagonal gate is attached to the circuit. - - Raises: - QiskitError: if the list of the diagonal entries or the qubit list is in bad format; - if the number of diagonal entries is not 2^k, where k denotes the number of qubits + """Attach a diagonal gate to a circuit. + + The decomposition is based on Theorem 7 given in "Synthesis of Quantum Logic Circuits" by + Shende et al. (https://arxiv.org/pdf/quant-ph/0406176.pdf). + + Args: + diag (list): list of the 2^k diagonal entries (for a diagonal gate on k qubits). + Must contain at least two entries + qubit (QuantumRegister|list): list of k qubits the diagonal is + acting on (the order of the qubits specifies the computational basis in which the + diagonal gate is provided: the first element in diag acts on the state where all + the qubits in q are in the state 0, the second entry acts on the state where all + the qubits q[1],...,q[k-1] are in the state zero and q[0] is in the state 1, + and so on + + Returns: + QuantumCircuit: the diagonal gate which was attached to the circuit. + + Raises: + QiskitError: if the list of the diagonal entries or the qubit list is in bad format; + if the number of diagonal entries is not 2^k, where k denotes the number of qubits """ if isinstance(qubit, QuantumRegister): diff --git a/qiskit/extensions/quantum_initializer/squ.py b/qiskit/extensions/quantum_initializer/squ.py index 33847a7f6624..bfda0f76bd81 100644 --- a/qiskit/extensions/quantum_initializer/squ.py +++ b/qiskit/extensions/quantum_initializer/squ.py @@ -144,26 +144,27 @@ def _ct(m): def squ(self, u, qubit, mode="ZYZ", up_to_diagonal=False): - """ - Decompose an arbitrary 2*2 unitary into three rotation gates: U=R_zR_yR_z. + """ Decompose an arbitrary 2*2 unitary into three rotation gates :math:`U=R_zR_yR_z`. + Note that the decomposition is up to a global phase shift. + (This is a well known decomposition, which can be found for example in Nielsen and Chuang's book "Quantum computation and quantum information".) - Args: - u (ndarray): 2*2 unitary (given as a (complex) ndarray) - qubit (QuantumRegister|Qubit): the qubit, on which the gate is acting on - mode (string): determines the used decomposition by providing the rotation axes. - The allowed modes are: "ZYZ" (default) - up_to_diagonal (bool): if set to True, the single-qubit unitary is decomposed up to - a diagonal matrix, i.e. a unitary u' is implemented such that there exists a 2*2 - diagonal gate d with u = d.dot(u') - Returns: - QuantumCircuit: the single-qubit unitary (up to a diagonal gate if - up_to_diagonal = True) is attached to the circuit. - - Raises: - QiskitError: if the format is wrong; if the array u is not unitary + Args: + u (ndarray): 2*2 unitary (given as a (complex) ndarray) + qubit (QuantumRegister|Qubit): the qubit, on which the gate is acting on + mode (string): determines the used decomposition by providing the rotation axes. + The allowed modes are: "ZYZ" (default) + up_to_diagonal (bool): if set to True, the single-qubit unitary is decomposed up to + a diagonal matrix, i.e. a unitary u' is implemented such that there exists a 2*2 + diagonal gate d with u = d.dot(u') + Returns: + QuantumCircuit: the single-qubit unitary (up to a diagonal gate if + up_to_diagonal = True) is attached to the circuit. + + Raises: + QiskitError: if the format is wrong; if the array u is not unitary """ if isinstance(qubit, QuantumRegister): diff --git a/qiskit/extensions/quantum_initializer/ucg.py b/qiskit/extensions/quantum_initializer/ucg.py index a23b862cdad2..ac3dd16e7b38 100644 --- a/qiskit/extensions/quantum_initializer/ucg.py +++ b/qiskit/extensions/quantum_initializer/ucg.py @@ -262,32 +262,32 @@ def _rz(alpha): def ucg(self, gate_list, q_controls, q_target, up_to_diagonal=False): - """ - Attach a uniformly controlled gates (also called multiplexed gates) to a circuit. + """Attach a uniformly controlled gates (also called multiplexed gates) to a circuit. + The decomposition was introduced by Bergholm et al. in https://arxiv.org/pdf/quant-ph/0410066.pdf. - Args: - gate_list (list[ndarray]): list of two qubit unitaries [U_0,...,U_{2^k-1}], - where each single-qubit unitary U_i is a given as a 2*2 array - q_controls (QuantumRegister|list[(QuantumRegister,int)]): list of k control qubits. - The qubits are ordered according to their significance in the computational basis. - For example if q_controls=[q[1],q[2]] (with q = QuantumRegister(2)), - the unitary U_0 is performed if q[1] and q[2] are in the state zero, U_1 is - performed if q[2] is in the state zero and q[1] is in the state one, and so on - q_target (QuantumRegister|(QuantumRegister,int)): target qubit, where we act on with - the single-qubit gates. - up_to_diagonal (bool): If set to True, the uniformly controlled gate is decomposed up - to a diagonal gate, i.e. a unitary u' is implemented such that there exists a - diagonal gate d with u = d.dot(u'), where the unitary u describes the uniformly - controlled gate - - Returns: - QuantumCircuit: the uniformly controlled gate is attached to the circuit. - - Raises: - QiskitError: if the list number of control qubits does not correspond to the provided - number of single-qubit unitaries; if an input is of the wrong type + Args: + gate_list (list[ndarray]): list of two qubit unitaries [U_0,...,U_{2^k-1}], + where each single-qubit unitary U_i is a given as a 2*2 array + q_controls (QuantumRegister|list[(QuantumRegister,int)]): list of k control qubits. + The qubits are ordered according to their significance in the computational basis. + For example if q_controls=[q[1],q[2]] (with q = QuantumRegister(2)), + the unitary U_0 is performed if q[1] and q[2] are in the state zero, U_1 is + performed if q[2] is in the state zero and q[1] is in the state one, and so on + q_target (QuantumRegister|(QuantumRegister,int)): target qubit, where we act on with + the single-qubit gates. + up_to_diagonal (bool): If set to True, the uniformly controlled gate is decomposed up + to a diagonal gate, i.e. a unitary u' is implemented such that there exists a + diagonal gate d with u = d.dot(u'), where the unitary u describes the uniformly + controlled gate + + Returns: + QuantumCircuit: the uniformly controlled gate is attached to the circuit. + + Raises: + QiskitError: if the list number of control qubits does not correspond to the provided + number of single-qubit unitaries; if an input is of the wrong type """ if isinstance(q_controls, QuantumRegister): diff --git a/qiskit/extensions/quantum_initializer/ucx.py b/qiskit/extensions/quantum_initializer/ucx.py index 94e76b8041e3..3dbc3a12eae3 100644 --- a/qiskit/extensions/quantum_initializer/ucx.py +++ b/qiskit/extensions/quantum_initializer/ucx.py @@ -46,27 +46,27 @@ def __init__(self, angle_list): def ucx(self, angle_list, q_controls, q_target): - """ - Attach a uniformly controlled (also called multiplexed) Rx rotation gate to a circuit. + """Attach a uniformly controlled (also called multiplexed) Rx rotation gate to a circuit. + The decomposition is base on https://arxiv.org/pdf/quant-ph/0406176.pdf by Shende et al. - Args: - angle_list (list): list of (real) rotation angles [a_0,...,a_{2^k-1}] - q_controls (QuantumRegister|list): list of k control qubits - (or empty list if no controls). The control qubits are ordered according to their - significance in increasing order: For example if q_controls=[q[1],q[2]] - (with q = QuantumRegister(2)), the rotation Rx(a_0)is performed if q[1] and q[2] - are in the state zero, the rotation Rx(a_1) is performed if q[1] is in the state - one and q[2] is in the state zero, and so on - q_target (QuantumRegister|Qubit): target qubit, where we act on with - the single-qubit rotation gates - - Returns: - QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. - - Raises: - QiskitError: if the list number of control qubits does not correspond to the provided - number of single-qubit unitaries; if an input is of the wrong type + Args: + angle_list (list): list of (real) rotation angles [a_0,...,a_{2^k-1}] + q_controls (QuantumRegister|list): list of k control qubits + (or empty list if no controls). The control qubits are ordered according to their + significance in increasing order: For example if q_controls=[q[1],q[2]] + (with q = QuantumRegister(2)), the rotation Rx(a_0)is performed if q[1] and q[2] + are in the state zero, the rotation Rx(a_1) is performed if q[1] is in the state + one and q[2] is in the state zero, and so on + q_target (QuantumRegister|Qubit): target qubit, where we act on with + the single-qubit rotation gates + + Returns: + QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. + + Raises: + QiskitError: if the list number of control qubits does not correspond to the provided + number of single-qubit unitaries; if an input is of the wrong type """ if isinstance(q_controls, QuantumRegister): diff --git a/qiskit/extensions/quantum_initializer/ucy.py b/qiskit/extensions/quantum_initializer/ucy.py index eeaf7e5fff6b..1c3546cd3675 100644 --- a/qiskit/extensions/quantum_initializer/ucy.py +++ b/qiskit/extensions/quantum_initializer/ucy.py @@ -43,27 +43,27 @@ def __init__(self, angle_list): def ucy(self, angle_list, q_controls, q_target): - """ - Attach a uniformly controlled (also called multiplexed) Ry rotation gate to a circuit. + """Attach a uniformly controlled (also called multiplexed) Ry rotation gate to a circuit. + The decomposition is base on https://arxiv.org/pdf/quant-ph/0406176.pdf by Shende et al. - Args: - angle_list (list[numbers): list of (real) rotation angles [a_0,...,a_{2^k-1}] - q_controls (QuantumRegister|list[Qubit]): list of k control qubits - (or empty list if no controls). The control qubits are ordered according to their - significance in increasing order: For example if q_controls=[q[1],q[2]] - (with q = QuantumRegister(2)), the rotation Ry(a_0)is performed if q[1] and q[2] - are in the state zero, the rotation Ry(a_1) is performed if q[1] is in the state - one and q[2] is in the state zero, and so on - q_target (QuantumRegister|Qubit): target qubit, where we act on with - the single-qubit rotation gates - - Returns: - QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. - - Raises: - QiskitError: if the list number of control qubits does not correspond to the provided - number of single-qubit unitaries; if an input is of the wrong type + Args: + angle_list (list[numbers): list of (real) rotation angles [a_0,...,a_{2^k-1}] + q_controls (QuantumRegister|list[Qubit]): list of k control qubits + (or empty list if no controls). The control qubits are ordered according to their + significance in increasing order: For example if q_controls=[q[1],q[2]] + (with q = QuantumRegister(2)), the rotation Ry(a_0)is performed if q[1] and q[2] + are in the state zero, the rotation Ry(a_1) is performed if q[1] is in the state + one and q[2] is in the state zero, and so on + q_target (QuantumRegister|Qubit): target qubit, where we act on with + the single-qubit rotation gates + + Returns: + QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. + + Raises: + QiskitError: if the list number of control qubits does not correspond to the provided + number of single-qubit unitaries; if an input is of the wrong type """ if isinstance(q_controls, QuantumRegister): diff --git a/qiskit/extensions/quantum_initializer/ucz.py b/qiskit/extensions/quantum_initializer/ucz.py index 1112eb561bd8..132ef2967f43 100644 --- a/qiskit/extensions/quantum_initializer/ucz.py +++ b/qiskit/extensions/quantum_initializer/ucz.py @@ -43,27 +43,28 @@ def __init__(self, angle_list): def ucz(self, angle_list, q_controls, q_target): - """ - Attach a uniformly controlled (also called multiplexed gates) Rz rotation gate to a circuit. + """Attach a uniformly controlled (also called multiplexed gates) Rz rotation gate to a circuit. + The decomposition is base on https://arxiv.org/pdf/quant-ph/0406176.pdf by Shende et al. - Args: - angle_list (list[numbers): list of (real) rotation angles [a_0,...,a_{2^k-1}] - q_controls (QuantumRegister|list[Qubit]): list of k control qubits - (or empty list if no controls). The control qubits are ordered according to their - significance in increasing order: For example if q_controls=[q[1],q[2]] - (with q = QuantumRegister(2)), the rotation Rz(a_0)is performed if q[1] and q[2] - are in the state zero, the rotation Rz(a_1) is performed if q[1] is in - the state one and q[2] is in the state zero, and so on - q_target (QuantumRegister|Qubit): target qubit, where we act on with - the single-qubit rotation gates - - Returns: - QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. - - Raises: - QiskitError: if the list number of control qubits does not correspond to the provided - number of single-qubit unitaries; if an input is of the wrong type + Args: + angle_list (list[numbers): list of (real) rotation angles [a_0,...,a_{2^k-1}] + q_controls (QuantumRegister|list[Qubit]): list of k control qubits + (or empty list if no controls). The control qubits are ordered according to their + significance in increasing order: For example if q_controls=[q[1],q[2]] + (with q = QuantumRegister(2)), the rotation Rz(a_0)is performed if q[1] and q[2] + are in the state zero, the rotation Rz(a_1) is performed if q[1] is in + the state one and q[2] is in the state zero, and so on + q_target (QuantumRegister|Qubit): target qubit, where we act on with + the single-qubit rotation gates + + Returns: + QuantumCircuit: the uniformly controlled rotation gate is attached to the circuit. + + Raises: + QiskitError: if the list number of control qubits does not correspond to + the provided number of single-qubit unitaries; if an input is of + the wrong type """ if isinstance(q_controls, QuantumRegister): From 5101acbb13ab03eb2c057c528231195490e3480e Mon Sep 17 00:00:00 2001 From: Desiree Vogt-Lee Date: Wed, 16 Oct 2019 00:42:55 +1000 Subject: [PATCH 29/37] average_data can be imported from qiskit.quantum_info.analysis (#3159) * made it easier to import average_data * changed average_data import * Update __init__.py * Update __init__.py --- qiskit/quantum_info/analysis/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qiskit/quantum_info/analysis/__init__.py b/qiskit/quantum_info/analysis/__init__.py index 0bfd608334f2..f1b36f012d29 100644 --- a/qiskit/quantum_info/analysis/__init__.py +++ b/qiskit/quantum_info/analysis/__init__.py @@ -13,3 +13,4 @@ # that they have been altered from the originals. """Module for functions for post processing results.""" +from .average import average_data From 845bf805def4064d477cf8f6b39af4a16616951e Mon Sep 17 00:00:00 2001 From: "Christopher J. Wood" Date: Wed, 16 Oct 2019 00:09:43 +0800 Subject: [PATCH 30/37] Add support for partial results to Result class (#3217) * allow accessing partial results * add release doc --- qiskit/result/result.py | 40 ++++++++++--------- .../partialresults-44d0ce37b1c09413.yaml | 8 ++++ 2 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 releasenotes/notes/partialresults-44d0ce37b1c09413.yaml diff --git a/qiskit/result/result.py b/qiskit/result/result.py index dc4bf52a5b9f..58395cee9396 100644 --- a/qiskit/result/result.py +++ b/qiskit/result/result.py @@ -231,7 +231,7 @@ def _get_experiment(self, key=None): Args: key (str or QuantumCircuit or Schedule or int or None): the index of the - experiment, as specified by ``get_data()``. + experiment, as specified by ``data()``. Returns: ExperimentResult: the results for an experiment. @@ -240,32 +240,34 @@ def _get_experiment(self, key=None): QiskitError: if there is no data for the experiment, or an unhandled error occurred while fetching the data. """ - if not self.success: - raise QiskitError(getattr(self, 'status', - 'Result was not successful')) - # Automatically return the first result if no key was provided. if key is None: if len(self.results) != 1: raise QiskitError( 'You have to select a circuit or schedule when there is more than ' 'one available') - key = 0 - # Key is an integer: return result by index. - if isinstance(key, int): - return self.results[key] - # Key is a QuantumCircuit/Schedule or str: retrieve result by name. if isinstance(key, (QuantumCircuit, Schedule)): key = key.name - - try: - # Look into `result[x].header.name` for the names. - return next(result for result in self.results - if getattr(getattr(result, 'header', None), - 'name', '') == key) - except StopIteration: - raise QiskitError('Data for experiment "%s" could not be found.' % - key) + # Key is an integer: return result by index. + if isinstance(key, int): + exp = self.results[key] + else: + try: + # Look into `result[x].header.name` for the names. + exp = next(result for result in self.results + if getattr(getattr(result, 'header', None), + 'name', '') == key) + except StopIteration: + raise QiskitError('Data for experiment "%s" could not be found.' % + key) + + # Check that the retrieved experiment was successful + if getattr(exp, 'success', False): + return exp + # If unsuccessful check experiment and result status and raise exception + result_status = getattr(self, 'status', 'Result was not successful') + exp_status = getattr(exp, 'status', 'Experiment was not successful') + raise QiskitError(result_status, ", ", exp_status) diff --git a/releasenotes/notes/partialresults-44d0ce37b1c09413.yaml b/releasenotes/notes/partialresults-44d0ce37b1c09413.yaml new file mode 100644 index 000000000000..4609e2eb4abe --- /dev/null +++ b/releasenotes/notes/partialresults-44d0ce37b1c09413.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Allows the Result class to return partial results. If a valid result schema + is loaded that contains some experiments which succeeded and some which + failed, this allows accessing the data from experiments that succeeded, + while raising an exception for experiments that failed and displaying the + appropriate error message for the failed results. From f105cee11126662d1fbf1723baff45704fcbdcfb Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Tue, 15 Oct 2019 14:56:42 -0400 Subject: [PATCH 31/37] Update __qiskit_version__ call time (#3266) There was a race condition for the setting of the __qiskit_version__ attribute for the provider packages. Since the provider packages use a separate pkutil namespace package the qiskit.providers package needs to be imported for any provider package versions to be initialized for pkgutil to load the additional packages. However, because of the import path for python qiskit.version would often be loaded prior to that. This caused the package versions for aer and ibmq to be missing from qiskit.__qiskit_version__, since it just does an assignemnt from qiskit.version's module attribute. To workaround this issue we need to make sure that _get_qiskit_versions() is always called after qiskit.providers is loaded. This commit does this by changing when we run the function to be in the qiskit.__init__ module but after the Aer and IBMQ aliases are set up. This ensures that we've loaded everything when we generate the version dict. --- qiskit/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qiskit/__init__.py b/qiskit/__init__.py index f690415eaafa..ace8712a6e23 100644 --- a/qiskit/__init__.py +++ b/qiskit/__init__.py @@ -64,4 +64,7 @@ RuntimeWarning) from .version import __version__ -from .version import __qiskit_version__ +from .version import _get_qiskit_versions + + +__qiskit_version__ = _get_qiskit_versions() From 15d3bb212bacf91ebec2b6c4ee8151661219468d Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Tue, 15 Oct 2019 16:45:37 -0400 Subject: [PATCH 32/37] Update pip prior to installing aer (#3267) The new aer packages use manylinux2010, and the randomized testing job is using the sdist instead of the wheel. This commit updates the pip version prior to installing aer to try and get it to install the binary version instead of the source package. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 04f00e8aa37f..e72be6257191 100644 --- a/.travis.yml +++ b/.travis.yml @@ -107,6 +107,7 @@ jobs: directories: - .hypothesis script: + - pip install -U pip - python setup.py build_ext --inplace - pip install "qiskit-aer" - make test_randomized From f45b74ba719ca83a232018f09c7b880e9c025a16 Mon Sep 17 00:00:00 2001 From: Ali Javadi-Abhari Date: Wed, 16 Oct 2019 10:05:51 -0400 Subject: [PATCH 33/37] fix tuple->Bit deprecation warning in latex drawer (#3269) --- qiskit/visualization/latex.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/qiskit/visualization/latex.py b/qiskit/visualization/latex.py index c64a250c2c40..b44f10bb03e1 100644 --- a/qiskit/visualization/latex.py +++ b/qiskit/visualization/latex.py @@ -701,11 +701,9 @@ def _build_latex_array(self, aliases=None): elif len(qarglist) > 3: nbits = len(qarglist) - pos_array = [self.img_regs[(qarglist[0].register, - qarglist[0].index)]] + pos_array = [self.img_regs[qarglist[0]]] for i in range(1, nbits): - pos_array.append(self.img_regs[(qarglist[i].register, - qarglist[i].index)]) + pos_array.append(self.img_regs[qarglist[i]]) pos_start = min(pos_array) pos_stop = max(pos_array) self._latex[pos_start][column] = ("\\multigate{%s}{%s}" % From d9be39eed72316555a16921e13c193b0189025de Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 16 Oct 2019 10:38:36 -0400 Subject: [PATCH 34/37] Prepare for the 0.10.0 release (#3262) * Prepare for the 0.10.0 release This commit moves the release notes into a 0.10.0 subdirectory to keep them separate from development notes post-release. It also adds a release note to add the prelude section providing the high level overview of the release. When this merge it should be the commit used to tag the 0.10.0 release. * Actually set twine password for upload * Move new release notes to 0.10 dir * Tweak prelude wording --- azure-pipelines.yml | 8 ++++++++ .../notes/0.10/0.10.0-release-e18d6519d92d8ef3.yaml | 5 +++++ ...-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml | 0 ...y-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml | 0 ...dd-and-remove-final-measurements-bcdd9977eacf8380.yaml | 0 ...uit-data-modification-validation-52f02f955ecf90a1.yaml | 0 .../{ => 0.10}/dense_noise_aware-46489df2439aab05.yaml | 0 .../deprecate-instruction-control-a363a15b3f0f0d72.yaml | 0 .../deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml | 0 .../deprecate_bit_eq_tuple-e751168412b09702.yaml | 0 .../deprecate_unknown_styles-93f84aedd1887c44.yaml | 0 .../initial-ion-trap-support-33686980aa9ec3ae.yaml | 0 .../{ => 0.10}/matplotlib-close-306c5a9ea2d118bf.yaml | 0 .../mock-backend-properties-a369bb6efdbae602.yaml | 0 .../notes/{ => 0.10}/partialresults-44d0ce37b1c09413.yaml | 0 .../{ => 0.10}/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml | 0 .../{ => 0.10}/passmanager_replace-d89e2cc46517d917.yaml | 0 .../remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml | 0 .../remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml | 0 .../{ => 0.10}/rzz-visualization-5ade105ae6cae0eb.yaml | 0 .../{ => 0.10}/schedule-pad-method-a56c952fcfdfbf08.yaml | 0 21 files changed, 13 insertions(+) create mode 100644 releasenotes/notes/0.10/0.10.0-release-e18d6519d92d8ef3.yaml rename releasenotes/notes/{ => 0.10}/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml (100%) rename releasenotes/notes/{ => 0.10}/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml (100%) rename releasenotes/notes/{ => 0.10}/add-methods-to-add-and-remove-final-measurements-bcdd9977eacf8380.yaml (100%) rename releasenotes/notes/{ => 0.10}/circuit-data-modification-validation-52f02f955ecf90a1.yaml (100%) rename releasenotes/notes/{ => 0.10}/dense_noise_aware-46489df2439aab05.yaml (100%) rename releasenotes/notes/{ => 0.10}/deprecate-instruction-control-a363a15b3f0f0d72.yaml (100%) rename releasenotes/notes/{ => 0.10}/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml (100%) rename releasenotes/notes/{ => 0.10}/deprecate_bit_eq_tuple-e751168412b09702.yaml (100%) rename releasenotes/notes/{ => 0.10}/deprecate_unknown_styles-93f84aedd1887c44.yaml (100%) rename releasenotes/notes/{ => 0.10}/initial-ion-trap-support-33686980aa9ec3ae.yaml (100%) rename releasenotes/notes/{ => 0.10}/matplotlib-close-306c5a9ea2d118bf.yaml (100%) rename releasenotes/notes/{ => 0.10}/mock-backend-properties-a369bb6efdbae602.yaml (100%) rename releasenotes/notes/{ => 0.10}/partialresults-44d0ce37b1c09413.yaml (100%) rename releasenotes/notes/{ => 0.10}/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml (100%) rename releasenotes/notes/{ => 0.10}/passmanager_replace-d89e2cc46517d917.yaml (100%) rename releasenotes/notes/{ => 0.10}/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml (100%) rename releasenotes/notes/{ => 0.10}/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml (100%) rename releasenotes/notes/{ => 0.10}/rzz-visualization-5ade105ae6cae0eb.yaml (100%) rename releasenotes/notes/{ => 0.10}/schedule-pad-method-a56c952fcfdfbf08.yaml (100%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e4cf1d20be2e..41f07fdd9303 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -37,6 +37,8 @@ stages: condition: succeededOrFailed() - bash: | twine upload wheelhouse/* + env: + TWINE_PASSWORD: $(TWINE_PASSWORD) - job: 'sdist' pool: {vmImage: 'Ubuntu-16.04'} condition: startsWith(variables['Build.SourceBranch'], 'refs/tags') @@ -54,6 +56,8 @@ stages: condition: succeededOrFailed() - bash: | twine upload dist/* + env: + TWINE_PASSWORD: $(TWINE_PASSWORD) - job: 'macos' condition: startsWith(variables['Build.SourceBranch'], 'refs/tags') pool: {vmImage: 'macOS-10.13'} @@ -75,6 +79,8 @@ stages: condition: succeededOrFailed() - bash: | twine upload wheelhouse/* + env: + TWINE_PASSWORD: $(TWINE_PASSWORD) - job: 'Windows' pool: {vmImage: 'vs2017-win2016'} condition: startsWith(variables['Build.SourceBranch'], 'refs/tags') @@ -103,6 +109,8 @@ stages: condition: succeededOrFailed() - bash: | twine upload wheelhouse\* + env: + TWINE_PASSWORD: $(TWINE_PASSWORD) - stage: 'Lint_and_Tests' condition: not(startsWith(variables['Build.SourceBranch'], 'refs/tags')) jobs: diff --git a/releasenotes/notes/0.10/0.10.0-release-e18d6519d92d8ef3.yaml b/releasenotes/notes/0.10/0.10.0-release-e18d6519d92d8ef3.yaml new file mode 100644 index 000000000000..5b540f8c4727 --- /dev/null +++ b/releasenotes/notes/0.10/0.10.0-release-e18d6519d92d8ef3.yaml @@ -0,0 +1,5 @@ +--- +prelude: > + The 0.10.0 release includes several new features and bug fixes. The biggest + change for this release is the addition of initial support for using + Qiskit with trapped ion trap backends. diff --git a/releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml b/releasenotes/notes/0.10/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml similarity index 100% rename from releasenotes/notes/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml rename to releasenotes/notes/0.10/Instruction-layering-for-circuit-drawing-has-changed-f62ce5aaeb8ce221.yaml diff --git a/releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml b/releasenotes/notes/0.10/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml similarity index 100% rename from releasenotes/notes/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml rename to releasenotes/notes/0.10/add-memory-slots-to-pulse-qobj-exp-header-c21c795d761ab5a3.yaml diff --git a/releasenotes/notes/add-methods-to-add-and-remove-final-measurements-bcdd9977eacf8380.yaml b/releasenotes/notes/0.10/add-methods-to-add-and-remove-final-measurements-bcdd9977eacf8380.yaml similarity index 100% rename from releasenotes/notes/add-methods-to-add-and-remove-final-measurements-bcdd9977eacf8380.yaml rename to releasenotes/notes/0.10/add-methods-to-add-and-remove-final-measurements-bcdd9977eacf8380.yaml diff --git a/releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml b/releasenotes/notes/0.10/circuit-data-modification-validation-52f02f955ecf90a1.yaml similarity index 100% rename from releasenotes/notes/circuit-data-modification-validation-52f02f955ecf90a1.yaml rename to releasenotes/notes/0.10/circuit-data-modification-validation-52f02f955ecf90a1.yaml diff --git a/releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml b/releasenotes/notes/0.10/dense_noise_aware-46489df2439aab05.yaml similarity index 100% rename from releasenotes/notes/dense_noise_aware-46489df2439aab05.yaml rename to releasenotes/notes/0.10/dense_noise_aware-46489df2439aab05.yaml diff --git a/releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml b/releasenotes/notes/0.10/deprecate-instruction-control-a363a15b3f0f0d72.yaml similarity index 100% rename from releasenotes/notes/deprecate-instruction-control-a363a15b3f0f0d72.yaml rename to releasenotes/notes/0.10/deprecate-instruction-control-a363a15b3f0f0d72.yaml diff --git a/releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml b/releasenotes/notes/0.10/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml similarity index 100% rename from releasenotes/notes/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml rename to releasenotes/notes/0.10/deprecate-qasm-ast-node-params-3cc930ea2c677a96.yaml diff --git a/releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml b/releasenotes/notes/0.10/deprecate_bit_eq_tuple-e751168412b09702.yaml similarity index 100% rename from releasenotes/notes/deprecate_bit_eq_tuple-e751168412b09702.yaml rename to releasenotes/notes/0.10/deprecate_bit_eq_tuple-e751168412b09702.yaml diff --git a/releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml b/releasenotes/notes/0.10/deprecate_unknown_styles-93f84aedd1887c44.yaml similarity index 100% rename from releasenotes/notes/deprecate_unknown_styles-93f84aedd1887c44.yaml rename to releasenotes/notes/0.10/deprecate_unknown_styles-93f84aedd1887c44.yaml diff --git a/releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml b/releasenotes/notes/0.10/initial-ion-trap-support-33686980aa9ec3ae.yaml similarity index 100% rename from releasenotes/notes/initial-ion-trap-support-33686980aa9ec3ae.yaml rename to releasenotes/notes/0.10/initial-ion-trap-support-33686980aa9ec3ae.yaml diff --git a/releasenotes/notes/matplotlib-close-306c5a9ea2d118bf.yaml b/releasenotes/notes/0.10/matplotlib-close-306c5a9ea2d118bf.yaml similarity index 100% rename from releasenotes/notes/matplotlib-close-306c5a9ea2d118bf.yaml rename to releasenotes/notes/0.10/matplotlib-close-306c5a9ea2d118bf.yaml diff --git a/releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml b/releasenotes/notes/0.10/mock-backend-properties-a369bb6efdbae602.yaml similarity index 100% rename from releasenotes/notes/mock-backend-properties-a369bb6efdbae602.yaml rename to releasenotes/notes/0.10/mock-backend-properties-a369bb6efdbae602.yaml diff --git a/releasenotes/notes/partialresults-44d0ce37b1c09413.yaml b/releasenotes/notes/0.10/partialresults-44d0ce37b1c09413.yaml similarity index 100% rename from releasenotes/notes/partialresults-44d0ce37b1c09413.yaml rename to releasenotes/notes/0.10/partialresults-44d0ce37b1c09413.yaml diff --git a/releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml b/releasenotes/notes/0.10/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml similarity index 100% rename from releasenotes/notes/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml rename to releasenotes/notes/0.10/pass-mpl-ax-kwarg-069f793f01cd61a7.yaml diff --git a/releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml b/releasenotes/notes/0.10/passmanager_replace-d89e2cc46517d917.yaml similarity index 100% rename from releasenotes/notes/passmanager_replace-d89e2cc46517d917.yaml rename to releasenotes/notes/0.10/passmanager_replace-d89e2cc46517d917.yaml diff --git a/releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml b/releasenotes/notes/0.10/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml similarity index 100% rename from releasenotes/notes/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml rename to releasenotes/notes/0.10/remove-deprecated-device-specs-2d1aeab5f09b5a68.yaml diff --git a/releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml b/releasenotes/notes/0.10/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml similarity index 100% rename from releasenotes/notes/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml rename to releasenotes/notes/0.10/remove-deprecated-schedule-ops-f57b3c2477312cbb.yaml diff --git a/releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml b/releasenotes/notes/0.10/rzz-visualization-5ade105ae6cae0eb.yaml similarity index 100% rename from releasenotes/notes/rzz-visualization-5ade105ae6cae0eb.yaml rename to releasenotes/notes/0.10/rzz-visualization-5ade105ae6cae0eb.yaml diff --git a/releasenotes/notes/schedule-pad-method-a56c952fcfdfbf08.yaml b/releasenotes/notes/0.10/schedule-pad-method-a56c952fcfdfbf08.yaml similarity index 100% rename from releasenotes/notes/schedule-pad-method-a56c952fcfdfbf08.yaml rename to releasenotes/notes/0.10/schedule-pad-method-a56c952fcfdfbf08.yaml From d3778ea1903447c1d5bde7d074c66a972b2775d5 Mon Sep 17 00:00:00 2001 From: Matt-Stypulkoski <50181769+Matt-Stypulkoski@users.noreply.github.com> Date: Wed, 16 Oct 2019 11:06:03 -0400 Subject: [PATCH 35/37] Move barrier_before_final_measurements to 'passes' directory (#3260) * Move barrier_before_final_measurements to passes/ directory * Edit import path of BarrierBeforeFinalMeasurements --- qiskit/transpiler/passes/__init__.py | 2 +- .../passes/{mapping => }/barrier_before_final_measurements.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename qiskit/transpiler/passes/{mapping => }/barrier_before_final_measurements.py (98%) diff --git a/qiskit/transpiler/passes/__init__.py b/qiskit/transpiler/passes/__init__.py index c4d9bdc39612..6125b884061a 100644 --- a/qiskit/transpiler/passes/__init__.py +++ b/qiskit/transpiler/passes/__init__.py @@ -36,10 +36,10 @@ from .remove_reset_in_zero_state import RemoveResetInZeroState from .collect_2q_blocks import Collect2qBlocks from .consolidate_blocks import ConsolidateBlocks +from .barrier_before_final_measurements import BarrierBeforeFinalMeasurements from .mapping.full_ancilla_allocation import FullAncillaAllocation from .mapping.enlarge_with_ancilla import EnlargeWithAncilla from .mapping.apply_layout import ApplyLayout -from .mapping.barrier_before_final_measurements import BarrierBeforeFinalMeasurements from .mapping.check_map import CheckMap from .mapping.check_cx_direction import CheckCXDirection from .mapping.cx_direction import CXDirection diff --git a/qiskit/transpiler/passes/mapping/barrier_before_final_measurements.py b/qiskit/transpiler/passes/barrier_before_final_measurements.py similarity index 98% rename from qiskit/transpiler/passes/mapping/barrier_before_final_measurements.py rename to qiskit/transpiler/passes/barrier_before_final_measurements.py index f5864f856b65..cf0cf51a3687 100644 --- a/qiskit/transpiler/passes/mapping/barrier_before_final_measurements.py +++ b/qiskit/transpiler/passes/barrier_before_final_measurements.py @@ -23,7 +23,7 @@ from qiskit.extensions.standard.barrier import Barrier from qiskit.transpiler.basepasses import TransformationPass from qiskit.dagcircuit import DAGCircuit -from ..merge_adjacent_barriers import MergeAdjacentBarriers +from .merge_adjacent_barriers import MergeAdjacentBarriers class BarrierBeforeFinalMeasurements(TransformationPass): From 0727d6092208a0532ac38558620096d5c5344216 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 16 Oct 2019 12:11:34 -0400 Subject: [PATCH 36/37] Bump version string post release (#3271) Now that qiskit-terra 0.10.0 is out the door we should bump the version string on master to show the source version we're installing is newer than what's been released. --- qiskit/VERSION.txt | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt index 78bc1abd14f2..d9df1bbc0c7b 100644 --- a/qiskit/VERSION.txt +++ b/qiskit/VERSION.txt @@ -1 +1 @@ -0.10.0 +0.11.0 diff --git a/setup.py b/setup.py index d88b19d560b9..4233737731e1 100755 --- a/setup.py +++ b/setup.py @@ -70,7 +70,7 @@ setup( name="qiskit-terra", - version="0.10.0", + version="0.11.0", description="Software for developing quantum computing programs", long_description="""Terra provides the foundations for Qiskit. It allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.""", From 1b3f36d7edcc6d7b2e7ac4f855a2d0e5ee732fa0 Mon Sep 17 00:00:00 2001 From: Kevin Krsulich Date: Wed, 16 Oct 2019 16:48:49 -0400 Subject: [PATCH 37/37] Update properties for FakeVigo. (#3272) --- qiskit/test/mock/props_vigo.json | 1 + qiskit/test/mock/props_vigo.py | 62 -------------------------------- 2 files changed, 1 insertion(+), 62 deletions(-) create mode 100644 qiskit/test/mock/props_vigo.json delete mode 100644 qiskit/test/mock/props_vigo.py diff --git a/qiskit/test/mock/props_vigo.json b/qiskit/test/mock/props_vigo.json new file mode 100644 index 000000000000..0209a6723cbf --- /dev/null +++ b/qiskit/test/mock/props_vigo.json @@ -0,0 +1 @@ +{"gates": [{"name": "id_0", "gate": "id", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.00043827201384123726, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [0]}, {"name": "u1_0", "gate": "u1", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 0.0, "unit": "ns"}], "qubits": [0]}, {"name": "u2_0", "gate": "u2", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.00043827201384123726, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [0]}, {"name": "u3_0", "gate": "u3", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0008765440276824745, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 71.11111111111111, "unit": "ns"}], "qubits": [0]}, {"name": "id_1", "gate": "id", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0005034477534859994, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [1]}, {"name": "u1_1", "gate": "u1", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 0.0, "unit": "ns"}], "qubits": [1]}, {"name": "u2_1", "gate": "u2", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0005034477534859994, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [1]}, {"name": "u3_1", "gate": "u3", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0010068955069719987, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 71.11111111111111, "unit": "ns"}], "qubits": [1]}, {"name": "id_2", "gate": "id", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.00034326438431702425, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [2]}, {"name": "u1_2", "gate": "u1", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 0.0, "unit": "ns"}], "qubits": [2]}, {"name": "u2_2", "gate": "u2", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.00034326438431702425, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [2]}, {"name": "u3_2", "gate": "u3", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0006865287686340485, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 71.11111111111111, "unit": "ns"}], "qubits": [2]}, {"name": "id_3", "gate": "id", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0005198394690553291, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [3]}, {"name": "u1_3", "gate": "u1", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 0.0, "unit": "ns"}], "qubits": [3]}, {"name": "u2_3", "gate": "u2", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0005198394690553291, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [3]}, {"name": "u3_3", "gate": "u3", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0010396789381106582, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 71.11111111111111, "unit": "ns"}], "qubits": [3]}, {"name": "id_4", "gate": "id", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0007731054928936085, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [4]}, {"name": "u1_4", "gate": "u1", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 0.0, "unit": "ns"}], "qubits": [4]}, {"name": "u2_4", "gate": "u2", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.0007731054928936085, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 35.55555555555556, "unit": "ns"}], "qubits": [4]}, {"name": "u3_4", "gate": "u3", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:08:27+00:00", "value": 0.001546210985787217, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 71.11111111111111, "unit": "ns"}], "qubits": [4]}, {"name": "cx0_1", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:10:23+00:00", "value": 0.009675280360838395, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 348.4444444444444, "unit": "ns"}], "qubits": [0, 1]}, {"name": "cx1_0", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:10:23+00:00", "value": 0.009675280360838395, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 348.4444444444444, "unit": "ns"}], "qubits": [1, 0]}, {"name": "cx1_2", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:14:23+00:00", "value": 0.006942447193059004, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 227.55555555555554, "unit": "ns"}], "qubits": [1, 2]}, {"name": "cx1_3", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:18:28+00:00", "value": 0.012781729903015071, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 462.2222222222222, "unit": "ns"}], "qubits": [1, 3]}, {"name": "cx2_1", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:14:23+00:00", "value": 0.006942447193059004, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 227.55555555555554, "unit": "ns"}], "qubits": [2, 1]}, {"name": "cx3_1", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:18:28+00:00", "value": 0.012781729903015071, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 462.2222222222222, "unit": "ns"}], "qubits": [3, 1]}, {"name": "cx3_4", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:22:30+00:00", "value": 0.0070733452899932325, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 270.22222222222223, "unit": "ns"}], "qubits": [3, 4]}, {"name": "cx4_3", "gate": "cx", "parameters": [{"name": "gate_error", "date": "2019-10-16T06:22:30+00:00", "value": 0.0070733452899932325, "unit": ""}, {"name": "gate_length", "date": "2019-10-16T06:22:30+00:00", "value": 270.22222222222223, "unit": "ns"}], "qubits": [4, 3]}], "backend_name": "ibmq_vigo", "backend_version": "1.0.1", "last_update_date": "2019-10-16T06:22:30+00:00", "general": [], "qubits": [[{"name": "T1", "date": "2019-10-16T06:06:08+00:00", "value": 70.68917259689157, "unit": "\u00b5s"}, {"name": "T2", "date": "2019-08-09T16:59:15+00:00", "value": 18.38638524492989, "unit": "\u00b5s"}, {"name": "frequency", "date": "2019-10-16T06:22:30+00:00", "value": 4.79596103128903, "unit": "GHz"}, {"name": "readout_error", "date": "2019-10-16T06:05:50+00:00", "value": 0.07899999999999996, "unit": ""}, {"name": "prob_meas0_prep1", "date": "2019-10-16T06:05:50+00:00", "value": 0.06399999999999995, "unit": ""}, {"name": "prob_meas1_prep0", "date": "2019-10-16T06:05:50+00:00", "value": 0.094, "unit": ""}], [{"name": "T1", "date": "2019-10-16T06:06:08+00:00", "value": 98.60468683197823, "unit": "\u00b5s"}, {"name": "T2", "date": "2019-10-16T06:07:38+00:00", "value": 134.22307255375856, "unit": "\u00b5s"}, {"name": "frequency", "date": "2019-10-16T06:22:30+00:00", "value": 4.940048118160465, "unit": "GHz"}, {"name": "readout_error", "date": "2019-10-16T06:05:50+00:00", "value": 0.013000000000000012, "unit": ""}, {"name": "prob_meas0_prep1", "date": "2019-10-16T06:05:50+00:00", "value": 0.022, "unit": ""}, {"name": "prob_meas1_prep0", "date": "2019-10-16T06:05:50+00:00", "value": 0.0040000000000000036, "unit": ""}], [{"name": "T1", "date": "2019-10-16T06:06:08+00:00", "value": 138.11865391954476, "unit": "\u00b5s"}, {"name": "T2", "date": "2019-10-15T06:08:31+00:00", "value": 108.00879361397641, "unit": "\u00b5s"}, {"name": "frequency", "date": "2019-10-16T06:22:30+00:00", "value": 4.833249502714023, "unit": "GHz"}, {"name": "readout_error", "date": "2019-10-16T06:05:50+00:00", "value": 0.017000000000000015, "unit": ""}, {"name": "prob_meas0_prep1", "date": "2019-10-16T06:05:50+00:00", "value": 0.02200000000000002, "unit": ""}, {"name": "prob_meas1_prep0", "date": "2019-10-16T06:05:50+00:00", "value": 0.012, "unit": ""}], [{"name": "T1", "date": "2019-10-16T06:06:08+00:00", "value": 65.73158590716808, "unit": "\u00b5s"}, {"name": "T2", "date": "2019-10-16T06:06:59+00:00", "value": 71.33222205581698, "unit": "\u00b5s"}, {"name": "frequency", "date": "2019-10-16T06:22:30+00:00", "value": 4.807990365982154, "unit": "GHz"}, {"name": "readout_error", "date": "2019-10-16T06:05:50+00:00", "value": 0.019000000000000017, "unit": ""}, {"name": "prob_meas0_prep1", "date": "2019-10-16T06:05:50+00:00", "value": 0.028000000000000025, "unit": ""}, {"name": "prob_meas1_prep0", "date": "2019-10-16T06:05:50+00:00", "value": 0.01, "unit": ""}], [{"name": "T1", "date": "2019-10-16T06:06:08+00:00", "value": 121.30447979603545, "unit": "\u00b5s"}, {"name": "T2", "date": "2019-10-15T06:09:21+00:00", "value": 48.84570520106248, "unit": "\u00b5s"}, {"name": "frequency", "date": "2019-10-16T06:22:30+00:00", "value": 4.749898910235787, "unit": "GHz"}, {"name": "readout_error", "date": "2019-10-16T06:05:50+00:00", "value": 0.020000000000000018, "unit": ""}, {"name": "prob_meas0_prep1", "date": "2019-10-16T06:05:50+00:00", "value": 0.03, "unit": ""}, {"name": "prob_meas1_prep0", "date": "2019-10-16T06:05:50+00:00", "value": 0.010000000000000009, "unit": ""}]]} \ No newline at end of file diff --git a/qiskit/test/mock/props_vigo.py b/qiskit/test/mock/props_vigo.py deleted file mode 100644 index 26dd752fc6cf..000000000000 --- a/qiskit/test/mock/props_vigo.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- - -# This code is part of Qiskit. -# -# (C) Copyright IBM 2019. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -""" -Fake Vigo device (5 qubit). -""" - -import os -import json - -from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, - BackendProperties) -from .fake_backend import FakeBackend - - -class FakeVigo(FakeBackend): - """A fake 5 qubit backend.""" - - def __init__(self): - """ - 0 ↔ 1 ↔ 3 ↔ 4 - ↕ - 2 - """ - cmap = [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 4], [4, 3]] - - configuration = QasmBackendConfiguration( - backend_name='fake_vigo', - backend_version='0.0.0', - n_qubits=5, - basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], - simulator=False, - local=True, - conditional=False, - open_pulse=False, - memory=False, - max_shots=65536, - gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], - coupling_map=cmap, - ) - - super().__init__(configuration) - - def properties(self): - """Returns a snapshot of device properties as recorded on 8/30/19. - """ - dirname = os.path.dirname(__file__) - filename = "props_vigo.json" - with open(os.path.join(dirname, filename), "r") as f_prop: - props = json.load(f_prop) - return BackendProperties.from_dict(props)