diff --git a/azure-quantum/azure/quantum/argument_types/__init__.py b/azure-quantum/azure/quantum/argument_types/__init__.py index dc36280cc..b044783f8 100644 --- a/azure-quantum/azure/quantum/argument_types/__init__.py +++ b/azure-quantum/azure/quantum/argument_types/__init__.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. ## -"""Defines argument types for Microsoft Estimator""" +"""Defines argument types for QIR""" from .types import EmptyArray, Pauli, Range, Result diff --git a/azure-quantum/azure/quantum/qiskit/backends/__init__.py b/azure-quantum/azure/quantum/qiskit/backends/__init__.py index 7b200550a..c401ba374 100644 --- a/azure-quantum/azure/quantum/qiskit/backends/__init__.py +++ b/azure-quantum/azure/quantum/qiskit/backends/__init__.py @@ -37,11 +37,6 @@ QCIQPUBackend, ) -from azure.quantum.qiskit.backends.microsoft import ( - MicrosoftBackend, - MicrosoftResourceEstimationBackend, -) - from .backend import AzureBackendBase __all__ = [ diff --git a/azure-quantum/azure/quantum/qiskit/backends/microsoft.py b/azure-quantum/azure/quantum/qiskit/backends/microsoft.py deleted file mode 100644 index 7daaae415..000000000 --- a/azure-quantum/azure/quantum/qiskit/backends/microsoft.py +++ /dev/null @@ -1,149 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -## - -from typing import TYPE_CHECKING, Any, Dict, List, Union -from azure.quantum.version import __version__ -from qiskit import QuantumCircuit -from abc import abstractmethod -from .backend import AzureQirBackend, QIR_BASIS_GATES - -from qiskit.providers.models import BackendConfiguration -from qiskit.providers import Options, Provider -from qsharp import TargetProfile -from qsharp.interop.qiskit import ResourceEstimatorBackend -import pyqir as pyqir - -if TYPE_CHECKING: - from azure.quantum.qiskit import AzureQuantumProvider - -import logging - -logger = logging.getLogger(__name__) - -__all__ = ["MicrosoftBackend", "MicrosoftResourceEstimationBackend"] - - -class MicrosoftBackend(AzureQirBackend): - """Base class for interfacing with a Microsoft backend in Azure Quantum""" - - @abstractmethod - def __init__( - self, configuration: BackendConfiguration, provider: Provider = None, **fields - ): - super().__init__(configuration, provider, **fields) - - @classmethod - def _default_options(cls): - return Options(target_profile=TargetProfile.Adaptive_RI) - - def _azure_config(self) -> Dict[str, str]: - config = super()._azure_config() - config.update( - { - "provider_id": "microsoft-qc", - "output_data_format": "microsoft.resource-estimates.v1", - } - ) - return config - - def _translate_input( - self, - circuits: Union[QuantumCircuit, List[QuantumCircuit]], - input_params: Dict[str, Any], - ) -> bytes: - """Translates the input values to the QIR expected by the Backend.""" - # All the logic is in the base class, but we need to override - # this method to ensure that the bitcode QIR format is used for RE. - - # normal translation is to QIR text format in utf-8 encoded bytes - ir_byte_str = super()._translate_input(circuits, input_params) - # decode the utf-8 encoded bytes to a string - ir_str = ir_byte_str.decode('utf-8') - # convert the QIR text format to QIR bitcode format - module = pyqir.Module.from_ir(pyqir.Context(), ir_str) - return module.bitcode - - def _generate_qir( - self, circuits: List[QuantumCircuit], target_profile: TargetProfile, **kwargs - ) -> pyqir.Module: - if len(circuits) == 0: - raise ValueError("No QuantumCircuits provided") - - name = "circuits" - if isinstance(circuits, QuantumCircuit): - name = circuits.name - circuits = [circuits] - elif isinstance(circuits, list): - for value in circuits: - if not isinstance(value, QuantumCircuit): - raise ValueError( - "Input must be Union[QuantumCircuit, List[QuantumCircuit]]" - ) - else: - raise ValueError( - "Input must be Union[QuantumCircuit, List[QuantumCircuit]]" - ) - - skip_transpilation = kwargs.pop("skip_transpilation", False) - backend = ResourceEstimatorBackend( - skip_transpilation=skip_transpilation, **kwargs - ) - context = pyqir.Context() - llvm_module = pyqir.qir_module(context, name) - for circuit in circuits: - qir_str = backend.qir(circuit, target_profile=target_profile) - module = pyqir.Module.from_ir(context, qir_str) - llvm_module.link(module) - - err = llvm_module.verify() - if err is not None: - raise Exception(err) - - return llvm_module - - -class MicrosoftResourceEstimationBackend(MicrosoftBackend): - """Backend class for interfacing with the resource estimator target""" - - backend_names = ("microsoft.estimator",) - - @classmethod - def _default_options(cls): - return Options( - target_profile=TargetProfile.Adaptive_RI, - errorBudget=1e-3, - qubitParams={"name": "qubit_gate_ns_e3"}, - qecScheme={"name": "surface_code"} - ) - - def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs): - """Constructor for class to interface with the resource estimator target""" - default_config = BackendConfiguration.from_dict( - { - "backend_name": name, - "backend_version": __version__, - "simulator": True, - "local": False, - "coupling_map": None, - "description": "Resource estimator on Azure Quantum", - "basis_gates": QIR_BASIS_GATES, - "memory": False, - "n_qubits": 0xFFFFFFFFFFFFFFFF, # NOTE: maximum 64-bit unsigned value - "conditional": True, - "max_shots": 1, - "max_experiments": 1, - "open_pulse": False, - "gates": [ - {"name": "TODO", "parameters": [], "qasm_def": "TODO"} - ], # NOTE: copied from other backends - "azure": self._azure_config(), - "is_default": True, - } - ) - logger.info("Initializing MicrosoftResourceEstimationBackend") - configuration: BackendConfiguration = kwargs.pop( - "configuration", default_config - ) - super().__init__(configuration=configuration, provider=provider, **kwargs) diff --git a/azure-quantum/azure/quantum/qiskit/job.py b/azure-quantum/azure/quantum/qiskit/job.py index 8953b62df..9c67328d1 100644 --- a/azure-quantum/azure/quantum/qiskit/job.py +++ b/azure-quantum/azure/quantum/qiskit/job.py @@ -19,7 +19,6 @@ import json import re from azure.quantum import Job -from azure.quantum.qiskit.results.resource_estimator import make_estimator_result import logging logger = logging.getLogger(__name__) @@ -38,7 +37,6 @@ MICROSOFT_OUTPUT_DATA_FORMAT_V2 = "microsoft.quantum-results.v2" IONQ_OUTPUT_DATA_FORMAT = "ionq.quantum-results.v1" QUANTINUUM_OUTPUT_DATA_FORMAT = "honeywell.quantum-results.v1" -RESOURCE_ESTIMATOR_OUTPUT_DATA_FORMAT = "microsoft.resource-estimates.v1" class AzureQuantumJob(JobV1): def __init__( @@ -96,10 +94,7 @@ def result(self, timeout=None, sampler_seed=None): "error_data" : None if self._azure_job.details.error_data is None else self._azure_job.details.error_data.as_dict() } - if self._azure_job.details.output_data_format == RESOURCE_ESTIMATOR_OUTPUT_DATA_FORMAT: - return make_estimator_result(result_dict) - else: - return Result.from_dict(result_dict) + return Result.from_dict(result_dict) def cancel(self): """Attempt to cancel the job.""" diff --git a/azure-quantum/azure/quantum/qiskit/results/__init__.py b/azure-quantum/azure/quantum/qiskit/results/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/azure-quantum/azure/quantum/qiskit/results/resource_estimator.py b/azure-quantum/azure/quantum/qiskit/results/resource_estimator.py deleted file mode 100644 index cb1eaf43e..000000000 --- a/azure-quantum/azure/quantum/qiskit/results/resource_estimator.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/env python -# -*- coding: utf-8 -*- -## -# resource_estimator.py: Qiskit result for microsoft.estimator target. -## -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. -## -from azure.quantum.target.microsoft import MicrosoftEstimatorResult - - -def make_estimator_result(data): - if not data["success"]: - error_data = data["error_data"] - message = "Cannot retrieve results as job execution failed " \ - f"({error_data['code']}: {error_data['message']})" - - raise RuntimeError(message) - - results = data["results"] - if len(results) == 1: - data = results[0]['data'] - return MicrosoftEstimatorResult(data) - else: - raise ValueError("Expected Qiskit results for RE be of length 1") diff --git a/azure-quantum/azure/quantum/target/microsoft/__init__.py b/azure-quantum/azure/quantum/target/microsoft/__init__.py deleted file mode 100644 index 0390a4c7c..000000000 --- a/azure-quantum/azure/quantum/target/microsoft/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. -## - -"""Defines classes for interacting with Microsoft Estimator""" - -__all__ = ["ErrorBudgetPartition", "MicrosoftEstimator", - "MicrosoftEstimatorJob", "MicrosoftEstimatorResult", - "MicrosoftEstimatorParams", "QECScheme", "QubitParams"] - -from .job import MicrosoftEstimatorJob -from .result import MicrosoftEstimatorResult -from .target import ErrorBudgetPartition, MicrosoftEstimator, \ - MicrosoftEstimatorParams, QECScheme, QubitParams diff --git a/azure-quantum/azure/quantum/target/microsoft/job.py b/azure-quantum/azure/quantum/target/microsoft/job.py deleted file mode 100644 index 9f40d64f7..000000000 --- a/azure-quantum/azure/quantum/target/microsoft/job.py +++ /dev/null @@ -1,35 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. -## -from ... import Job -from ...job.base_job import DEFAULT_TIMEOUT -from ..._client.models import JobDetails -from .result import MicrosoftEstimatorResult - -class MicrosoftEstimatorJob(Job): - """ - A dedicated job class for jobs from the microsoft.estimator target. - """ - - def __init__(self, workspace, job_details: JobDetails, **kwargs): - super().__init__(workspace, job_details, **kwargs) - - def get_results(self, timeout_secs: float = DEFAULT_TIMEOUT) -> MicrosoftEstimatorResult: - """ - Get estimation result. - - :param timeout_secs: Timeout in seconds, defaults to 300 sec. - :type timeout_secs: float - :return: Estimation result - :rtype: MicrosoftEstimatorResult - """ - try: - results = super().get_results(timeout_secs) - return MicrosoftEstimatorResult(results) - except RuntimeError: - error_obj = self.details.error_data - message = "Cannot retrieve results as job execution failed " \ - f"({error_obj.code}: {error_obj.message})" - raise RuntimeError(message) - diff --git a/azure-quantum/azure/quantum/target/microsoft/result.py b/azure-quantum/azure/quantum/target/microsoft/result.py deleted file mode 100644 index fe54f2f50..000000000 --- a/azure-quantum/azure/quantum/target/microsoft/result.py +++ /dev/null @@ -1,497 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. -## -__all__ = ['MicrosoftEstimatorResult'] - -from typing import Any, Dict, List, Optional, Union - -import json -import markdown - - -class HTMLWrapper: - """ - Simple HTML wrapper to expose _repr_html_ for Jupyter clients. - """ - def __init__(self, content: str): - self.content = content - - def _repr_html_(self): - return self.content - -class MicrosoftEstimatorResult(dict): - """ - Microsoft Resource Estimator result. - - Job results from the `microsoft.estimator` target are represented by - instances of this class. The class represents simple resource estimation - results as well as batching resource estimation results. The latter can - be indexed by an integer index to access an individual result from the - batching result. - """ - MAX_DEFAULT_ITEMS_IN_TABLE = 5 - - def __init__(self, data: Union[Dict, List]): - self._data = data - - if isinstance(data, dict): - super().__init__(data) - - self._is_simple = True - if MicrosoftEstimatorResult._is_succeeded(self): - self._repr = self._item_result_table() - self.summary = HTMLWrapper(self._item_result_summary_table()) - self.diagram = EstimatorResultDiagram(self.data().copy()) - - elif isinstance(data, list): - super().__init__({idx: MicrosoftEstimatorResult(item_data) - for idx, item_data in enumerate(data)}) - - self._data = data - self._is_simple = False - num_items = len(data) - self._repr = "" - if num_items > self.MAX_DEFAULT_ITEMS_IN_TABLE: - self._repr += "

Info: The overview table is " \ - "cut off after " \ - f"{self.MAX_DEFAULT_ITEMS_IN_TABLE} items. If " \ - "you want to see all items, suffix the result " \ - "variable with [:]

" - num_items = self.MAX_DEFAULT_ITEMS_IN_TABLE - self._repr += self._batch_result_table(range(num_items)) - - # Add plot function for batching jobs - self.plot = self._plot - self.summary_data_frame = self._summary_data_frame - - def _is_succeeded(self): - return 'status' in self and self['status'] == "success" - - def data(self, idx: Optional[int] = None) -> Any: - """ - Returns raw data of the result object. - - In case of a batching job, you can pass an index to access a specific - item. - """ - if idx is None: - return self._data - elif not self._is_simple: - return self._data[idx] - else: - msg = "Cannot pass parameter 'idx' to 'data' for non-batching job" - raise ValueError(msg) - - def _repr_html_(self): - """ - HTML table representation of the result. - """ - return self._repr - - def __getitem__(self, key): - """ - If the result represents a batching job and key is a slice, a - side-by-side table comparison is shown for the indexes represented by - the slice. - - Otherwise, the key is used to access the raw data directly. - """ - if isinstance(key, slice): - if self._is_simple: - msg = "Cannot pass slice to '__getitem__' for non-batching job" - raise ValueError(msg) - return HTMLWrapper(self._batch_result_table(range(len(self))[key])) - else: - return super().__getitem__(key) - - def _plot(self, **kwargs): - """ - Plots all result items in a space time plot, where the x-axis shows - total runtime, and the y-axis shows total number of physical qubits. - Both axes are in log-scale. - Attributes: - labels (list): List of labels for the legend. - """ - try: - import matplotlib.pyplot as plt - except ImportError: - raise ImportError( - "Missing optional 'matplotlib' dependency. To install run: " - "pip install matplotlib" - ) - - labels = kwargs.pop("labels", []) - - [xs, ys] = zip(*[ - (self.data(i)['physicalCounts']['runtime'], - self.data(i)['physicalCounts']['physicalQubits']) - for i in range(len(self))]) - - _ = plt.figure(figsize=(15, 8)) - - plt.ylabel('Physical qubits') - plt.xlabel('Runtime') - plt.loglog() - for i, (x, y) in enumerate(zip(xs, ys)): - if isinstance(labels, list) and i < len(labels): - label = labels[i] - else: - label = str(i) - plt.scatter(x=[x], y=[y], label=label, marker="os+x"[i % 4]) - - nsec = 1 - usec = 1e3 * nsec - msec = 1e3 * usec - sec = 1e3 * msec - min = 60 * sec - hour = 60 * min - day = 24 * hour - week = 7 * day - month = 31 * day - year = 365 * month - decade = 10 * year - century = 10 * decade - - time_units = [ - nsec, usec, msec, sec, min, hour, day, week, - month, year, decade, century] - time_labels = [ - "1 ns", "1 µs", "1 ms", "1 s", "1 min", "1 hour", "1 day", - "1 week", "1 month", "1 year", "1 decade", "1 century"] - - cutoff = next( - (i for i, x in enumerate(time_units) if x > max(xs)), - len(time_units) - 1) + 1 - - plt.xticks(time_units[0:cutoff], time_labels[0:cutoff], rotation=90) - plt.legend(loc="upper left") - plt.show() - - @property - def call_graph(self): - """ - Shows the call graph of a simple resource estimation result with - profiling information. - """ - try: - import graphviz - except ImportError: - raise ImportError( - "Missing optional 'graphviz' dependency. To install run: " - "pip install graphviz" - ) - - if not self._is_simple: - raise ValueError("The `call_graph` method cannot be called on a " - "batching result, try indexing into the result " - "first") - - if not hasattr(self, "_call_graph"): - from itertools import groupby - - data = self.data().get("callGraph", None) - - if data is None: - raise ValueError("The result does not contain any profiling " - "information. Set " - "`profiling.call_stack_depth` to some value") - - g = graphviz.Digraph() - g.attr('node', shape='box', style='rounded, filled', - fontname='Arial', fontsize='10', margin='0.05,0.05', - height='0', width='0', fillcolor='#f6f6f6', color='#e3e3e3') - g.attr('edge', color='#d0d0d0') - - nodes_indexed = [{**node, 'index': index} - for index, node in enumerate(data['nodes'])] - - def sorter(node): return node['depth'] - nodes_indexed.sort(key=sorter) - for _, nodes in groupby(nodes_indexed, sorter): - with g.subgraph() as s: - s.attr(rank='same') - for node in nodes: - s.node(str(node['index']), node['name']) - - for edge in data['edges']: - g.edge(str(edge[0]), str(edge[1])) - - self._call_graph = g - - return self._call_graph - - @property - def profile(self): - """ - """ - if not self._is_simple: - raise ValueError("The `call_graph` method cannot be called on a " - "batching result, try indexing into the result " - "first") - - if not hasattr(self, "_profile"): - import base64 - import json - - profile = self.data().get("profile", None) - - if profile is None: - raise ValueError("The result does not contain any profiling " - "information. Set " - "`profiling.call_stack_depth` to some value") - - profile_encoded = json.dumps(profile).encode('utf-8') - data64 = base64.b64encode(profile_encoded).decode('utf-8') - - self._profile = f""" - - Download the profile to your computer. Then open the profile - by dragging it into speedscope. - """ - - return HTMLWrapper(self._profile) - - @property - def json(self): - """ - Returns a JSON representation of the resource estimation result data. - """ - if not hasattr(self, "_json"): - import json - self._json = json.dumps(self._data) - - return self._json - - def _summary_data_frame(self, **kwargs): - try: - import pandas as pd - except ImportError: - raise ImportError( - "Missing optional 'pandas' dependency. To install run: " - "pip install pandas" - ) - - # get labels or use default value, then extend with missing elements, - # and truncate extra elements - labels = kwargs.pop("labels", []) - labels.extend(range(len(labels), len(self))) - labels = labels[:len(self)] - - def get_row(result): - if MicrosoftEstimatorResult._is_succeeded(result): - formatted = result["physicalCountsFormatted"] - - return ( - formatted["algorithmicLogicalQubits"], - formatted["logicalDepth"], - formatted["numTstates"], - result["logicalQubit"]["codeDistance"], - formatted["numTfactories"], - formatted["physicalQubitsForTfactoriesPercentage"], - formatted["physicalQubits"], - formatted["rqops"], - formatted["runtime"] - ) - else: - return ['No solution found'] * 9 - - data = [get_row(self.data(index)) for index in range(len(self))] - columns = ["Logical qubits", "Logical depth", "T states", - "Code distance", "T factories", "T factory fraction", - "Physical qubits", "rQOPS", "Physical runtime"] - return pd.DataFrame(data, columns=columns, index=labels) - - def _item_result_table(self): - html = "" - - md = markdown.Markdown(extensions=['mdx_math']) - for group in self['reportData']['groups']: - html += f""" -
- - {group['title']} - - """ - for entry in group['entries']: - val = self - for key in entry['path'].split("/"): - val = val[key] - explanation = md.convert(entry["explanation"]) - html += f""" - - - - - - """ - html += "
{entry['label']}{val} - {entry["description"]} -
- {explanation} -
" - - html += f"
Assumptions
" - - return html - - def _item_result_summary_table(self): - html = """ - """ - - md = markdown.Markdown(extensions=['mdx_math']) - for group in self['reportData']['groups']: - html += f""" -
- - {group['title']} - - """ - for entry in group['entries']: - val = self - for key in entry['path'].split("/"): - val = val[key] - explanation = md.convert(entry["explanation"]) - html += f""" - - - - - - """ - html += "
{explanation}{entry['label']}{val}{entry["description"]}
" - - html += f"
Assumptions
" - - return html - - def _batch_result_table(self, indices): - succeeded_item_indices = [i for i in indices if MicrosoftEstimatorResult._is_succeeded(self[i])] - if len(succeeded_item_indices) == 0: - print("None of the jobs succeeded") - return "" - - first_succeeded_item_index = succeeded_item_indices[0] - - html = "" - - md = markdown.Markdown(extensions=['mdx_math']) - - item_headers = "".join(f"{i}" for i in indices) - - for group_index, group in enumerate(self[first_succeeded_item_index]['reportData']['groups']): - html += f""" -
- - {group['title']} - - - {item_headers}""" - - visited_entries = set() - - for entry in [entry for index in succeeded_item_indices for entry in self[index]['reportData']['groups'][group_index]['entries']]: - label = entry['label'] - if label in visited_entries: - continue - visited_entries.add(label) - - html += f""" - - - """ - - for index in indices: - val = self[index] - if index in succeeded_item_indices: - for key in entry['path'].split("/"): - if key in val: - val = val[key] - else: - val = "N/A" - break - else: - val = "N/A" - html += f""" - - """ - - html += """ - - """ - html += "
Item
{label}{val}
" - - html += f"
Assumptions
" - - return html - - @staticmethod - def _is_succeeded(obj): - return 'status' in obj and obj['status'] == "success" - -class EstimatorResultDiagram: - def __init__(self, data): - data.pop("reportData") - self.data_json = json.dumps(data).replace(" ", "") - self.vis_lib = "https://cdn-aquavisualization-prod.azureedge.net/resource-estimation/index.js" - self.space = HTMLWrapper(self._space_diagram()) - self.time = HTMLWrapper(self._time_diagram()) - - def _space_diagram(self): - html = f""" - - """ - return html - - def _time_diagram(self): - html = f""" - - """ - return html \ No newline at end of file diff --git a/azure-quantum/azure/quantum/target/microsoft/target.py b/azure-quantum/azure/quantum/target/microsoft/target.py index 8b11d648d..194a667c5 100644 --- a/azure-quantum/azure/quantum/target/microsoft/target.py +++ b/azure-quantum/azure/quantum/target/microsoft/target.py @@ -13,29 +13,6 @@ from ..params import InputParams, InputParamsItem, AutoValidatingParams, \ validating_field from ..target import Target -from . import MicrosoftEstimatorJob - -class QubitParams: - """ - Resource estimator Qubit parameters. - """ - - GATE_US_E3 = "qubit_gate_us_e3" - GATE_US_E4 = "qubit_gate_us_e4" - GATE_NS_E3 = "qubit_gate_ns_e3" - GATE_NS_E4 = "qubit_gate_ns_e4" - MAJ_NS_E4 = "qubit_maj_ns_e4" - MAJ_NS_E6 = "qubit_maj_ns_e6" - - -class QECScheme: - """ - Resource estimator QEC Scheme. - """ - - SURFACE_CODE = "surface_code" - FLOQUET_CODE = "floquet_code" - def _check_error_rate(name, value): if value <= 0.0 or value >= 1.0: @@ -64,90 +41,6 @@ class MeasurementErrorRate(AutoValidatingParams): process: float = field(metadata={"validate": _check_error_rate}) readout: float = field(metadata={"validate": _check_error_rate}) -@dataclass -class MicrosoftEstimatorQubitParams(AutoValidatingParams): - @staticmethod - def check_instruction_set(name, value): - if value not in ["gate-based", "gate_based", "GateBased", "gateBased", - "Majorana", "majorana"]: - raise ValueError(f"{name} must be GateBased or Majorana") - - name: Optional[str] = None - instruction_set: Optional[str] = validating_field(check_instruction_set) - one_qubit_measurement_time: Optional[str] = validating_field(check_time) - two_qubit_joint_measurement_time: Optional[str] = \ - validating_field(check_time) - one_qubit_gate_time: Optional[str] = validating_field(check_time) - two_qubit_gate_time: Optional[str] = validating_field(check_time) - t_gate_time: Optional[str] = validating_field(check_time) - one_qubit_measurement_error_rate: Union[None, float, MeasurementErrorRate] = \ - validating_field(_check_error_rate_or_process_and_readout) - two_qubit_joint_measurement_error_rate: Union[None, float, MeasurementErrorRate] = \ - validating_field(_check_error_rate_or_process_and_readout) - one_qubit_gate_error_rate: Optional[float] = \ - validating_field(_check_error_rate) - two_qubit_gate_error_rate: Optional[float] = \ - validating_field(_check_error_rate) - t_gate_error_rate: Optional[float] = validating_field(_check_error_rate) - idle_error_rate: Optional[float] = validating_field(_check_error_rate) - - _default_models = [QubitParams.GATE_US_E3, QubitParams.GATE_US_E4, - QubitParams.GATE_NS_E3, QubitParams.GATE_NS_E4, - QubitParams.MAJ_NS_E4, QubitParams.MAJ_NS_E6] - _gate_based = ["gate-based", "gate_based", "GateBased", "gateBased"] - _maj_based = ["Majorana", "majorana"] - - def post_validation(self, result): - # check whether all fields have been specified in case a custom qubit - # model is specified - custom = result != {} and \ - (self.name is None or self.name not in self._default_models) - - # no further validation needed for non-custom models - if not custom: - return - - # instruction set must be set - if self.instruction_set is None: - raise LookupError("instruction_set must be set for custom qubit " - "parameters") - - # NOTE at this point, we know that instruction set must have valid - # value - if self.one_qubit_measurement_time is None: - raise LookupError("one_qubit_measurement_time must be set") - if self.one_qubit_measurement_error_rate is None: - raise LookupError("one_qubit_measurement_error_rate must be set") - - # this only needs to be checked for gate based qubits - if self.instruction_set in self._gate_based: - if self.one_qubit_gate_time is None: - raise LookupError("one_qubit_gate_time must be set") - - def as_dict(self, validate=True) -> Dict[str, Any]: - qubit_params = super().as_dict(validate) - if len(qubit_params) != 0: - if isinstance(self.one_qubit_measurement_error_rate, MeasurementErrorRate): - qubit_params["oneQubitMeasurementErrorRate"] = \ - self.one_qubit_measurement_error_rate.as_dict(validate) - - if isinstance(self.two_qubit_joint_measurement_error_rate, MeasurementErrorRate): - qubit_params["twoQubitJointMeasurementErrorRate"] = \ - self.two_qubit_joint_measurement_error_rate.as_dict(validate) - - return qubit_params - - -@dataclass -class MicrosoftEstimatorQecScheme(AutoValidatingParams): - name: Optional[str] = None - error_correction_threshold: Optional[float] = \ - validating_field(_check_error_rate) - crossing_prefactor: Optional[float] = None - logical_cycle_time: Optional[str] = None - physical_qubits_per_logical_qubit: Optional[str] = None - - @dataclass class ProtocolSpecificDistillationUnitSpecification(AutoValidatingParams): num_unit_qubits: Optional[int] = None @@ -247,214 +140,3 @@ def as_dict(self, validate=True) -> Dict[str, Any]: logical_qubit_specification_first_round_override_dict return specification_dict - - -@dataclass -class ErrorBudgetPartition(AutoValidatingParams): - """ - Resource estimator error budget partition parameters. - """ - logical: float = 0.001 / 3 - t_states: float = 0.001 / 3 - rotations: float = 0.001 / 3 - - -@dataclass -class MicrosoftEstimatorConstraints(AutoValidatingParams): - """ - Resource estimator constraints. - """ - - @staticmethod - def at_least_one(name, value): - if value < 1: - raise ValueError(f"{name} must be at least 1") - - logical_depth_factor: Optional[float] = validating_field(at_least_one) - max_t_factories: Optional[int] = validating_field(at_least_one) - max_duration: Optional[int] = validating_field(check_time) - max_physical_qubits: Optional[int] = validating_field(at_least_one) - - def post_validation(self, result): - if self.max_duration is not None and self.max_physical_qubits is not None: - raise LookupError("Both duration and number of physical qubits constraints are provided, but only one is allowe at a time.") - - -@dataclass -class MicrosoftEstimatorProfiling(AutoValidatingParams): - @staticmethod - def at_most_30(name, value): - if value < 0 or value > 30: - raise ValueError(f"{name} must be nonnegative and at most 30") - - call_stack_depth: Optional[int] = validating_field(at_most_30) - inline_functions: Optional[bool] = None - - -class MicrosoftEstimatorInputParamsItem(InputParamsItem): - """ - Input params for microsoft.estimator target - - :ivar error_budget Total error budget for execution of the algorithm - """ - - def __init__(self): - super().__init__() - - self.qubit_params: MicrosoftEstimatorQubitParams = \ - MicrosoftEstimatorQubitParams() - self.qec_scheme: MicrosoftEstimatorQecScheme = \ - MicrosoftEstimatorQecScheme() - self.distillation_unit_specifications = [] # type: List[DistillationUnitSpecification] - self.constraints: MicrosoftEstimatorConstraints = \ - MicrosoftEstimatorConstraints() - self.profiling: MicrosoftEstimatorProfiling = \ - MicrosoftEstimatorProfiling() - self.error_budget: Optional[Union[float, ErrorBudgetPartition]] = None - - def as_dict(self, validate=True) -> Dict[str, Any]: - result = super().as_dict(validate) - - qubit_params = self.qubit_params.as_dict(validate) - if len(qubit_params) != 0: - result["qubitParams"] = qubit_params - - qec_scheme = self.qec_scheme.as_dict(validate) - if len(qec_scheme) != 0: - result["qecScheme"] = qec_scheme - - for specification in self.distillation_unit_specifications: - specification_dict = specification.as_dict(validate) - if len(specification_dict) != 0: - if result.get("distillationUnitSpecifications") is None: - result["distillationUnitSpecifications"] = [] - - result["distillationUnitSpecifications"].append(specification_dict) - - constraints = self.constraints.as_dict(validate) - if len(constraints) != 0: - result["constraints"] = constraints - - profiling = self.profiling.as_dict(validate) - if len(profiling) != 0: - result["profiling"] = profiling - - if self.error_budget is not None: - if isinstance(self.error_budget, float) or \ - isinstance(self.error_budget, int): - if validate and \ - (self.error_budget <= 0 or self.error_budget >= 1): - message = "error_budget must be value between 0 and 1" - raise ValueError(message) - result["errorBudget"] = self.error_budget - elif isinstance(self.error_budget, ErrorBudgetPartition): - result["errorBudget"] = self.error_budget.as_dict(validate) - - return result - - -class MicrosoftEstimatorParams(InputParams, MicrosoftEstimatorInputParamsItem): - """ - Resource estimator input parameters. - """ - def __init__(self, num_items: Optional[int] = None): - InputParams.__init__( - self, - num_items=num_items, - item_type=MicrosoftEstimatorInputParamsItem) - - -class MicrosoftEstimator(Target): - """ - Resource estimator target from the microsoft-qc provider. - """ - - target_names = [ - "microsoft.estimator" - ] - - def __init__( - self, - workspace: "Workspace", - name: str = "microsoft.estimator", - **kwargs - ): - # There is only a single target name for this target - assert name == self.target_names[0] - - # make sure to not pass argument twice - kwargs.pop("provider_id", None) - - super().__init__( - workspace=workspace, - name=name, - input_data_format="qir.v1", - output_data_format="microsoft.resource-estimates.v1", - provider_id="microsoft-qc", - content_type=ContentType.json, - target_profile="Adaptive_RI", - **kwargs - ) - - def submit( - self, - input_data: Any, - name: str = "azure-quantum-job", - shots: int = None, - input_params: Union[Dict[str, Any], InputParams, None] = None, - **kwargs, - ) -> Job: - """ - Submit an estimation job. - - :param input_data: Input data - :type input_data: Any - :param name: Job name - :type name: str - :param shots: Number of shots. Ignored in estimation. Defaults to None - :type shots: int - :param input_params: Input parameters - :type input_params: Dict[str, Any] - :return: Azure Quantum job - :rtype: Job - """ - - if shots is not None: - warnings.warn("The 'shots' parameter is ignored in resource estimation job.") - - try: - from qiskit import QuantumCircuit - from qsharp import TargetProfile - from qsharp.interop.qiskit import ResourceEstimatorBackend - from pyqir import Context, Module - - if isinstance(input_data, QuantumCircuit): - backend = ResourceEstimatorBackend() - target_profile = TargetProfile.from_str(self.target_profile) - qir_str = backend.qir(input_data, target_profile=target_profile) - context = Context() - module = Module.from_ir(context, qir_str) - - err = module.verify() - if err is not None: - raise Exception(err) - input_data = module.bitcode - finally: - return super().submit( - input_data=input_data, - name=name, - shots=shots, - input_params=input_params, - **kwargs - ) - - @classmethod - def _get_job_class(cls) -> Type[Job]: - return MicrosoftEstimatorJob - - def _qir_output_data_format(self) -> str: - """"Fallback output data format in case of QIR job submission.""" - return "microsoft.resource-estimates.v1" - - def make_params(self, num_items: Optional[int] = None): - return MicrosoftEstimatorParams(num_items=num_items) diff --git a/azure-quantum/azure/quantum/target/target.py b/azure-quantum/azure/quantum/target/target.py index af3644c9e..6b5834407 100644 --- a/azure-quantum/azure/quantum/target/target.py +++ b/azure-quantum/azure/quantum/target/target.py @@ -80,7 +80,7 @@ def __init__( :type name: str :param input_data_format: Format of input data (ex. "qir.v1") :type input_data_format: str - :param output_data_format: Format of output data (ex. "microsoft.resource-estimates.v1") + :param output_data_format: Format of output data (ex. "microsoft.quantum-log.v1") :type output_data_format: str :param capability: QIR capability. Deprecated, use `target_profile` :type capability: str diff --git a/azure-quantum/examples/README.md b/azure-quantum/examples/README.md deleted file mode 100644 index 4d1c165e5..000000000 --- a/azure-quantum/examples/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Azure Quantum Python API examples - -* [Resource estimator examples](https://github.com/microsoft/qdk-python/tree/main/azure-quantum/examples/resource_estimation) diff --git a/azure-quantum/examples/resource_estimation/README.md b/azure-quantum/examples/resource_estimation/README.md deleted file mode 100644 index bb42d541c..000000000 --- a/azure-quantum/examples/resource_estimation/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# Resource estimator examples - -This directory contains several standalone Python scripts that use the Azure -Quantum Resource Estimator through the `azure-quantum` Python API. - -## Prerequisites - -These scripts require access to an Azure Quantum workspace. Read [our -documentation](https://learn.microsoft.com/azure/quantum/how-to-create-workspace) -to learn how to set up an Azure Quantum workspace. Once the Azure Quantum -workspace is created, you can retrieve the _resource id_ and _location_ from -the _Overview_ page of your workspace. - -Also, you need to install the `azure-quantum` Python package: - -```shell -python -m pip install azure-quantum -``` - -## Example scripts - -* **[cli.py](https://github.com/microsoft/qdk-python/blob/main/azure-quantum/examples/resource_estimation/cli.py): A resource estimation CLI that can execute resource estimation jobs from various input formats and generate JSON output.** - - The input type is determined by file extension: - - * `.qs`: Q# snippet (without `namespace` declaration) - * `.qasm`: OpenQASM file - * `.ll`: QIR in ASCII format - * `.qir`, `.bc`: QIR bitcode - - Usage: - - Resource estimation from an OpenQASM file: - - ```shell - python cli.py -r "resource id" -l "location" cli_test_files/rqft_multiplier.qasm - ``` - - Resource estimation from a Q# file with job parameters: - - ```shell - python cli.py -r "resource id" -l "location" cli_test_files/multiplier.qs \ - -p cli_test_files/multiplier.json - ``` - - Writing output into JSON file: - - ```shell - python cli.py -r "resource id" -l "location" cli_test_files/multiplier.qs \ - -p cli_test_files/multiplier.json \ - -o output.json - ``` - -* **[rsa.py](https://github.com/microsoft/qdk-python/blob/main/azure-quantum/examples/resource_estimation/rsa.py): Physical resource estimation for RSA using a pre-compiled QIR code.** - - You can change the parameters to the factoring algorithm, e.g., the prime product, inside the code. - - Usage: - - ```shell - python rsa.py -r "resource_id" -l "location" - ``` - -* **[ecc.py](https://github.com/microsoft/qdk-python/blob/main/azure-quantum/examples/resource_estimation/ecc.py): Physical resource estimation for Elliptic Curve Cryptography starting from logical resource estimates.** - - The possible key sizes are 256, 384, and 521. - - Usage: - - ```shell - python ecc.py -k 256 -r "resource_id" -l "location" - ``` diff --git a/azure-quantum/examples/resource_estimation/cli.py b/azure-quantum/examples/resource_estimation/cli.py deleted file mode 100644 index 80c74fd4f..000000000 --- a/azure-quantum/examples/resource_estimation/cli.py +++ /dev/null @@ -1,123 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -## - -# A resource estimation CLI that can execute resource estimation jobs from -# various input formats and generate JSON output. - -import argparse -import json -import os -import sys -from azure.quantum import Workspace -from azure.quantum.target.microsoft import MicrosoftEstimator - -# Configure program arguments -parser = argparse.ArgumentParser( - prog="estimate", - description="Estimate physical resources using Azure Quantum") - -parser.add_argument( - "filename", - help="Quantum program (.ll, .qir, .bc, .qs, .qasm)") - -parser.add_argument( - "-r", - "--resource-id", - default=os.environ.get("AZURE_QUANTUM_RESOURCE_ID"), - help="Resource ID of Azure Quantum workspace (must be set, unless set via " - "environment variable AZURE_QUANTUM_RESOURCE_ID)") - -parser.add_argument( - "-l", - "--location", - default=os.environ.get("AZURE_QUANTUM_LOCATION"), - help="Location of Azure Quantum workspace (must be set, unless set via " - "environment AZURE_QUANTUM_LOCATION)") - -parser.add_argument( - "-p", - "--job-params", - help="JSON file with job parameters") - -parser.add_argument( - "-o", - "--output", - help="Output file (default: stdout)" -) - -# Parse and validate arguments -args = parser.parse_args() - -if not args.resource_id: - parser.error("the following arguments are required: -r/--resource-id") -if not args.location: - parser.error("the following arguments are required: -l/--location") - -# Set up Azure Quantum workspace -workspace = Workspace(resource_id=args.resource_id, location=args.location) -estimator = MicrosoftEstimator(workspace) - -# Prepare program input based on file extension -extension = os.path.splitext(args.filename)[1] -if extension == ".ll": - # LLVM IR - try: - import pyqir - ir_code = open(args.filename, "r").read() - context = pyqir.Context() - module = pyqir.Module.from_ir(context, ir_code) - input_data = module.bitcode - except ImportError: - raise ImportError("PyQIR is not installed. Please install the pyqir " - "package to use this feature.") -elif extension == ".qir" or extension == ".bc": - # QIR or LLVM bitcode - input_data = open(args.filename, "rb").read() -elif extension == ".qs": - # Q# - try: - import qsharp - qsharp.packages.add("Microsoft.Quantum.Numerics") - qsharp_code = open(args.filename, "r").read() - input_data = qsharp.compile(qsharp_code) - except ImportError: - raise ImportError("Q# is not installed. Please install the qsharp " - "package to use this feature.") -elif extension == ".qasm": - # OpenQASM - try: - from qiskit import QuantumCircuit - qasm_code = open(args.filename, "r").read() - input_data = QuantumCircuit.from_qasm_str(qasm_code) - except ImportError: - raise ImportError("Qiskit is not installed. Please install the qiskit " - "package to use this feature.") - -else: - raise ValueError(f"Unknown file extension {extension}") - -# Parse job arguments -input_params = {} -if args.job_params: - with open(args.job_params, 'r') as f: - input_params = json.load(f) - -# Submit job -job = estimator.submit(input_data, input_params=input_params) - -# Get results -try: - results = job.get_results() -except RuntimeError as e: - print() - print(e, file=sys.stderr) - exit(1) - -# Write results to output file -if args.output: - with open(args.output, 'w') as f: - f.write(results.json) -else: - print(results.json) diff --git a/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.json b/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.json deleted file mode 100644 index 182ffc5f6..000000000 --- a/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "arguments": [ - { - "name": "bitwidth", - "value": 32, - "type": "Int" - } - ] -} \ No newline at end of file diff --git a/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.qs b/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.qs deleted file mode 100644 index 2a796c838..000000000 --- a/azure-quantum/examples/resource_estimation/cli_test_files/multiplier.qs +++ /dev/null @@ -1,10 +0,0 @@ -open Microsoft.Quantum.Arithmetic; - -@EntryPoint() -operation EstimateMultiplier(bitwidth : Int) : Unit { - use xs = Qubit[bitwidth]; - use ys = Qubit[bitwidth]; - use zs = Qubit[2 * bitwidth]; - - MultiplyI(LittleEndian(xs), LittleEndian(ys), LittleEndian(zs)); -} diff --git a/azure-quantum/examples/resource_estimation/cli_test_files/rqft_multiplier.qasm b/azure-quantum/examples/resource_estimation/cli_test_files/rqft_multiplier.qasm deleted file mode 100644 index 2f99b4571..000000000 --- a/azure-quantum/examples/resource_estimation/cli_test_files/rqft_multiplier.qasm +++ /dev/null @@ -1,18647 +0,0 @@ -// QASM file for RQFTMultiplier with 8 bit -// (see https://github.com/microsoft/Quantum/blob/main/samples/azure-quantum/resource-estimation/estimation-qiskit.ipynb) -OPENQASM 2.0; -include "qelib1.inc"; -qreg a[8]; -qreg b[8]; -qreg out[16]; -rz(32*pi) b[0]; -rz(64*pi) b[1]; -rz(128*pi) b[2]; -rz(256*pi) b[3]; -rz(512*pi) b[4]; -rz(1024*pi) b[5]; -rz(2048*pi) b[6]; -rz(4096*pi) b[7]; -h out[15]; -rz(pi/4) out[15]; -cx out[15],out[14]; -rz(-pi/4) out[14]; -cx out[15],out[14]; -rz(pi/4) out[14]; -h out[14]; -rz(pi/4) out[14]; -rz(pi/8) out[15]; -cx out[15],out[13]; -rz(-pi/8) out[13]; -cx out[15],out[13]; -rz(pi/8) out[13]; -cx out[14],out[13]; -rz(-pi/4) out[13]; -cx out[14],out[13]; -rz(pi/4) out[13]; -h out[13]; -rz(pi/4) out[13]; -rz(pi/8) out[14]; -rz(pi/16) out[15]; -cx out[15],out[12]; -rz(-pi/16) out[12]; -cx out[15],out[12]; -rz(pi/16) out[12]; -cx out[14],out[12]; -rz(-pi/8) out[12]; -cx out[14],out[12]; -rz(pi/8) out[12]; -cx out[13],out[12]; -rz(-pi/4) out[12]; -cx out[13],out[12]; -rz(pi/4) out[12]; -h out[12]; -rz(pi/4) out[12]; -rz(pi/8) out[13]; -rz(pi/16) out[14]; -rz(pi/32) out[15]; -cx out[15],out[11]; -rz(-pi/32) out[11]; -cx out[15],out[11]; -rz(pi/32) out[11]; -cx out[14],out[11]; -rz(-pi/16) out[11]; -cx out[14],out[11]; -rz(pi/16) out[11]; -cx out[13],out[11]; -rz(-pi/8) out[11]; -cx out[13],out[11]; -rz(pi/8) out[11]; -cx out[12],out[11]; -rz(-pi/4) out[11]; -cx out[12],out[11]; -rz(pi/4) out[11]; -h out[11]; -rz(pi/4) out[11]; -rz(pi/8) out[12]; -rz(pi/16) out[13]; -rz(pi/32) out[14]; -rz(pi/64) out[15]; -cx out[15],out[10]; -rz(-pi/64) out[10]; -cx out[15],out[10]; -rz(pi/64) out[10]; -cx out[14],out[10]; -rz(-pi/32) out[10]; -cx out[14],out[10]; -rz(pi/32) out[10]; -cx out[13],out[10]; -rz(-pi/16) out[10]; -cx out[13],out[10]; -rz(pi/16) out[10]; -cx out[12],out[10]; -rz(-pi/8) out[10]; -cx out[12],out[10]; -rz(pi/8) out[10]; -cx out[11],out[10]; -rz(-pi/4) out[10]; -cx out[11],out[10]; -rz(pi/4) out[10]; -h out[10]; -rz(pi/4) out[10]; -rz(pi/8) out[11]; -rz(pi/16) out[12]; -rz(pi/32) out[13]; -rz(pi/64) out[14]; -rz(pi/128) out[15]; -cx out[15],out[9]; -rz(-pi/128) out[9]; -cx out[15],out[9]; -rz(pi/256) out[15]; -cx out[15],out[8]; -rz(-pi/256) out[8]; -cx out[15],out[8]; -rz(pi/512) out[15]; -cx out[15],out[7]; -rz(-pi/512) out[7]; -cx out[15],out[7]; -rz(pi/1024) out[15]; -cx out[15],out[6]; -rz(-pi/1024) out[6]; -cx out[15],out[6]; -rz(pi/2048) out[15]; -cx out[15],out[5]; -rz(-pi/2048) out[5]; -cx out[15],out[5]; -rz(pi/4096) out[15]; -cx out[15],out[4]; -rz(-pi/4096) out[4]; -cx out[15],out[4]; -rz(pi/8192) out[15]; -cx out[15],out[3]; -rz(-pi/8192) out[3]; -cx out[15],out[3]; -rz(pi/16384) out[15]; -cx out[15],out[2]; -rz(-pi/16384) out[2]; -cx out[15],out[2]; -rz(pi/32768) out[15]; -cx out[15],out[1]; -rz(-pi/32768) out[1]; -cx out[15],out[1]; -rz(pi/32768) out[1]; -rz(pi/65536) out[15]; -cx out[15],out[0]; -rz(-pi/65536) out[0]; -cx out[15],out[0]; -rz(pi/65536) out[0]; -rz(pi/16384) out[2]; -rz(pi/8192) out[3]; -rz(pi/4096) out[4]; -rz(pi/2048) out[5]; -rz(pi/1024) out[6]; -rz(pi/512) out[7]; -rz(pi/256) out[8]; -rz(pi/128) out[9]; -cx out[14],out[9]; -rz(-pi/64) out[9]; -cx out[14],out[9]; -rz(pi/128) out[14]; -cx out[14],out[8]; -rz(-pi/128) out[8]; -cx out[14],out[8]; -rz(pi/256) out[14]; -cx out[14],out[7]; -rz(-pi/256) out[7]; -cx out[14],out[7]; -rz(pi/512) out[14]; -cx out[14],out[6]; -rz(-pi/512) out[6]; -cx out[14],out[6]; -rz(pi/1024) out[14]; -cx out[14],out[5]; -rz(-pi/1024) out[5]; -cx out[14],out[5]; -rz(pi/2048) out[14]; -cx out[14],out[4]; -rz(-pi/2048) out[4]; -cx out[14],out[4]; -rz(pi/4096) out[14]; -cx out[14],out[3]; -rz(-pi/4096) out[3]; -cx out[14],out[3]; -rz(pi/8192) out[14]; -cx out[14],out[2]; -rz(-pi/8192) out[2]; -cx out[14],out[2]; -rz(pi/16384) out[14]; -cx out[14],out[1]; -rz(-pi/16384) out[1]; -cx out[14],out[1]; -rz(pi/16384) out[1]; -rz(pi/32768) out[14]; -cx out[14],out[0]; -rz(-pi/32768) out[0]; -cx out[14],out[0]; -rz(pi/32768) out[0]; -rz(pi/8192) out[2]; -rz(pi/4096) out[3]; -rz(pi/2048) out[4]; -rz(pi/1024) out[5]; -rz(pi/512) out[6]; -rz(pi/256) out[7]; -rz(pi/128) out[8]; -rz(pi/64) out[9]; -cx out[13],out[9]; -rz(-pi/32) out[9]; -cx out[13],out[9]; -rz(pi/64) out[13]; -cx out[13],out[8]; -rz(-pi/64) out[8]; -cx out[13],out[8]; -rz(pi/128) out[13]; -cx out[13],out[7]; -rz(-pi/128) out[7]; -cx out[13],out[7]; -rz(pi/256) out[13]; -cx out[13],out[6]; -rz(-pi/256) out[6]; -cx out[13],out[6]; -rz(pi/512) out[13]; -cx out[13],out[5]; -rz(-pi/512) out[5]; -cx out[13],out[5]; -rz(pi/1024) out[13]; -cx out[13],out[4]; -rz(-pi/1024) out[4]; -cx out[13],out[4]; -rz(pi/2048) out[13]; -cx out[13],out[3]; -rz(-pi/2048) out[3]; -cx out[13],out[3]; -rz(pi/4096) out[13]; -cx out[13],out[2]; -rz(-pi/4096) out[2]; -cx out[13],out[2]; -rz(pi/8192) out[13]; -cx out[13],out[1]; -rz(-pi/8192) out[1]; -cx out[13],out[1]; -rz(pi/8192) out[1]; -rz(pi/16384) out[13]; -cx out[13],out[0]; -rz(-pi/16384) out[0]; -cx out[13],out[0]; -rz(pi/16384) out[0]; -rz(pi/4096) out[2]; -rz(pi/2048) out[3]; -rz(pi/1024) out[4]; -rz(pi/512) out[5]; -rz(pi/256) out[6]; -rz(pi/128) out[7]; -rz(pi/64) out[8]; -rz(pi/32) out[9]; -cx out[12],out[9]; -rz(-pi/16) out[9]; -cx out[12],out[9]; -rz(pi/32) out[12]; -cx out[12],out[8]; -rz(-pi/32) out[8]; -cx out[12],out[8]; -rz(pi/64) out[12]; -cx out[12],out[7]; -rz(-pi/64) out[7]; -cx out[12],out[7]; -rz(pi/128) out[12]; -cx out[12],out[6]; -rz(-pi/128) out[6]; -cx out[12],out[6]; -rz(pi/256) out[12]; -cx out[12],out[5]; -rz(-pi/256) out[5]; -cx out[12],out[5]; -rz(pi/512) out[12]; -cx out[12],out[4]; -rz(-pi/512) out[4]; -cx out[12],out[4]; -rz(pi/1024) out[12]; -cx out[12],out[3]; -rz(-pi/1024) out[3]; -cx out[12],out[3]; -rz(pi/2048) out[12]; -cx out[12],out[2]; -rz(-pi/2048) out[2]; -cx out[12],out[2]; -rz(pi/4096) out[12]; -cx out[12],out[1]; -rz(-pi/4096) out[1]; -cx out[12],out[1]; -rz(pi/4096) out[1]; -rz(pi/8192) out[12]; -cx out[12],out[0]; -rz(-pi/8192) out[0]; -cx out[12],out[0]; -rz(pi/8192) out[0]; -rz(pi/2048) out[2]; -rz(pi/1024) out[3]; -rz(pi/512) out[4]; -rz(pi/256) out[5]; -rz(pi/128) out[6]; -rz(pi/64) out[7]; -rz(pi/32) out[8]; -rz(pi/16) out[9]; -cx out[11],out[9]; -rz(-pi/8) out[9]; -cx out[11],out[9]; -rz(pi/16) out[11]; -cx out[11],out[8]; -rz(-pi/16) out[8]; -cx out[11],out[8]; -rz(pi/32) out[11]; -cx out[11],out[7]; -rz(-pi/32) out[7]; -cx out[11],out[7]; -rz(pi/64) out[11]; -cx out[11],out[6]; -rz(-pi/64) out[6]; -cx out[11],out[6]; -rz(pi/128) out[11]; -cx out[11],out[5]; -rz(-pi/128) out[5]; -cx out[11],out[5]; -rz(pi/256) out[11]; -cx out[11],out[4]; -rz(-pi/256) out[4]; -cx out[11],out[4]; -rz(pi/512) out[11]; -cx out[11],out[3]; -rz(-pi/512) out[3]; -cx out[11],out[3]; -rz(pi/1024) out[11]; -cx out[11],out[2]; -rz(-pi/1024) out[2]; -cx out[11],out[2]; -rz(pi/2048) out[11]; -cx out[11],out[1]; -rz(-pi/2048) out[1]; -cx out[11],out[1]; -rz(pi/2048) out[1]; -rz(pi/4096) out[11]; -cx out[11],out[0]; -rz(-pi/4096) out[0]; -cx out[11],out[0]; -rz(pi/4096) out[0]; -rz(pi/1024) out[2]; -rz(pi/512) out[3]; -rz(pi/256) out[4]; -rz(pi/128) out[5]; -rz(pi/64) out[6]; -rz(pi/32) out[7]; -rz(pi/16) out[8]; -rz(pi/8) out[9]; -cx out[10],out[9]; -rz(-pi/4) out[9]; -cx out[10],out[9]; -rz(pi/8) out[10]; -cx out[10],out[8]; -rz(-pi/8) out[8]; -cx out[10],out[8]; -rz(pi/16) out[10]; -cx out[10],out[7]; -rz(-pi/16) out[7]; -cx out[10],out[7]; -rz(pi/32) out[10]; -cx out[10],out[6]; -rz(-pi/32) out[6]; -cx out[10],out[6]; -rz(pi/64) out[10]; -cx out[10],out[5]; -rz(-pi/64) out[5]; -cx out[10],out[5]; -rz(pi/128) out[10]; -cx out[10],out[4]; -rz(-pi/128) out[4]; -cx out[10],out[4]; -rz(pi/256) out[10]; -cx out[10],out[3]; -rz(-pi/256) out[3]; -cx out[10],out[3]; -rz(pi/512) out[10]; -cx out[10],out[2]; -rz(-pi/512) out[2]; -cx out[10],out[2]; -rz(pi/1024) out[10]; -cx out[10],out[1]; -rz(-pi/1024) out[1]; -cx out[10],out[1]; -rz(pi/1024) out[1]; -rz(pi/2048) out[10]; -cx out[10],out[0]; -rz(-pi/2048) out[0]; -cx out[10],out[0]; -rz(pi/2048) out[0]; -rz(pi/512) out[2]; -rz(pi/256) out[3]; -rz(pi/128) out[4]; -rz(pi/64) out[5]; -rz(pi/32) out[6]; -rz(pi/16) out[7]; -rz(pi/8) out[8]; -rz(pi/4) out[9]; -h out[9]; -rz(pi/4) out[9]; -cx out[9],out[8]; -rz(-pi/4) out[8]; -cx out[9],out[8]; -rz(pi/4) out[8]; -h out[8]; -rz(pi/4) out[8]; -rz(pi/8) out[9]; -cx out[9],out[7]; -rz(-pi/8) out[7]; -cx out[9],out[7]; -rz(pi/8) out[7]; -cx out[8],out[7]; -rz(-pi/4) out[7]; -cx out[8],out[7]; -rz(pi/4) out[7]; -h out[7]; -rz(pi/4) out[7]; -rz(pi/8) out[8]; -rz(pi/16) out[9]; -cx out[9],out[6]; -rz(-pi/16) out[6]; -cx out[9],out[6]; -rz(pi/16) out[6]; -cx out[8],out[6]; -rz(-pi/8) out[6]; -cx out[8],out[6]; -rz(pi/8) out[6]; -cx out[7],out[6]; -rz(-pi/4) out[6]; -cx out[7],out[6]; -rz(pi/4) out[6]; -h out[6]; -rz(pi/4) out[6]; -rz(pi/8) out[7]; -rz(pi/16) out[8]; -rz(pi/32) out[9]; -cx out[9],out[5]; -rz(-pi/32) out[5]; -cx out[9],out[5]; -rz(pi/32) out[5]; -cx out[8],out[5]; -rz(-pi/16) out[5]; -cx out[8],out[5]; -rz(pi/16) out[5]; -cx out[7],out[5]; -rz(-pi/8) out[5]; -cx out[7],out[5]; -rz(pi/8) out[5]; -cx out[6],out[5]; -rz(-pi/4) out[5]; -cx out[6],out[5]; -rz(pi/4) out[5]; -h out[5]; -rz(pi/4) out[5]; -rz(pi/8) out[6]; -rz(pi/16) out[7]; -rz(pi/32) out[8]; -rz(pi/64) out[9]; -cx out[9],out[4]; -rz(-pi/64) out[4]; -cx out[9],out[4]; -rz(pi/64) out[4]; -cx out[8],out[4]; -rz(-pi/32) out[4]; -cx out[8],out[4]; -rz(pi/32) out[4]; -cx out[7],out[4]; -rz(-pi/16) out[4]; -cx out[7],out[4]; -rz(pi/16) out[4]; -cx out[6],out[4]; -rz(-pi/8) out[4]; -cx out[6],out[4]; -rz(pi/8) out[4]; -cx out[5],out[4]; -rz(-pi/4) out[4]; -cx out[5],out[4]; -rz(pi/4) out[4]; -h out[4]; -rz(pi/4) out[4]; -rz(pi/8) out[5]; -rz(pi/16) out[6]; -rz(pi/32) out[7]; -rz(pi/64) out[8]; -rz(pi/128) out[9]; -cx out[9],out[3]; -rz(-pi/128) out[3]; -cx out[9],out[3]; -rz(pi/128) out[3]; -cx out[8],out[3]; -rz(-pi/64) out[3]; -cx out[8],out[3]; -rz(pi/64) out[3]; -cx out[7],out[3]; -rz(-pi/32) out[3]; -cx out[7],out[3]; -rz(pi/32) out[3]; -cx out[6],out[3]; -rz(-pi/16) out[3]; -cx out[6],out[3]; -rz(pi/16) out[3]; -cx out[5],out[3]; -rz(-pi/8) out[3]; -cx out[5],out[3]; -rz(pi/8) out[3]; -cx out[4],out[3]; -rz(-pi/4) out[3]; -cx out[4],out[3]; -rz(pi/4) out[3]; -h out[3]; -rz(pi/4) out[3]; -rz(pi/8) out[4]; -rz(pi/16) out[5]; -rz(pi/32) out[6]; -rz(pi/64) out[7]; -rz(pi/128) out[8]; -rz(pi/256) out[9]; -cx out[9],out[2]; -rz(-pi/256) out[2]; -cx out[9],out[2]; -rz(pi/256) out[2]; -cx out[8],out[2]; -rz(-pi/128) out[2]; -cx out[8],out[2]; -rz(pi/128) out[2]; -cx out[7],out[2]; -rz(-pi/64) out[2]; -cx out[7],out[2]; -rz(pi/64) out[2]; -cx out[6],out[2]; -rz(-pi/32) out[2]; -cx out[6],out[2]; -rz(pi/32) out[2]; -cx out[5],out[2]; -rz(-pi/16) out[2]; -cx out[5],out[2]; -rz(pi/16) out[2]; -cx out[4],out[2]; -rz(-pi/8) out[2]; -cx out[4],out[2]; -rz(pi/8) out[2]; -cx out[3],out[2]; -rz(-pi/4) out[2]; -cx out[3],out[2]; -rz(pi/4) out[2]; -h out[2]; -rz(pi/4) out[2]; -rz(pi/8) out[3]; -rz(pi/16) out[4]; -rz(pi/32) out[5]; -rz(pi/64) out[6]; -rz(pi/128) out[7]; -rz(pi/256) out[8]; -rz(pi/512) out[9]; -cx out[9],out[1]; -rz(-pi/512) out[1]; -cx out[9],out[1]; -rz(pi/512) out[1]; -cx out[8],out[1]; -rz(-pi/256) out[1]; -cx out[8],out[1]; -rz(pi/256) out[1]; -cx out[7],out[1]; -rz(-pi/128) out[1]; -cx out[7],out[1]; -rz(pi/128) out[1]; -cx out[6],out[1]; -rz(-pi/64) out[1]; -cx out[6],out[1]; -rz(pi/64) out[1]; -cx out[5],out[1]; -rz(-pi/32) out[1]; -cx out[5],out[1]; -rz(pi/32) out[1]; -cx out[4],out[1]; -rz(-pi/16) out[1]; -cx out[4],out[1]; -rz(pi/16) out[1]; -cx out[3],out[1]; -rz(-pi/8) out[1]; -cx out[3],out[1]; -rz(pi/8) out[1]; -cx out[2],out[1]; -rz(-pi/4) out[1]; -cx out[2],out[1]; -rz(pi/4) out[1]; -h out[1]; -rz(pi/4) out[1]; -rz(pi/8) out[2]; -rz(pi/16) out[3]; -rz(pi/32) out[4]; -rz(pi/64) out[5]; -rz(pi/128) out[6]; -rz(pi/256) out[7]; -rz(pi/512) out[8]; -rz(pi/1024) out[9]; -cx out[9],out[0]; -rz(-pi/1024) out[0]; -cx out[9],out[0]; -rz(pi/1024) out[0]; -cx out[8],out[0]; -rz(-pi/512) out[0]; -cx out[8],out[0]; -rz(pi/512) out[0]; -cx out[7],out[0]; -rz(-pi/256) out[0]; -cx out[7],out[0]; -rz(pi/256) out[0]; -cx out[6],out[0]; -rz(-pi/128) out[0]; -cx out[6],out[0]; -rz(pi/128) out[0]; -cx out[5],out[0]; -rz(-pi/64) out[0]; -cx out[5],out[0]; -rz(pi/64) out[0]; -cx out[4],out[0]; -rz(-pi/32) out[0]; -cx out[4],out[0]; -rz(pi/32) out[0]; -cx out[3],out[0]; -rz(-pi/16) out[0]; -cx out[3],out[0]; -rz(pi/16) out[0]; -cx out[2],out[0]; -rz(-pi/8) out[0]; -cx out[2],out[0]; -rz(pi/8) out[0]; -cx out[1],out[0]; -rz(-pi/4) out[0]; -cx out[1],out[0]; -rz(pi/4) out[0]; -h out[0]; -cx b[7],out[0]; -rz(-4096*pi) out[0]; -cx b[7],out[0]; -rz(4096*pi) out[0]; -cx b[7],a[7]; -rz(-4096*pi) a[7]; -cx a[7],out[0]; -rz(4096*pi) out[0]; -cx a[7],out[0]; -rz(-4096*pi) out[0]; -cx b[7],a[7]; -rz(4096*pi) a[7]; -cx a[7],out[0]; -rz(-4096*pi) out[0]; -cx a[7],out[0]; -rz(4096*pi) out[0]; -cx b[6],out[0]; -rz(-2048*pi) out[0]; -cx b[6],out[0]; -rz(2048*pi) out[0]; -rz(2048*pi) b[7]; -cx b[7],out[1]; -rz(-2048*pi) out[1]; -cx b[7],out[1]; -rz(2048*pi) out[1]; -cx b[7],a[7]; -rz(-2048*pi) a[7]; -cx a[7],out[1]; -rz(2048*pi) out[1]; -cx a[7],out[1]; -rz(-2048*pi) out[1]; -cx b[7],a[7]; -rz(2048*pi) a[7]; -cx a[7],out[1]; -rz(-2048*pi) out[1]; -cx a[7],out[1]; -rz(2048*pi) out[1]; -rz(1024*pi) b[7]; -cx b[7],out[2]; -rz(-1024*pi) out[2]; -cx b[7],out[2]; -rz(1024*pi) out[2]; -cx b[7],a[7]; -rz(-1024*pi) a[7]; -cx a[7],out[2]; -rz(1024*pi) out[2]; -cx a[7],out[2]; -rz(-1024*pi) out[2]; -cx b[7],a[7]; -rz(1024*pi) a[7]; -cx a[7],out[2]; -rz(-1024*pi) out[2]; -cx a[7],out[2]; -rz(1024*pi) out[2]; -rz(512*pi) b[7]; -cx b[7],out[3]; -rz(-512*pi) out[3]; -cx b[7],out[3]; -rz(512*pi) out[3]; -cx b[7],a[7]; -rz(-512*pi) a[7]; -cx a[7],out[3]; -rz(512*pi) out[3]; -cx a[7],out[3]; -rz(-512*pi) out[3]; -cx b[7],a[7]; -rz(512*pi) a[7]; -cx a[7],out[3]; -rz(-512*pi) out[3]; -cx a[7],out[3]; -rz(512*pi) out[3]; -rz(256*pi) b[7]; -cx b[7],out[4]; -rz(-256*pi) out[4]; -cx b[7],out[4]; -rz(256*pi) out[4]; -cx b[7],a[7]; -rz(-256*pi) a[7]; -cx a[7],out[4]; -rz(256*pi) out[4]; -cx a[7],out[4]; -rz(-256*pi) out[4]; -cx b[7],a[7]; -rz(256*pi) a[7]; -cx a[7],out[4]; -rz(-256*pi) out[4]; -cx a[7],out[4]; -rz(256*pi) out[4]; -rz(128*pi) b[7]; -cx b[7],out[5]; -rz(-128*pi) out[5]; -cx b[7],out[5]; -rz(128*pi) out[5]; -cx b[7],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[5]; -rz(128*pi) out[5]; -cx a[7],out[5]; -rz(-128*pi) out[5]; -cx b[7],a[7]; -rz(128*pi) a[7]; -cx a[7],out[5]; -rz(-128*pi) out[5]; -cx a[7],out[5]; -rz(128*pi) out[5]; -rz(64*pi) b[7]; -cx b[7],out[6]; -rz(-64*pi) out[6]; -cx b[7],out[6]; -rz(64*pi) out[6]; -cx b[7],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[6]; -rz(64*pi) out[6]; -cx a[7],out[6]; -rz(-64*pi) out[6]; -cx b[7],a[7]; -rz(64*pi) a[7]; -cx a[7],out[6]; -rz(-64*pi) out[6]; -cx a[7],out[6]; -rz(64*pi) out[6]; -rz(32*pi) b[7]; -cx b[7],out[7]; -rz(-32*pi) out[7]; -cx b[7],out[7]; -rz(32*pi) out[7]; -cx b[7],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[7]; -rz(32*pi) out[7]; -cx a[7],out[7]; -rz(-32*pi) out[7]; -cx b[7],a[7]; -rz(32*pi) a[7]; -cx a[7],out[7]; -rz(-32*pi) out[7]; -cx a[7],out[7]; -rz(32*pi) out[7]; -rz(16*pi) b[7]; -cx b[7],out[8]; -rz(-16*pi) out[8]; -cx b[7],out[8]; -rz(16*pi) out[8]; -cx b[7],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[8]; -rz(16*pi) out[8]; -cx a[7],out[8]; -rz(-16*pi) out[8]; -cx b[7],a[7]; -rz(16*pi) a[7]; -cx a[7],out[8]; -rz(-16*pi) out[8]; -cx a[7],out[8]; -rz(16*pi) out[8]; -rz(8*pi) b[7]; -cx b[7],out[9]; -rz(-8*pi) out[9]; -cx b[7],out[9]; -rz(8*pi) out[9]; -cx b[7],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[9]; -rz(8*pi) out[9]; -cx a[7],out[9]; -rz(-8*pi) out[9]; -cx b[7],a[7]; -rz(8*pi) a[7]; -cx a[7],out[9]; -rz(-8*pi) out[9]; -cx a[7],out[9]; -rz(8*pi) out[9]; -rz(4*pi) b[7]; -cx b[7],out[10]; -rz(-4*pi) out[10]; -cx b[7],out[10]; -rz(4*pi) out[10]; -cx b[7],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[10]; -rz(4*pi) out[10]; -cx a[7],out[10]; -rz(-4*pi) out[10]; -cx b[7],a[7]; -rz(4*pi) a[7]; -cx a[7],out[10]; -rz(-4*pi) out[10]; -cx a[7],out[10]; -rz(4*pi) out[10]; -rz(2*pi) b[7]; -cx b[7],out[11]; -rz(-2*pi) out[11]; -cx b[7],out[11]; -rz(2*pi) out[11]; -cx b[7],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[11]; -rz(2*pi) out[11]; -cx a[7],out[11]; -rz(-2*pi) out[11]; -cx b[7],a[7]; -rz(2*pi) a[7]; -cx a[7],out[11]; -rz(-2*pi) out[11]; -cx a[7],out[11]; -rz(2*pi) out[11]; -rz(pi) b[7]; -cx b[7],out[12]; -rz(-pi) out[12]; -cx b[7],out[12]; -rz(pi) out[12]; -cx b[7],a[7]; -rz(-pi) a[7]; -cx a[7],out[12]; -rz(pi) out[12]; -cx a[7],out[12]; -rz(-pi) out[12]; -cx b[7],a[7]; -rz(pi) a[7]; -cx a[7],out[12]; -rz(-pi) out[12]; -cx a[7],out[12]; -rz(pi) out[12]; -rz(pi/2) b[7]; -cx b[7],out[13]; -rz(-pi/2) out[13]; -cx b[7],out[13]; -rz(pi/2) out[13]; -cx b[7],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[13]; -rz(pi/2) out[13]; -cx a[7],out[13]; -rz(-pi/2) out[13]; -cx b[7],a[7]; -rz(pi/2) a[7]; -cx a[7],out[13]; -rz(-pi/2) out[13]; -cx a[7],out[13]; -rz(pi/2) out[13]; -rz(pi/4) b[7]; -cx b[7],out[14]; -rz(-pi/4) out[14]; -cx b[7],out[14]; -rz(pi/4) out[14]; -cx b[7],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[14]; -rz(pi/4) out[14]; -cx a[7],out[14]; -rz(-pi/4) out[14]; -cx b[7],a[7]; -rz(pi/4) a[7]; -cx a[7],out[14]; -rz(-pi/4) out[14]; -cx a[7],out[14]; -rz(pi/4) out[14]; -rz(pi/8) b[7]; -cx b[7],out[15]; -rz(-pi/8) out[15]; -cx b[7],out[15]; -rz(pi/8) out[15]; -cx b[7],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[15]; -rz(pi/8) out[15]; -cx a[7],out[15]; -rz(-pi/8) out[15]; -cx b[7],a[7]; -rz(pi/8) a[7]; -cx a[7],out[15]; -rz(-pi/8) out[15]; -cx a[7],out[15]; -rz(pi/8) out[15]; -cx b[6],a[7]; -rz(-2048*pi) a[7]; -cx a[7],out[0]; -rz(2048*pi) out[0]; -cx a[7],out[0]; -rz(-2048*pi) out[0]; -cx b[6],a[7]; -rz(2048*pi) a[7]; -cx a[7],out[0]; -rz(-2048*pi) out[0]; -cx a[7],out[0]; -rz(2048*pi) out[0]; -cx b[5],out[0]; -rz(-1024*pi) out[0]; -cx b[5],out[0]; -rz(1024*pi) out[0]; -rz(1024*pi) b[6]; -cx b[6],out[1]; -rz(-1024*pi) out[1]; -cx b[6],out[1]; -rz(1024*pi) out[1]; -cx b[6],a[7]; -rz(-1024*pi) a[7]; -cx a[7],out[1]; -rz(1024*pi) out[1]; -cx a[7],out[1]; -rz(-1024*pi) out[1]; -cx b[6],a[7]; -rz(1024*pi) a[7]; -cx a[7],out[1]; -rz(-1024*pi) out[1]; -cx a[7],out[1]; -rz(1024*pi) out[1]; -rz(512*pi) b[6]; -cx b[6],out[2]; -rz(-512*pi) out[2]; -cx b[6],out[2]; -rz(512*pi) out[2]; -cx b[6],a[7]; -rz(-512*pi) a[7]; -cx a[7],out[2]; -rz(512*pi) out[2]; -cx a[7],out[2]; -rz(-512*pi) out[2]; -cx b[6],a[7]; -rz(512*pi) a[7]; -cx a[7],out[2]; -rz(-512*pi) out[2]; -cx a[7],out[2]; -rz(512*pi) out[2]; -rz(256*pi) b[6]; -cx b[6],out[3]; -rz(-256*pi) out[3]; -cx b[6],out[3]; -rz(256*pi) out[3]; -cx b[6],a[7]; -rz(-256*pi) a[7]; -cx a[7],out[3]; -rz(256*pi) out[3]; -cx a[7],out[3]; -rz(-256*pi) out[3]; -cx b[6],a[7]; -rz(256*pi) a[7]; -cx a[7],out[3]; -rz(-256*pi) out[3]; -cx a[7],out[3]; -rz(256*pi) out[3]; -rz(128*pi) b[6]; -cx b[6],out[4]; -rz(-128*pi) out[4]; -cx b[6],out[4]; -rz(128*pi) out[4]; -cx b[6],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[4]; -rz(128*pi) out[4]; -cx a[7],out[4]; -rz(-128*pi) out[4]; -cx b[6],a[7]; -rz(128*pi) a[7]; -cx a[7],out[4]; -rz(-128*pi) out[4]; -cx a[7],out[4]; -rz(128*pi) out[4]; -rz(64*pi) b[6]; -cx b[6],out[5]; -rz(-64*pi) out[5]; -cx b[6],out[5]; -rz(64*pi) out[5]; -cx b[6],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[5]; -rz(64*pi) out[5]; -cx a[7],out[5]; -rz(-64*pi) out[5]; -cx b[6],a[7]; -rz(64*pi) a[7]; -cx a[7],out[5]; -rz(-64*pi) out[5]; -cx a[7],out[5]; -rz(64*pi) out[5]; -rz(32*pi) b[6]; -cx b[6],out[6]; -rz(-32*pi) out[6]; -cx b[6],out[6]; -rz(32*pi) out[6]; -cx b[6],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[6]; -rz(32*pi) out[6]; -cx a[7],out[6]; -rz(-32*pi) out[6]; -cx b[6],a[7]; -rz(32*pi) a[7]; -cx a[7],out[6]; -rz(-32*pi) out[6]; -cx a[7],out[6]; -rz(32*pi) out[6]; -rz(16*pi) b[6]; -cx b[6],out[7]; -rz(-16*pi) out[7]; -cx b[6],out[7]; -rz(16*pi) out[7]; -cx b[6],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[7]; -rz(16*pi) out[7]; -cx a[7],out[7]; -rz(-16*pi) out[7]; -cx b[6],a[7]; -rz(16*pi) a[7]; -cx a[7],out[7]; -rz(-16*pi) out[7]; -cx a[7],out[7]; -rz(16*pi) out[7]; -rz(8*pi) b[6]; -cx b[6],out[8]; -rz(-8*pi) out[8]; -cx b[6],out[8]; -rz(8*pi) out[8]; -cx b[6],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[8]; -rz(8*pi) out[8]; -cx a[7],out[8]; -rz(-8*pi) out[8]; -cx b[6],a[7]; -rz(8*pi) a[7]; -cx a[7],out[8]; -rz(-8*pi) out[8]; -cx a[7],out[8]; -rz(8*pi) out[8]; -rz(4*pi) b[6]; -cx b[6],out[9]; -rz(-4*pi) out[9]; -cx b[6],out[9]; -rz(4*pi) out[9]; -cx b[6],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[9]; -rz(4*pi) out[9]; -cx a[7],out[9]; -rz(-4*pi) out[9]; -cx b[6],a[7]; -rz(4*pi) a[7]; -cx a[7],out[9]; -rz(-4*pi) out[9]; -cx a[7],out[9]; -rz(4*pi) out[9]; -rz(2*pi) b[6]; -cx b[6],out[10]; -rz(-2*pi) out[10]; -cx b[6],out[10]; -rz(2*pi) out[10]; -cx b[6],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[10]; -rz(2*pi) out[10]; -cx a[7],out[10]; -rz(-2*pi) out[10]; -cx b[6],a[7]; -rz(2*pi) a[7]; -cx a[7],out[10]; -rz(-2*pi) out[10]; -cx a[7],out[10]; -rz(2*pi) out[10]; -rz(pi) b[6]; -cx b[6],out[11]; -rz(-pi) out[11]; -cx b[6],out[11]; -rz(pi) out[11]; -cx b[6],a[7]; -rz(-pi) a[7]; -cx a[7],out[11]; -rz(pi) out[11]; -cx a[7],out[11]; -rz(-pi) out[11]; -cx b[6],a[7]; -rz(pi) a[7]; -cx a[7],out[11]; -rz(-pi) out[11]; -cx a[7],out[11]; -rz(pi) out[11]; -rz(pi/2) b[6]; -cx b[6],out[12]; -rz(-pi/2) out[12]; -cx b[6],out[12]; -rz(pi/2) out[12]; -cx b[6],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[12]; -rz(pi/2) out[12]; -cx a[7],out[12]; -rz(-pi/2) out[12]; -cx b[6],a[7]; -rz(pi/2) a[7]; -cx a[7],out[12]; -rz(-pi/2) out[12]; -cx a[7],out[12]; -rz(pi/2) out[12]; -rz(pi/4) b[6]; -cx b[6],out[13]; -rz(-pi/4) out[13]; -cx b[6],out[13]; -rz(pi/4) out[13]; -cx b[6],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[13]; -rz(pi/4) out[13]; -cx a[7],out[13]; -rz(-pi/4) out[13]; -cx b[6],a[7]; -rz(pi/4) a[7]; -cx a[7],out[13]; -rz(-pi/4) out[13]; -cx a[7],out[13]; -rz(pi/4) out[13]; -rz(pi/8) b[6]; -cx b[6],out[14]; -rz(-pi/8) out[14]; -cx b[6],out[14]; -rz(pi/8) out[14]; -cx b[6],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[14]; -rz(pi/8) out[14]; -cx a[7],out[14]; -rz(-pi/8) out[14]; -cx b[6],a[7]; -rz(pi/8) a[7]; -cx a[7],out[14]; -rz(-pi/8) out[14]; -cx a[7],out[14]; -rz(pi/8) out[14]; -rz(pi/16) b[6]; -cx b[6],out[15]; -rz(-pi/16) out[15]; -cx b[6],out[15]; -rz(pi/16) out[15]; -cx b[6],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[15]; -rz(pi/16) out[15]; -cx a[7],out[15]; -rz(-pi/16) out[15]; -cx b[6],a[7]; -rz(pi/16) a[7]; -cx a[7],out[15]; -rz(-pi/16) out[15]; -cx a[7],out[15]; -rz(pi/16) out[15]; -cx b[5],a[7]; -rz(-1024*pi) a[7]; -cx a[7],out[0]; -rz(1024*pi) out[0]; -cx a[7],out[0]; -rz(-1024*pi) out[0]; -cx b[5],a[7]; -rz(1024*pi) a[7]; -cx a[7],out[0]; -rz(-1024*pi) out[0]; -cx a[7],out[0]; -rz(1024*pi) out[0]; -cx b[4],out[0]; -rz(-512*pi) out[0]; -cx b[4],out[0]; -rz(512*pi) out[0]; -rz(512*pi) b[5]; -cx b[5],out[1]; -rz(-512*pi) out[1]; -cx b[5],out[1]; -rz(512*pi) out[1]; -cx b[5],a[7]; -rz(-512*pi) a[7]; -cx a[7],out[1]; -rz(512*pi) out[1]; -cx a[7],out[1]; -rz(-512*pi) out[1]; -cx b[5],a[7]; -rz(512*pi) a[7]; -cx a[7],out[1]; -rz(-512*pi) out[1]; -cx a[7],out[1]; -rz(512*pi) out[1]; -rz(256*pi) b[5]; -cx b[5],out[2]; -rz(-256*pi) out[2]; -cx b[5],out[2]; -rz(256*pi) out[2]; -cx b[5],a[7]; -rz(-256*pi) a[7]; -cx a[7],out[2]; -rz(256*pi) out[2]; -cx a[7],out[2]; -rz(-256*pi) out[2]; -cx b[5],a[7]; -rz(256*pi) a[7]; -cx a[7],out[2]; -rz(-256*pi) out[2]; -cx a[7],out[2]; -rz(256*pi) out[2]; -rz(128*pi) b[5]; -cx b[5],out[3]; -rz(-128*pi) out[3]; -cx b[5],out[3]; -rz(128*pi) out[3]; -cx b[5],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[3]; -rz(128*pi) out[3]; -cx a[7],out[3]; -rz(-128*pi) out[3]; -cx b[5],a[7]; -rz(128*pi) a[7]; -cx a[7],out[3]; -rz(-128*pi) out[3]; -cx a[7],out[3]; -rz(128*pi) out[3]; -rz(64*pi) b[5]; -cx b[5],out[4]; -rz(-64*pi) out[4]; -cx b[5],out[4]; -rz(64*pi) out[4]; -cx b[5],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[4]; -rz(64*pi) out[4]; -cx a[7],out[4]; -rz(-64*pi) out[4]; -cx b[5],a[7]; -rz(64*pi) a[7]; -cx a[7],out[4]; -rz(-64*pi) out[4]; -cx a[7],out[4]; -rz(64*pi) out[4]; -rz(32*pi) b[5]; -cx b[5],out[5]; -rz(-32*pi) out[5]; -cx b[5],out[5]; -rz(32*pi) out[5]; -cx b[5],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[5]; -rz(32*pi) out[5]; -cx a[7],out[5]; -rz(-32*pi) out[5]; -cx b[5],a[7]; -rz(32*pi) a[7]; -cx a[7],out[5]; -rz(-32*pi) out[5]; -cx a[7],out[5]; -rz(32*pi) out[5]; -rz(16*pi) b[5]; -cx b[5],out[6]; -rz(-16*pi) out[6]; -cx b[5],out[6]; -rz(16*pi) out[6]; -cx b[5],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[6]; -rz(16*pi) out[6]; -cx a[7],out[6]; -rz(-16*pi) out[6]; -cx b[5],a[7]; -rz(16*pi) a[7]; -cx a[7],out[6]; -rz(-16*pi) out[6]; -cx a[7],out[6]; -rz(16*pi) out[6]; -rz(8*pi) b[5]; -cx b[5],out[7]; -rz(-8*pi) out[7]; -cx b[5],out[7]; -rz(8*pi) out[7]; -cx b[5],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[7]; -rz(8*pi) out[7]; -cx a[7],out[7]; -rz(-8*pi) out[7]; -cx b[5],a[7]; -rz(8*pi) a[7]; -cx a[7],out[7]; -rz(-8*pi) out[7]; -cx a[7],out[7]; -rz(8*pi) out[7]; -rz(4*pi) b[5]; -cx b[5],out[8]; -rz(-4*pi) out[8]; -cx b[5],out[8]; -rz(4*pi) out[8]; -cx b[5],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[8]; -rz(4*pi) out[8]; -cx a[7],out[8]; -rz(-4*pi) out[8]; -cx b[5],a[7]; -rz(4*pi) a[7]; -cx a[7],out[8]; -rz(-4*pi) out[8]; -cx a[7],out[8]; -rz(4*pi) out[8]; -rz(2*pi) b[5]; -cx b[5],out[9]; -rz(-2*pi) out[9]; -cx b[5],out[9]; -rz(2*pi) out[9]; -cx b[5],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[9]; -rz(2*pi) out[9]; -cx a[7],out[9]; -rz(-2*pi) out[9]; -cx b[5],a[7]; -rz(2*pi) a[7]; -cx a[7],out[9]; -rz(-2*pi) out[9]; -cx a[7],out[9]; -rz(2*pi) out[9]; -rz(pi) b[5]; -cx b[5],out[10]; -rz(-pi) out[10]; -cx b[5],out[10]; -rz(pi) out[10]; -cx b[5],a[7]; -rz(-pi) a[7]; -cx a[7],out[10]; -rz(pi) out[10]; -cx a[7],out[10]; -rz(-pi) out[10]; -cx b[5],a[7]; -rz(pi) a[7]; -cx a[7],out[10]; -rz(-pi) out[10]; -cx a[7],out[10]; -rz(pi) out[10]; -rz(pi/2) b[5]; -cx b[5],out[11]; -rz(-pi/2) out[11]; -cx b[5],out[11]; -rz(pi/2) out[11]; -cx b[5],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[11]; -rz(pi/2) out[11]; -cx a[7],out[11]; -rz(-pi/2) out[11]; -cx b[5],a[7]; -rz(pi/2) a[7]; -cx a[7],out[11]; -rz(-pi/2) out[11]; -cx a[7],out[11]; -rz(pi/2) out[11]; -rz(pi/4) b[5]; -cx b[5],out[12]; -rz(-pi/4) out[12]; -cx b[5],out[12]; -rz(pi/4) out[12]; -cx b[5],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[12]; -rz(pi/4) out[12]; -cx a[7],out[12]; -rz(-pi/4) out[12]; -cx b[5],a[7]; -rz(pi/4) a[7]; -cx a[7],out[12]; -rz(-pi/4) out[12]; -cx a[7],out[12]; -rz(pi/4) out[12]; -rz(pi/8) b[5]; -cx b[5],out[13]; -rz(-pi/8) out[13]; -cx b[5],out[13]; -rz(pi/8) out[13]; -cx b[5],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[13]; -rz(pi/8) out[13]; -cx a[7],out[13]; -rz(-pi/8) out[13]; -cx b[5],a[7]; -rz(pi/8) a[7]; -cx a[7],out[13]; -rz(-pi/8) out[13]; -cx a[7],out[13]; -rz(pi/8) out[13]; -rz(pi/16) b[5]; -cx b[5],out[14]; -rz(-pi/16) out[14]; -cx b[5],out[14]; -rz(pi/16) out[14]; -cx b[5],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[14]; -rz(pi/16) out[14]; -cx a[7],out[14]; -rz(-pi/16) out[14]; -cx b[5],a[7]; -rz(pi/16) a[7]; -cx a[7],out[14]; -rz(-pi/16) out[14]; -cx a[7],out[14]; -rz(pi/16) out[14]; -rz(pi/32) b[5]; -cx b[5],out[15]; -rz(-pi/32) out[15]; -cx b[5],out[15]; -rz(pi/32) out[15]; -cx b[5],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[15]; -rz(pi/32) out[15]; -cx a[7],out[15]; -rz(-pi/32) out[15]; -cx b[5],a[7]; -rz(pi/32) a[7]; -cx a[7],out[15]; -rz(-pi/32) out[15]; -cx a[7],out[15]; -rz(pi/32) out[15]; -cx b[4],a[7]; -rz(-512*pi) a[7]; -cx a[7],out[0]; -rz(512*pi) out[0]; -cx a[7],out[0]; -rz(-512*pi) out[0]; -cx b[4],a[7]; -rz(512*pi) a[7]; -cx a[7],out[0]; -rz(-512*pi) out[0]; -cx a[7],out[0]; -rz(512*pi) out[0]; -cx b[3],out[0]; -rz(-256*pi) out[0]; -cx b[3],out[0]; -rz(256*pi) out[0]; -rz(256*pi) b[4]; -cx b[4],out[1]; -rz(-256*pi) out[1]; -cx b[4],out[1]; -rz(256*pi) out[1]; -cx b[4],a[7]; -rz(-256*pi) a[7]; -cx a[7],out[1]; -rz(256*pi) out[1]; -cx a[7],out[1]; -rz(-256*pi) out[1]; -cx b[4],a[7]; -rz(256*pi) a[7]; -cx a[7],out[1]; -rz(-256*pi) out[1]; -cx a[7],out[1]; -rz(256*pi) out[1]; -rz(128*pi) b[4]; -cx b[4],out[2]; -rz(-128*pi) out[2]; -cx b[4],out[2]; -rz(128*pi) out[2]; -cx b[4],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[2]; -rz(128*pi) out[2]; -cx a[7],out[2]; -rz(-128*pi) out[2]; -cx b[4],a[7]; -rz(128*pi) a[7]; -cx a[7],out[2]; -rz(-128*pi) out[2]; -cx a[7],out[2]; -rz(128*pi) out[2]; -rz(64*pi) b[4]; -cx b[4],out[3]; -rz(-64*pi) out[3]; -cx b[4],out[3]; -rz(64*pi) out[3]; -cx b[4],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[3]; -rz(64*pi) out[3]; -cx a[7],out[3]; -rz(-64*pi) out[3]; -cx b[4],a[7]; -rz(64*pi) a[7]; -cx a[7],out[3]; -rz(-64*pi) out[3]; -cx a[7],out[3]; -rz(64*pi) out[3]; -rz(32*pi) b[4]; -cx b[4],out[4]; -rz(-32*pi) out[4]; -cx b[4],out[4]; -rz(32*pi) out[4]; -cx b[4],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[4]; -rz(32*pi) out[4]; -cx a[7],out[4]; -rz(-32*pi) out[4]; -cx b[4],a[7]; -rz(32*pi) a[7]; -cx a[7],out[4]; -rz(-32*pi) out[4]; -cx a[7],out[4]; -rz(32*pi) out[4]; -rz(16*pi) b[4]; -cx b[4],out[5]; -rz(-16*pi) out[5]; -cx b[4],out[5]; -rz(16*pi) out[5]; -cx b[4],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[5]; -rz(16*pi) out[5]; -cx a[7],out[5]; -rz(-16*pi) out[5]; -cx b[4],a[7]; -rz(16*pi) a[7]; -cx a[7],out[5]; -rz(-16*pi) out[5]; -cx a[7],out[5]; -rz(16*pi) out[5]; -rz(8*pi) b[4]; -cx b[4],out[6]; -rz(-8*pi) out[6]; -cx b[4],out[6]; -rz(8*pi) out[6]; -cx b[4],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[6]; -rz(8*pi) out[6]; -cx a[7],out[6]; -rz(-8*pi) out[6]; -cx b[4],a[7]; -rz(8*pi) a[7]; -cx a[7],out[6]; -rz(-8*pi) out[6]; -cx a[7],out[6]; -rz(8*pi) out[6]; -rz(4*pi) b[4]; -cx b[4],out[7]; -rz(-4*pi) out[7]; -cx b[4],out[7]; -rz(4*pi) out[7]; -cx b[4],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[7]; -rz(4*pi) out[7]; -cx a[7],out[7]; -rz(-4*pi) out[7]; -cx b[4],a[7]; -rz(4*pi) a[7]; -cx a[7],out[7]; -rz(-4*pi) out[7]; -cx a[7],out[7]; -rz(4*pi) out[7]; -rz(2*pi) b[4]; -cx b[4],out[8]; -rz(-2*pi) out[8]; -cx b[4],out[8]; -rz(2*pi) out[8]; -cx b[4],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[8]; -rz(2*pi) out[8]; -cx a[7],out[8]; -rz(-2*pi) out[8]; -cx b[4],a[7]; -rz(2*pi) a[7]; -cx a[7],out[8]; -rz(-2*pi) out[8]; -cx a[7],out[8]; -rz(2*pi) out[8]; -rz(pi) b[4]; -cx b[4],out[9]; -rz(-pi) out[9]; -cx b[4],out[9]; -rz(pi) out[9]; -cx b[4],a[7]; -rz(-pi) a[7]; -cx a[7],out[9]; -rz(pi) out[9]; -cx a[7],out[9]; -rz(-pi) out[9]; -cx b[4],a[7]; -rz(pi) a[7]; -cx a[7],out[9]; -rz(-pi) out[9]; -cx a[7],out[9]; -rz(pi) out[9]; -rz(pi/2) b[4]; -cx b[4],out[10]; -rz(-pi/2) out[10]; -cx b[4],out[10]; -rz(pi/2) out[10]; -cx b[4],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[10]; -rz(pi/2) out[10]; -cx a[7],out[10]; -rz(-pi/2) out[10]; -cx b[4],a[7]; -rz(pi/2) a[7]; -cx a[7],out[10]; -rz(-pi/2) out[10]; -cx a[7],out[10]; -rz(pi/2) out[10]; -rz(pi/4) b[4]; -cx b[4],out[11]; -rz(-pi/4) out[11]; -cx b[4],out[11]; -rz(pi/4) out[11]; -cx b[4],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[11]; -rz(pi/4) out[11]; -cx a[7],out[11]; -rz(-pi/4) out[11]; -cx b[4],a[7]; -rz(pi/4) a[7]; -cx a[7],out[11]; -rz(-pi/4) out[11]; -cx a[7],out[11]; -rz(pi/4) out[11]; -rz(pi/8) b[4]; -cx b[4],out[12]; -rz(-pi/8) out[12]; -cx b[4],out[12]; -rz(pi/8) out[12]; -cx b[4],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[12]; -rz(pi/8) out[12]; -cx a[7],out[12]; -rz(-pi/8) out[12]; -cx b[4],a[7]; -rz(pi/8) a[7]; -cx a[7],out[12]; -rz(-pi/8) out[12]; -cx a[7],out[12]; -rz(pi/8) out[12]; -rz(pi/16) b[4]; -cx b[4],out[13]; -rz(-pi/16) out[13]; -cx b[4],out[13]; -rz(pi/16) out[13]; -cx b[4],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[13]; -rz(pi/16) out[13]; -cx a[7],out[13]; -rz(-pi/16) out[13]; -cx b[4],a[7]; -rz(pi/16) a[7]; -cx a[7],out[13]; -rz(-pi/16) out[13]; -cx a[7],out[13]; -rz(pi/16) out[13]; -rz(pi/32) b[4]; -cx b[4],out[14]; -rz(-pi/32) out[14]; -cx b[4],out[14]; -rz(pi/32) out[14]; -cx b[4],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[14]; -rz(pi/32) out[14]; -cx a[7],out[14]; -rz(-pi/32) out[14]; -cx b[4],a[7]; -rz(pi/32) a[7]; -cx a[7],out[14]; -rz(-pi/32) out[14]; -cx a[7],out[14]; -rz(pi/32) out[14]; -rz(pi/64) b[4]; -cx b[4],out[15]; -rz(-pi/64) out[15]; -cx b[4],out[15]; -rz(pi/64) out[15]; -cx b[4],a[7]; -rz(-pi/64) a[7]; -cx a[7],out[15]; -rz(pi/64) out[15]; -cx a[7],out[15]; -rz(-pi/64) out[15]; -cx b[4],a[7]; -rz(pi/64) a[7]; -cx a[7],out[15]; -rz(-pi/64) out[15]; -cx a[7],out[15]; -rz(pi/64) out[15]; -cx b[3],a[7]; -rz(-256*pi) a[7]; -cx a[7],out[0]; -rz(256*pi) out[0]; -cx a[7],out[0]; -rz(-256*pi) out[0]; -cx b[3],a[7]; -rz(256*pi) a[7]; -cx a[7],out[0]; -rz(-256*pi) out[0]; -cx a[7],out[0]; -rz(256*pi) out[0]; -cx b[2],out[0]; -rz(-128*pi) out[0]; -cx b[2],out[0]; -rz(128*pi) out[0]; -rz(128*pi) b[3]; -cx b[3],out[1]; -rz(-128*pi) out[1]; -cx b[3],out[1]; -rz(128*pi) out[1]; -cx b[3],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[1]; -rz(128*pi) out[1]; -cx a[7],out[1]; -rz(-128*pi) out[1]; -cx b[3],a[7]; -rz(128*pi) a[7]; -cx a[7],out[1]; -rz(-128*pi) out[1]; -cx a[7],out[1]; -rz(128*pi) out[1]; -rz(64*pi) b[3]; -cx b[3],out[2]; -rz(-64*pi) out[2]; -cx b[3],out[2]; -rz(64*pi) out[2]; -cx b[3],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[2]; -rz(64*pi) out[2]; -cx a[7],out[2]; -rz(-64*pi) out[2]; -cx b[3],a[7]; -rz(64*pi) a[7]; -cx a[7],out[2]; -rz(-64*pi) out[2]; -cx a[7],out[2]; -rz(64*pi) out[2]; -rz(32*pi) b[3]; -cx b[3],out[3]; -rz(-32*pi) out[3]; -cx b[3],out[3]; -rz(32*pi) out[3]; -cx b[3],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[3]; -rz(32*pi) out[3]; -cx a[7],out[3]; -rz(-32*pi) out[3]; -cx b[3],a[7]; -rz(32*pi) a[7]; -cx a[7],out[3]; -rz(-32*pi) out[3]; -cx a[7],out[3]; -rz(32*pi) out[3]; -rz(16*pi) b[3]; -cx b[3],out[4]; -rz(-16*pi) out[4]; -cx b[3],out[4]; -rz(16*pi) out[4]; -cx b[3],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[4]; -rz(16*pi) out[4]; -cx a[7],out[4]; -rz(-16*pi) out[4]; -cx b[3],a[7]; -rz(16*pi) a[7]; -cx a[7],out[4]; -rz(-16*pi) out[4]; -cx a[7],out[4]; -rz(16*pi) out[4]; -rz(8*pi) b[3]; -cx b[3],out[5]; -rz(-8*pi) out[5]; -cx b[3],out[5]; -rz(8*pi) out[5]; -cx b[3],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[5]; -rz(8*pi) out[5]; -cx a[7],out[5]; -rz(-8*pi) out[5]; -cx b[3],a[7]; -rz(8*pi) a[7]; -cx a[7],out[5]; -rz(-8*pi) out[5]; -cx a[7],out[5]; -rz(8*pi) out[5]; -rz(4*pi) b[3]; -cx b[3],out[6]; -rz(-4*pi) out[6]; -cx b[3],out[6]; -rz(4*pi) out[6]; -cx b[3],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[6]; -rz(4*pi) out[6]; -cx a[7],out[6]; -rz(-4*pi) out[6]; -cx b[3],a[7]; -rz(4*pi) a[7]; -cx a[7],out[6]; -rz(-4*pi) out[6]; -cx a[7],out[6]; -rz(4*pi) out[6]; -rz(2*pi) b[3]; -cx b[3],out[7]; -rz(-2*pi) out[7]; -cx b[3],out[7]; -rz(2*pi) out[7]; -cx b[3],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[7]; -rz(2*pi) out[7]; -cx a[7],out[7]; -rz(-2*pi) out[7]; -cx b[3],a[7]; -rz(2*pi) a[7]; -cx a[7],out[7]; -rz(-2*pi) out[7]; -cx a[7],out[7]; -rz(2*pi) out[7]; -rz(pi) b[3]; -cx b[3],out[8]; -rz(-pi) out[8]; -cx b[3],out[8]; -rz(pi) out[8]; -cx b[3],a[7]; -rz(-pi) a[7]; -cx a[7],out[8]; -rz(pi) out[8]; -cx a[7],out[8]; -rz(-pi) out[8]; -cx b[3],a[7]; -rz(pi) a[7]; -cx a[7],out[8]; -rz(-pi) out[8]; -cx a[7],out[8]; -rz(pi) out[8]; -rz(pi/2) b[3]; -cx b[3],out[9]; -rz(-pi/2) out[9]; -cx b[3],out[9]; -rz(pi/2) out[9]; -cx b[3],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[9]; -rz(pi/2) out[9]; -cx a[7],out[9]; -rz(-pi/2) out[9]; -cx b[3],a[7]; -rz(pi/2) a[7]; -cx a[7],out[9]; -rz(-pi/2) out[9]; -cx a[7],out[9]; -rz(pi/2) out[9]; -rz(pi/4) b[3]; -cx b[3],out[10]; -rz(-pi/4) out[10]; -cx b[3],out[10]; -rz(pi/4) out[10]; -cx b[3],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[10]; -rz(pi/4) out[10]; -cx a[7],out[10]; -rz(-pi/4) out[10]; -cx b[3],a[7]; -rz(pi/4) a[7]; -cx a[7],out[10]; -rz(-pi/4) out[10]; -cx a[7],out[10]; -rz(pi/4) out[10]; -rz(pi/8) b[3]; -cx b[3],out[11]; -rz(-pi/8) out[11]; -cx b[3],out[11]; -rz(pi/8) out[11]; -cx b[3],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[11]; -rz(pi/8) out[11]; -cx a[7],out[11]; -rz(-pi/8) out[11]; -cx b[3],a[7]; -rz(pi/8) a[7]; -cx a[7],out[11]; -rz(-pi/8) out[11]; -cx a[7],out[11]; -rz(pi/8) out[11]; -rz(pi/16) b[3]; -cx b[3],out[12]; -rz(-pi/16) out[12]; -cx b[3],out[12]; -rz(pi/16) out[12]; -cx b[3],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[12]; -rz(pi/16) out[12]; -cx a[7],out[12]; -rz(-pi/16) out[12]; -cx b[3],a[7]; -rz(pi/16) a[7]; -cx a[7],out[12]; -rz(-pi/16) out[12]; -cx a[7],out[12]; -rz(pi/16) out[12]; -rz(pi/32) b[3]; -cx b[3],out[13]; -rz(-pi/32) out[13]; -cx b[3],out[13]; -rz(pi/32) out[13]; -cx b[3],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[13]; -rz(pi/32) out[13]; -cx a[7],out[13]; -rz(-pi/32) out[13]; -cx b[3],a[7]; -rz(pi/32) a[7]; -cx a[7],out[13]; -rz(-pi/32) out[13]; -cx a[7],out[13]; -rz(pi/32) out[13]; -rz(pi/64) b[3]; -cx b[3],out[14]; -rz(-pi/64) out[14]; -cx b[3],out[14]; -rz(pi/64) out[14]; -cx b[3],a[7]; -rz(-pi/64) a[7]; -cx a[7],out[14]; -rz(pi/64) out[14]; -cx a[7],out[14]; -rz(-pi/64) out[14]; -cx b[3],a[7]; -rz(pi/64) a[7]; -cx a[7],out[14]; -rz(-pi/64) out[14]; -cx a[7],out[14]; -rz(pi/64) out[14]; -rz(pi/128) b[3]; -cx b[3],out[15]; -rz(-pi/128) out[15]; -cx b[3],out[15]; -rz(pi/128) out[15]; -cx b[3],a[7]; -rz(-pi/128) a[7]; -cx a[7],out[15]; -rz(pi/128) out[15]; -cx a[7],out[15]; -rz(-pi/128) out[15]; -cx b[3],a[7]; -rz(pi/128) a[7]; -cx a[7],out[15]; -rz(-pi/128) out[15]; -cx a[7],out[15]; -rz(pi/128) out[15]; -cx b[2],a[7]; -rz(-128*pi) a[7]; -cx a[7],out[0]; -rz(128*pi) out[0]; -cx a[7],out[0]; -rz(-128*pi) out[0]; -cx b[2],a[7]; -rz(128*pi) a[7]; -cx a[7],out[0]; -rz(-128*pi) out[0]; -cx a[7],out[0]; -rz(128*pi) out[0]; -cx b[1],out[0]; -rz(-64*pi) out[0]; -cx b[1],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[2]; -cx b[2],out[1]; -rz(-64*pi) out[1]; -cx b[2],out[1]; -rz(64*pi) out[1]; -cx b[2],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[1]; -rz(64*pi) out[1]; -cx a[7],out[1]; -rz(-64*pi) out[1]; -cx b[2],a[7]; -rz(64*pi) a[7]; -cx a[7],out[1]; -rz(-64*pi) out[1]; -cx a[7],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[2]; -cx b[2],out[2]; -rz(-32*pi) out[2]; -cx b[2],out[2]; -rz(32*pi) out[2]; -cx b[2],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[2]; -rz(32*pi) out[2]; -cx a[7],out[2]; -rz(-32*pi) out[2]; -cx b[2],a[7]; -rz(32*pi) a[7]; -cx a[7],out[2]; -rz(-32*pi) out[2]; -cx a[7],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[2]; -cx b[2],out[3]; -rz(-16*pi) out[3]; -cx b[2],out[3]; -rz(16*pi) out[3]; -cx b[2],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[3]; -rz(16*pi) out[3]; -cx a[7],out[3]; -rz(-16*pi) out[3]; -cx b[2],a[7]; -rz(16*pi) a[7]; -cx a[7],out[3]; -rz(-16*pi) out[3]; -cx a[7],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[2]; -cx b[2],out[4]; -rz(-8*pi) out[4]; -cx b[2],out[4]; -rz(8*pi) out[4]; -cx b[2],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[4]; -rz(8*pi) out[4]; -cx a[7],out[4]; -rz(-8*pi) out[4]; -cx b[2],a[7]; -rz(8*pi) a[7]; -cx a[7],out[4]; -rz(-8*pi) out[4]; -cx a[7],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[2]; -cx b[2],out[5]; -rz(-4*pi) out[5]; -cx b[2],out[5]; -rz(4*pi) out[5]; -cx b[2],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[5]; -rz(4*pi) out[5]; -cx a[7],out[5]; -rz(-4*pi) out[5]; -cx b[2],a[7]; -rz(4*pi) a[7]; -cx a[7],out[5]; -rz(-4*pi) out[5]; -cx a[7],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[2]; -cx b[2],out[6]; -rz(-2*pi) out[6]; -cx b[2],out[6]; -rz(2*pi) out[6]; -cx b[2],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[6]; -rz(2*pi) out[6]; -cx a[7],out[6]; -rz(-2*pi) out[6]; -cx b[2],a[7]; -rz(2*pi) a[7]; -cx a[7],out[6]; -rz(-2*pi) out[6]; -cx a[7],out[6]; -rz(2*pi) out[6]; -rz(pi) b[2]; -cx b[2],out[7]; -rz(-pi) out[7]; -cx b[2],out[7]; -rz(pi) out[7]; -cx b[2],a[7]; -rz(-pi) a[7]; -cx a[7],out[7]; -rz(pi) out[7]; -cx a[7],out[7]; -rz(-pi) out[7]; -cx b[2],a[7]; -rz(pi) a[7]; -cx a[7],out[7]; -rz(-pi) out[7]; -cx a[7],out[7]; -rz(pi) out[7]; -rz(pi/2) b[2]; -cx b[2],out[8]; -rz(-pi/2) out[8]; -cx b[2],out[8]; -rz(pi/2) out[8]; -cx b[2],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[8]; -rz(pi/2) out[8]; -cx a[7],out[8]; -rz(-pi/2) out[8]; -cx b[2],a[7]; -rz(pi/2) a[7]; -cx a[7],out[8]; -rz(-pi/2) out[8]; -cx a[7],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[2]; -cx b[2],out[9]; -rz(-pi/4) out[9]; -cx b[2],out[9]; -rz(pi/4) out[9]; -cx b[2],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[9]; -rz(pi/4) out[9]; -cx a[7],out[9]; -rz(-pi/4) out[9]; -cx b[2],a[7]; -rz(pi/4) a[7]; -cx a[7],out[9]; -rz(-pi/4) out[9]; -cx a[7],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[2]; -cx b[2],out[10]; -rz(-pi/8) out[10]; -cx b[2],out[10]; -rz(pi/8) out[10]; -cx b[2],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[10]; -rz(pi/8) out[10]; -cx a[7],out[10]; -rz(-pi/8) out[10]; -cx b[2],a[7]; -rz(pi/8) a[7]; -cx a[7],out[10]; -rz(-pi/8) out[10]; -cx a[7],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[2]; -cx b[2],out[11]; -rz(-pi/16) out[11]; -cx b[2],out[11]; -rz(pi/16) out[11]; -cx b[2],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[11]; -rz(pi/16) out[11]; -cx a[7],out[11]; -rz(-pi/16) out[11]; -cx b[2],a[7]; -rz(pi/16) a[7]; -cx a[7],out[11]; -rz(-pi/16) out[11]; -cx a[7],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[2]; -cx b[2],out[12]; -rz(-pi/32) out[12]; -cx b[2],out[12]; -rz(pi/32) out[12]; -cx b[2],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[12]; -rz(pi/32) out[12]; -cx a[7],out[12]; -rz(-pi/32) out[12]; -cx b[2],a[7]; -rz(pi/32) a[7]; -cx a[7],out[12]; -rz(-pi/32) out[12]; -cx a[7],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[2]; -cx b[2],out[13]; -rz(-pi/64) out[13]; -cx b[2],out[13]; -rz(pi/64) out[13]; -cx b[2],a[7]; -rz(-pi/64) a[7]; -cx a[7],out[13]; -rz(pi/64) out[13]; -cx a[7],out[13]; -rz(-pi/64) out[13]; -cx b[2],a[7]; -rz(pi/64) a[7]; -cx a[7],out[13]; -rz(-pi/64) out[13]; -cx a[7],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[2]; -cx b[2],out[14]; -rz(-pi/128) out[14]; -cx b[2],out[14]; -rz(pi/128) out[14]; -cx b[2],a[7]; -rz(-pi/128) a[7]; -cx a[7],out[14]; -rz(pi/128) out[14]; -cx a[7],out[14]; -rz(-pi/128) out[14]; -cx b[2],a[7]; -rz(pi/128) a[7]; -cx a[7],out[14]; -rz(-pi/128) out[14]; -cx a[7],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[2]; -cx b[2],out[15]; -rz(-pi/256) out[15]; -cx b[2],out[15]; -rz(pi/256) out[15]; -cx b[2],a[7]; -rz(-pi/256) a[7]; -cx a[7],out[15]; -rz(pi/256) out[15]; -cx a[7],out[15]; -rz(-pi/256) out[15]; -cx b[2],a[7]; -rz(pi/256) a[7]; -cx a[7],out[15]; -rz(-pi/256) out[15]; -cx a[7],out[15]; -rz(pi/256) out[15]; -cx b[1],a[7]; -rz(-64*pi) a[7]; -cx a[7],out[0]; -rz(64*pi) out[0]; -cx a[7],out[0]; -rz(-64*pi) out[0]; -cx b[1],a[7]; -rz(64*pi) a[7]; -cx a[7],out[0]; -rz(-64*pi) out[0]; -cx a[7],out[0]; -rz(64*pi) out[0]; -cx b[0],out[0]; -rz(-32*pi) out[0]; -cx b[0],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[1]; -cx b[1],out[1]; -rz(-32*pi) out[1]; -cx b[1],out[1]; -rz(32*pi) out[1]; -cx b[1],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[1]; -rz(32*pi) out[1]; -cx a[7],out[1]; -rz(-32*pi) out[1]; -cx b[1],a[7]; -rz(32*pi) a[7]; -cx a[7],out[1]; -rz(-32*pi) out[1]; -cx a[7],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[1]; -cx b[1],out[2]; -rz(-16*pi) out[2]; -cx b[1],out[2]; -rz(16*pi) out[2]; -cx b[1],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[2]; -rz(16*pi) out[2]; -cx a[7],out[2]; -rz(-16*pi) out[2]; -cx b[1],a[7]; -rz(16*pi) a[7]; -cx a[7],out[2]; -rz(-16*pi) out[2]; -cx a[7],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[1]; -cx b[1],out[3]; -rz(-8*pi) out[3]; -cx b[1],out[3]; -rz(8*pi) out[3]; -cx b[1],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[3]; -rz(8*pi) out[3]; -cx a[7],out[3]; -rz(-8*pi) out[3]; -cx b[1],a[7]; -rz(8*pi) a[7]; -cx a[7],out[3]; -rz(-8*pi) out[3]; -cx a[7],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[1]; -cx b[1],out[4]; -rz(-4*pi) out[4]; -cx b[1],out[4]; -rz(4*pi) out[4]; -cx b[1],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[4]; -rz(4*pi) out[4]; -cx a[7],out[4]; -rz(-4*pi) out[4]; -cx b[1],a[7]; -rz(4*pi) a[7]; -cx a[7],out[4]; -rz(-4*pi) out[4]; -cx a[7],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[1]; -cx b[1],out[5]; -rz(-2*pi) out[5]; -cx b[1],out[5]; -rz(2*pi) out[5]; -cx b[1],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[5]; -rz(2*pi) out[5]; -cx a[7],out[5]; -rz(-2*pi) out[5]; -cx b[1],a[7]; -rz(2*pi) a[7]; -cx a[7],out[5]; -rz(-2*pi) out[5]; -cx a[7],out[5]; -rz(2*pi) out[5]; -rz(pi) b[1]; -cx b[1],out[6]; -rz(-pi) out[6]; -cx b[1],out[6]; -rz(pi) out[6]; -cx b[1],a[7]; -rz(-pi) a[7]; -cx a[7],out[6]; -rz(pi) out[6]; -cx a[7],out[6]; -rz(-pi) out[6]; -cx b[1],a[7]; -rz(pi) a[7]; -cx a[7],out[6]; -rz(-pi) out[6]; -cx a[7],out[6]; -rz(pi) out[6]; -rz(pi/2) b[1]; -cx b[1],out[7]; -rz(-pi/2) out[7]; -cx b[1],out[7]; -rz(pi/2) out[7]; -cx b[1],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[7]; -rz(pi/2) out[7]; -cx a[7],out[7]; -rz(-pi/2) out[7]; -cx b[1],a[7]; -rz(pi/2) a[7]; -cx a[7],out[7]; -rz(-pi/2) out[7]; -cx a[7],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[1]; -cx b[1],out[8]; -rz(-pi/4) out[8]; -cx b[1],out[8]; -rz(pi/4) out[8]; -cx b[1],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[8]; -rz(pi/4) out[8]; -cx a[7],out[8]; -rz(-pi/4) out[8]; -cx b[1],a[7]; -rz(pi/4) a[7]; -cx a[7],out[8]; -rz(-pi/4) out[8]; -cx a[7],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[1]; -cx b[1],out[9]; -rz(-pi/8) out[9]; -cx b[1],out[9]; -rz(pi/8) out[9]; -cx b[1],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[9]; -rz(pi/8) out[9]; -cx a[7],out[9]; -rz(-pi/8) out[9]; -cx b[1],a[7]; -rz(pi/8) a[7]; -cx a[7],out[9]; -rz(-pi/8) out[9]; -cx a[7],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[1]; -cx b[1],out[10]; -rz(-pi/16) out[10]; -cx b[1],out[10]; -rz(pi/16) out[10]; -cx b[1],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[10]; -rz(pi/16) out[10]; -cx a[7],out[10]; -rz(-pi/16) out[10]; -cx b[1],a[7]; -rz(pi/16) a[7]; -cx a[7],out[10]; -rz(-pi/16) out[10]; -cx a[7],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[1]; -cx b[1],out[11]; -rz(-pi/32) out[11]; -cx b[1],out[11]; -rz(pi/32) out[11]; -cx b[1],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[11]; -rz(pi/32) out[11]; -cx a[7],out[11]; -rz(-pi/32) out[11]; -cx b[1],a[7]; -rz(pi/32) a[7]; -cx a[7],out[11]; -rz(-pi/32) out[11]; -cx a[7],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[1]; -cx b[1],out[12]; -rz(-pi/64) out[12]; -cx b[1],out[12]; -rz(pi/64) out[12]; -cx b[1],a[7]; -rz(-pi/64) a[7]; -cx a[7],out[12]; -rz(pi/64) out[12]; -cx a[7],out[12]; -rz(-pi/64) out[12]; -cx b[1],a[7]; -rz(pi/64) a[7]; -cx a[7],out[12]; -rz(-pi/64) out[12]; -cx a[7],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[1]; -cx b[1],out[13]; -rz(-pi/128) out[13]; -cx b[1],out[13]; -rz(pi/128) out[13]; -cx b[1],a[7]; -rz(-pi/128) a[7]; -cx a[7],out[13]; -rz(pi/128) out[13]; -cx a[7],out[13]; -rz(-pi/128) out[13]; -cx b[1],a[7]; -rz(pi/128) a[7]; -cx a[7],out[13]; -rz(-pi/128) out[13]; -cx a[7],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[1]; -cx b[1],out[14]; -rz(-pi/256) out[14]; -cx b[1],out[14]; -rz(pi/256) out[14]; -cx b[1],a[7]; -rz(-pi/256) a[7]; -cx a[7],out[14]; -rz(pi/256) out[14]; -cx a[7],out[14]; -rz(-pi/256) out[14]; -cx b[1],a[7]; -rz(pi/256) a[7]; -cx a[7],out[14]; -rz(-pi/256) out[14]; -cx a[7],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[1]; -cx b[1],out[15]; -rz(-pi/512) out[15]; -cx b[1],out[15]; -rz(pi/512) out[15]; -cx b[1],a[7]; -rz(-pi/512) a[7]; -cx a[7],out[15]; -rz(pi/512) out[15]; -cx a[7],out[15]; -rz(-pi/512) out[15]; -cx b[1],a[7]; -rz(pi/512) a[7]; -cx a[7],out[15]; -rz(-pi/512) out[15]; -cx a[7],out[15]; -rz(pi/512) out[15]; -cx b[0],a[7]; -rz(-32*pi) a[7]; -cx a[7],out[0]; -rz(32*pi) out[0]; -cx a[7],out[0]; -rz(-32*pi) out[0]; -cx b[0],a[7]; -rz(32*pi) a[7]; -cx a[7],out[0]; -rz(-32*pi) out[0]; -cx a[7],out[0]; -rz(32*pi) out[0]; -rz(16*pi) b[0]; -cx b[0],out[1]; -rz(-16*pi) out[1]; -cx b[0],out[1]; -rz(16*pi) out[1]; -cx b[0],a[7]; -rz(-16*pi) a[7]; -cx a[7],out[1]; -rz(16*pi) out[1]; -cx a[7],out[1]; -rz(-16*pi) out[1]; -cx b[0],a[7]; -rz(16*pi) a[7]; -cx a[7],out[1]; -rz(-16*pi) out[1]; -cx a[7],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[0]; -cx b[0],out[2]; -rz(-8*pi) out[2]; -cx b[0],out[2]; -rz(8*pi) out[2]; -cx b[0],a[7]; -rz(-8*pi) a[7]; -cx a[7],out[2]; -rz(8*pi) out[2]; -cx a[7],out[2]; -rz(-8*pi) out[2]; -cx b[0],a[7]; -rz(8*pi) a[7]; -cx a[7],out[2]; -rz(-8*pi) out[2]; -cx a[7],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[0]; -cx b[0],out[3]; -rz(-4*pi) out[3]; -cx b[0],out[3]; -rz(4*pi) out[3]; -cx b[0],a[7]; -rz(-4*pi) a[7]; -cx a[7],out[3]; -rz(4*pi) out[3]; -cx a[7],out[3]; -rz(-4*pi) out[3]; -cx b[0],a[7]; -rz(4*pi) a[7]; -cx a[7],out[3]; -rz(-4*pi) out[3]; -cx a[7],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[0]; -cx b[0],out[4]; -rz(-2*pi) out[4]; -cx b[0],out[4]; -rz(2*pi) out[4]; -cx b[0],a[7]; -rz(-2*pi) a[7]; -cx a[7],out[4]; -rz(2*pi) out[4]; -cx a[7],out[4]; -rz(-2*pi) out[4]; -cx b[0],a[7]; -rz(2*pi) a[7]; -cx a[7],out[4]; -rz(-2*pi) out[4]; -cx a[7],out[4]; -rz(2*pi) out[4]; -rz(pi) b[0]; -cx b[0],out[5]; -rz(-pi) out[5]; -cx b[0],out[5]; -rz(pi) out[5]; -cx b[0],a[7]; -rz(-pi) a[7]; -cx a[7],out[5]; -rz(pi) out[5]; -cx a[7],out[5]; -rz(-pi) out[5]; -cx b[0],a[7]; -rz(pi) a[7]; -cx a[7],out[5]; -rz(-pi) out[5]; -cx a[7],out[5]; -rz(pi) out[5]; -rz(pi/2) b[0]; -cx b[0],out[6]; -rz(-pi/2) out[6]; -cx b[0],out[6]; -rz(pi/2) out[6]; -cx b[0],a[7]; -rz(-pi/2) a[7]; -cx a[7],out[6]; -rz(pi/2) out[6]; -cx a[7],out[6]; -rz(-pi/2) out[6]; -cx b[0],a[7]; -rz(pi/2) a[7]; -cx a[7],out[6]; -rz(-pi/2) out[6]; -cx a[7],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[0]; -cx b[0],out[7]; -rz(-pi/4) out[7]; -cx b[0],out[7]; -rz(pi/4) out[7]; -cx b[0],a[7]; -rz(-pi/4) a[7]; -cx a[7],out[7]; -rz(pi/4) out[7]; -cx a[7],out[7]; -rz(-pi/4) out[7]; -cx b[0],a[7]; -rz(pi/4) a[7]; -cx a[7],out[7]; -rz(-pi/4) out[7]; -cx a[7],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[0]; -cx b[0],out[8]; -rz(-pi/8) out[8]; -cx b[0],out[8]; -rz(pi/8) out[8]; -cx b[0],a[7]; -rz(-pi/8) a[7]; -cx a[7],out[8]; -rz(pi/8) out[8]; -cx a[7],out[8]; -rz(-pi/8) out[8]; -cx b[0],a[7]; -rz(pi/8) a[7]; -cx a[7],out[8]; -rz(-pi/8) out[8]; -cx a[7],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[0]; -cx b[0],out[9]; -rz(-pi/16) out[9]; -cx b[0],out[9]; -rz(pi/16) out[9]; -cx b[0],a[7]; -rz(-pi/16) a[7]; -cx a[7],out[9]; -rz(pi/16) out[9]; -cx a[7],out[9]; -rz(-pi/16) out[9]; -cx b[0],a[7]; -rz(pi/16) a[7]; -cx a[7],out[9]; -rz(-pi/16) out[9]; -cx a[7],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[0]; -cx b[0],out[10]; -rz(-pi/32) out[10]; -cx b[0],out[10]; -rz(pi/32) out[10]; -cx b[0],a[7]; -rz(-pi/32) a[7]; -cx a[7],out[10]; -rz(pi/32) out[10]; -cx a[7],out[10]; -rz(-pi/32) out[10]; -cx b[0],a[7]; -rz(pi/32) a[7]; -cx a[7],out[10]; -rz(-pi/32) out[10]; -cx a[7],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[0]; -cx b[0],out[11]; -rz(-pi/64) out[11]; -cx b[0],out[11]; -rz(pi/64) out[11]; -cx b[0],a[7]; -rz(-pi/64) a[7]; -cx a[7],out[11]; -rz(pi/64) out[11]; -cx a[7],out[11]; -rz(-pi/64) out[11]; -cx b[0],a[7]; -rz(pi/64) a[7]; -cx a[7],out[11]; -rz(-pi/64) out[11]; -cx a[7],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[0]; -cx b[0],out[12]; -rz(-pi/128) out[12]; -cx b[0],out[12]; -rz(pi/128) out[12]; -cx b[0],a[7]; -rz(-pi/128) a[7]; -cx a[7],out[12]; -rz(pi/128) out[12]; -cx a[7],out[12]; -rz(-pi/128) out[12]; -cx b[0],a[7]; -rz(pi/128) a[7]; -cx a[7],out[12]; -rz(-pi/128) out[12]; -cx a[7],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[0]; -cx b[0],out[13]; -rz(-pi/256) out[13]; -cx b[0],out[13]; -rz(pi/256) out[13]; -cx b[0],a[7]; -rz(-pi/256) a[7]; -cx a[7],out[13]; -rz(pi/256) out[13]; -cx a[7],out[13]; -rz(-pi/256) out[13]; -cx b[0],a[7]; -rz(pi/256) a[7]; -cx a[7],out[13]; -rz(-pi/256) out[13]; -cx a[7],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[0]; -cx b[0],out[14]; -rz(-pi/512) out[14]; -cx b[0],out[14]; -rz(pi/512) out[14]; -cx b[0],a[7]; -rz(-pi/512) a[7]; -cx a[7],out[14]; -rz(pi/512) out[14]; -cx a[7],out[14]; -rz(-pi/512) out[14]; -cx b[0],a[7]; -rz(pi/512) a[7]; -cx a[7],out[14]; -rz(-pi/512) out[14]; -cx a[7],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[0]; -cx b[0],out[15]; -rz(-pi/1024) out[15]; -cx b[0],out[15]; -rz(pi/1024) out[15]; -cx b[0],a[7]; -rz(-pi/1024) a[7]; -cx a[7],out[15]; -rz(pi/1024) out[15]; -cx a[7],out[15]; -rz(-pi/1024) out[15]; -cx b[0],a[7]; -rz(pi/1024) a[7]; -cx a[7],out[15]; -rz(-pi/1024) out[15]; -cx a[7],out[15]; -rz(pi/1024) out[15]; -rz(16*pi) b[0]; -rz(32*pi) b[1]; -rz(64*pi) b[2]; -rz(128*pi) b[3]; -rz(256*pi) b[4]; -rz(512*pi) b[5]; -rz(1024*pi) b[6]; -rz(2048*pi) b[7]; -cx b[7],out[0]; -rz(-2048*pi) out[0]; -cx b[7],out[0]; -rz(2048*pi) out[0]; -cx b[7],a[6]; -rz(-2048*pi) a[6]; -cx a[6],out[0]; -rz(2048*pi) out[0]; -cx a[6],out[0]; -rz(-2048*pi) out[0]; -cx b[7],a[6]; -rz(2048*pi) a[6]; -cx a[6],out[0]; -rz(-2048*pi) out[0]; -cx a[6],out[0]; -rz(2048*pi) out[0]; -cx b[6],out[0]; -rz(-1024*pi) out[0]; -cx b[6],out[0]; -rz(1024*pi) out[0]; -rz(1024*pi) b[7]; -cx b[7],out[1]; -rz(-1024*pi) out[1]; -cx b[7],out[1]; -rz(1024*pi) out[1]; -cx b[7],a[6]; -rz(-1024*pi) a[6]; -cx a[6],out[1]; -rz(1024*pi) out[1]; -cx a[6],out[1]; -rz(-1024*pi) out[1]; -cx b[7],a[6]; -rz(1024*pi) a[6]; -cx a[6],out[1]; -rz(-1024*pi) out[1]; -cx a[6],out[1]; -rz(1024*pi) out[1]; -rz(512*pi) b[7]; -cx b[7],out[2]; -rz(-512*pi) out[2]; -cx b[7],out[2]; -rz(512*pi) out[2]; -cx b[7],a[6]; -rz(-512*pi) a[6]; -cx a[6],out[2]; -rz(512*pi) out[2]; -cx a[6],out[2]; -rz(-512*pi) out[2]; -cx b[7],a[6]; -rz(512*pi) a[6]; -cx a[6],out[2]; -rz(-512*pi) out[2]; -cx a[6],out[2]; -rz(512*pi) out[2]; -rz(256*pi) b[7]; -cx b[7],out[3]; -rz(-256*pi) out[3]; -cx b[7],out[3]; -rz(256*pi) out[3]; -cx b[7],a[6]; -rz(-256*pi) a[6]; -cx a[6],out[3]; -rz(256*pi) out[3]; -cx a[6],out[3]; -rz(-256*pi) out[3]; -cx b[7],a[6]; -rz(256*pi) a[6]; -cx a[6],out[3]; -rz(-256*pi) out[3]; -cx a[6],out[3]; -rz(256*pi) out[3]; -rz(128*pi) b[7]; -cx b[7],out[4]; -rz(-128*pi) out[4]; -cx b[7],out[4]; -rz(128*pi) out[4]; -cx b[7],a[6]; -rz(-128*pi) a[6]; -cx a[6],out[4]; -rz(128*pi) out[4]; -cx a[6],out[4]; -rz(-128*pi) out[4]; -cx b[7],a[6]; -rz(128*pi) a[6]; -cx a[6],out[4]; -rz(-128*pi) out[4]; -cx a[6],out[4]; -rz(128*pi) out[4]; -rz(64*pi) b[7]; -cx b[7],out[5]; -rz(-64*pi) out[5]; -cx b[7],out[5]; -rz(64*pi) out[5]; -cx b[7],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[5]; -rz(64*pi) out[5]; -cx a[6],out[5]; -rz(-64*pi) out[5]; -cx b[7],a[6]; -rz(64*pi) a[6]; -cx a[6],out[5]; -rz(-64*pi) out[5]; -cx a[6],out[5]; -rz(64*pi) out[5]; -rz(32*pi) b[7]; -cx b[7],out[6]; -rz(-32*pi) out[6]; -cx b[7],out[6]; -rz(32*pi) out[6]; -cx b[7],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[6]; -rz(32*pi) out[6]; -cx a[6],out[6]; -rz(-32*pi) out[6]; -cx b[7],a[6]; -rz(32*pi) a[6]; -cx a[6],out[6]; -rz(-32*pi) out[6]; -cx a[6],out[6]; -rz(32*pi) out[6]; -rz(16*pi) b[7]; -cx b[7],out[7]; -rz(-16*pi) out[7]; -cx b[7],out[7]; -rz(16*pi) out[7]; -cx b[7],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[7]; -rz(16*pi) out[7]; -cx a[6],out[7]; -rz(-16*pi) out[7]; -cx b[7],a[6]; -rz(16*pi) a[6]; -cx a[6],out[7]; -rz(-16*pi) out[7]; -cx a[6],out[7]; -rz(16*pi) out[7]; -rz(8*pi) b[7]; -cx b[7],out[8]; -rz(-8*pi) out[8]; -cx b[7],out[8]; -rz(8*pi) out[8]; -cx b[7],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[8]; -rz(8*pi) out[8]; -cx a[6],out[8]; -rz(-8*pi) out[8]; -cx b[7],a[6]; -rz(8*pi) a[6]; -cx a[6],out[8]; -rz(-8*pi) out[8]; -cx a[6],out[8]; -rz(8*pi) out[8]; -rz(4*pi) b[7]; -cx b[7],out[9]; -rz(-4*pi) out[9]; -cx b[7],out[9]; -rz(4*pi) out[9]; -cx b[7],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[9]; -rz(4*pi) out[9]; -cx a[6],out[9]; -rz(-4*pi) out[9]; -cx b[7],a[6]; -rz(4*pi) a[6]; -cx a[6],out[9]; -rz(-4*pi) out[9]; -cx a[6],out[9]; -rz(4*pi) out[9]; -rz(2*pi) b[7]; -cx b[7],out[10]; -rz(-2*pi) out[10]; -cx b[7],out[10]; -rz(2*pi) out[10]; -cx b[7],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[10]; -rz(2*pi) out[10]; -cx a[6],out[10]; -rz(-2*pi) out[10]; -cx b[7],a[6]; -rz(2*pi) a[6]; -cx a[6],out[10]; -rz(-2*pi) out[10]; -cx a[6],out[10]; -rz(2*pi) out[10]; -rz(pi) b[7]; -cx b[7],out[11]; -rz(-pi) out[11]; -cx b[7],out[11]; -rz(pi) out[11]; -cx b[7],a[6]; -rz(-pi) a[6]; -cx a[6],out[11]; -rz(pi) out[11]; -cx a[6],out[11]; -rz(-pi) out[11]; -cx b[7],a[6]; -rz(pi) a[6]; -cx a[6],out[11]; -rz(-pi) out[11]; -cx a[6],out[11]; -rz(pi) out[11]; -rz(pi/2) b[7]; -cx b[7],out[12]; -rz(-pi/2) out[12]; -cx b[7],out[12]; -rz(pi/2) out[12]; -cx b[7],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[12]; -rz(pi/2) out[12]; -cx a[6],out[12]; -rz(-pi/2) out[12]; -cx b[7],a[6]; -rz(pi/2) a[6]; -cx a[6],out[12]; -rz(-pi/2) out[12]; -cx a[6],out[12]; -rz(pi/2) out[12]; -rz(pi/4) b[7]; -cx b[7],out[13]; -rz(-pi/4) out[13]; -cx b[7],out[13]; -rz(pi/4) out[13]; -cx b[7],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[13]; -rz(pi/4) out[13]; -cx a[6],out[13]; -rz(-pi/4) out[13]; -cx b[7],a[6]; -rz(pi/4) a[6]; -cx a[6],out[13]; -rz(-pi/4) out[13]; -cx a[6],out[13]; -rz(pi/4) out[13]; -rz(pi/8) b[7]; -cx b[7],out[14]; -rz(-pi/8) out[14]; -cx b[7],out[14]; -rz(pi/8) out[14]; -cx b[7],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[14]; -rz(pi/8) out[14]; -cx a[6],out[14]; -rz(-pi/8) out[14]; -cx b[7],a[6]; -rz(pi/8) a[6]; -cx a[6],out[14]; -rz(-pi/8) out[14]; -cx a[6],out[14]; -rz(pi/8) out[14]; -rz(pi/16) b[7]; -cx b[7],out[15]; -rz(-pi/16) out[15]; -cx b[7],out[15]; -rz(pi/16) out[15]; -cx b[7],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[15]; -rz(pi/16) out[15]; -cx a[6],out[15]; -rz(-pi/16) out[15]; -cx b[7],a[6]; -rz(pi/16) a[6]; -cx a[6],out[15]; -rz(-pi/16) out[15]; -cx a[6],out[15]; -rz(pi/16) out[15]; -cx b[6],a[6]; -rz(-1024*pi) a[6]; -cx a[6],out[0]; -rz(1024*pi) out[0]; -cx a[6],out[0]; -rz(-1024*pi) out[0]; -cx b[6],a[6]; -rz(1024*pi) a[6]; -cx a[6],out[0]; -rz(-1024*pi) out[0]; -cx a[6],out[0]; -rz(1024*pi) out[0]; -cx b[5],out[0]; -rz(-512*pi) out[0]; -cx b[5],out[0]; -rz(512*pi) out[0]; -rz(512*pi) b[6]; -cx b[6],out[1]; -rz(-512*pi) out[1]; -cx b[6],out[1]; -rz(512*pi) out[1]; -cx b[6],a[6]; -rz(-512*pi) a[6]; -cx a[6],out[1]; -rz(512*pi) out[1]; -cx a[6],out[1]; -rz(-512*pi) out[1]; -cx b[6],a[6]; -rz(512*pi) a[6]; -cx a[6],out[1]; -rz(-512*pi) out[1]; -cx a[6],out[1]; -rz(512*pi) out[1]; -rz(256*pi) b[6]; -cx b[6],out[2]; -rz(-256*pi) out[2]; -cx b[6],out[2]; -rz(256*pi) out[2]; -cx b[6],a[6]; -rz(-256*pi) a[6]; -cx a[6],out[2]; -rz(256*pi) out[2]; -cx a[6],out[2]; -rz(-256*pi) out[2]; -cx b[6],a[6]; -rz(256*pi) a[6]; -cx a[6],out[2]; -rz(-256*pi) out[2]; -cx a[6],out[2]; -rz(256*pi) out[2]; -rz(128*pi) b[6]; -cx b[6],out[3]; -rz(-128*pi) out[3]; -cx b[6],out[3]; -rz(128*pi) out[3]; -cx b[6],a[6]; -rz(-128*pi) a[6]; -cx a[6],out[3]; -rz(128*pi) out[3]; -cx a[6],out[3]; -rz(-128*pi) out[3]; -cx b[6],a[6]; -rz(128*pi) a[6]; -cx a[6],out[3]; -rz(-128*pi) out[3]; -cx a[6],out[3]; -rz(128*pi) out[3]; -rz(64*pi) b[6]; -cx b[6],out[4]; -rz(-64*pi) out[4]; -cx b[6],out[4]; -rz(64*pi) out[4]; -cx b[6],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[4]; -rz(64*pi) out[4]; -cx a[6],out[4]; -rz(-64*pi) out[4]; -cx b[6],a[6]; -rz(64*pi) a[6]; -cx a[6],out[4]; -rz(-64*pi) out[4]; -cx a[6],out[4]; -rz(64*pi) out[4]; -rz(32*pi) b[6]; -cx b[6],out[5]; -rz(-32*pi) out[5]; -cx b[6],out[5]; -rz(32*pi) out[5]; -cx b[6],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[5]; -rz(32*pi) out[5]; -cx a[6],out[5]; -rz(-32*pi) out[5]; -cx b[6],a[6]; -rz(32*pi) a[6]; -cx a[6],out[5]; -rz(-32*pi) out[5]; -cx a[6],out[5]; -rz(32*pi) out[5]; -rz(16*pi) b[6]; -cx b[6],out[6]; -rz(-16*pi) out[6]; -cx b[6],out[6]; -rz(16*pi) out[6]; -cx b[6],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[6]; -rz(16*pi) out[6]; -cx a[6],out[6]; -rz(-16*pi) out[6]; -cx b[6],a[6]; -rz(16*pi) a[6]; -cx a[6],out[6]; -rz(-16*pi) out[6]; -cx a[6],out[6]; -rz(16*pi) out[6]; -rz(8*pi) b[6]; -cx b[6],out[7]; -rz(-8*pi) out[7]; -cx b[6],out[7]; -rz(8*pi) out[7]; -cx b[6],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[7]; -rz(8*pi) out[7]; -cx a[6],out[7]; -rz(-8*pi) out[7]; -cx b[6],a[6]; -rz(8*pi) a[6]; -cx a[6],out[7]; -rz(-8*pi) out[7]; -cx a[6],out[7]; -rz(8*pi) out[7]; -rz(4*pi) b[6]; -cx b[6],out[8]; -rz(-4*pi) out[8]; -cx b[6],out[8]; -rz(4*pi) out[8]; -cx b[6],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[8]; -rz(4*pi) out[8]; -cx a[6],out[8]; -rz(-4*pi) out[8]; -cx b[6],a[6]; -rz(4*pi) a[6]; -cx a[6],out[8]; -rz(-4*pi) out[8]; -cx a[6],out[8]; -rz(4*pi) out[8]; -rz(2*pi) b[6]; -cx b[6],out[9]; -rz(-2*pi) out[9]; -cx b[6],out[9]; -rz(2*pi) out[9]; -cx b[6],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[9]; -rz(2*pi) out[9]; -cx a[6],out[9]; -rz(-2*pi) out[9]; -cx b[6],a[6]; -rz(2*pi) a[6]; -cx a[6],out[9]; -rz(-2*pi) out[9]; -cx a[6],out[9]; -rz(2*pi) out[9]; -rz(pi) b[6]; -cx b[6],out[10]; -rz(-pi) out[10]; -cx b[6],out[10]; -rz(pi) out[10]; -cx b[6],a[6]; -rz(-pi) a[6]; -cx a[6],out[10]; -rz(pi) out[10]; -cx a[6],out[10]; -rz(-pi) out[10]; -cx b[6],a[6]; -rz(pi) a[6]; -cx a[6],out[10]; -rz(-pi) out[10]; -cx a[6],out[10]; -rz(pi) out[10]; -rz(pi/2) b[6]; -cx b[6],out[11]; -rz(-pi/2) out[11]; -cx b[6],out[11]; -rz(pi/2) out[11]; -cx b[6],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[11]; -rz(pi/2) out[11]; -cx a[6],out[11]; -rz(-pi/2) out[11]; -cx b[6],a[6]; -rz(pi/2) a[6]; -cx a[6],out[11]; -rz(-pi/2) out[11]; -cx a[6],out[11]; -rz(pi/2) out[11]; -rz(pi/4) b[6]; -cx b[6],out[12]; -rz(-pi/4) out[12]; -cx b[6],out[12]; -rz(pi/4) out[12]; -cx b[6],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[12]; -rz(pi/4) out[12]; -cx a[6],out[12]; -rz(-pi/4) out[12]; -cx b[6],a[6]; -rz(pi/4) a[6]; -cx a[6],out[12]; -rz(-pi/4) out[12]; -cx a[6],out[12]; -rz(pi/4) out[12]; -rz(pi/8) b[6]; -cx b[6],out[13]; -rz(-pi/8) out[13]; -cx b[6],out[13]; -rz(pi/8) out[13]; -cx b[6],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[13]; -rz(pi/8) out[13]; -cx a[6],out[13]; -rz(-pi/8) out[13]; -cx b[6],a[6]; -rz(pi/8) a[6]; -cx a[6],out[13]; -rz(-pi/8) out[13]; -cx a[6],out[13]; -rz(pi/8) out[13]; -rz(pi/16) b[6]; -cx b[6],out[14]; -rz(-pi/16) out[14]; -cx b[6],out[14]; -rz(pi/16) out[14]; -cx b[6],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[14]; -rz(pi/16) out[14]; -cx a[6],out[14]; -rz(-pi/16) out[14]; -cx b[6],a[6]; -rz(pi/16) a[6]; -cx a[6],out[14]; -rz(-pi/16) out[14]; -cx a[6],out[14]; -rz(pi/16) out[14]; -rz(pi/32) b[6]; -cx b[6],out[15]; -rz(-pi/32) out[15]; -cx b[6],out[15]; -rz(pi/32) out[15]; -cx b[6],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[15]; -rz(pi/32) out[15]; -cx a[6],out[15]; -rz(-pi/32) out[15]; -cx b[6],a[6]; -rz(pi/32) a[6]; -cx a[6],out[15]; -rz(-pi/32) out[15]; -cx a[6],out[15]; -rz(pi/32) out[15]; -cx b[5],a[6]; -rz(-512*pi) a[6]; -cx a[6],out[0]; -rz(512*pi) out[0]; -cx a[6],out[0]; -rz(-512*pi) out[0]; -cx b[5],a[6]; -rz(512*pi) a[6]; -cx a[6],out[0]; -rz(-512*pi) out[0]; -cx a[6],out[0]; -rz(512*pi) out[0]; -cx b[4],out[0]; -rz(-256*pi) out[0]; -cx b[4],out[0]; -rz(256*pi) out[0]; -rz(256*pi) b[5]; -cx b[5],out[1]; -rz(-256*pi) out[1]; -cx b[5],out[1]; -rz(256*pi) out[1]; -cx b[5],a[6]; -rz(-256*pi) a[6]; -cx a[6],out[1]; -rz(256*pi) out[1]; -cx a[6],out[1]; -rz(-256*pi) out[1]; -cx b[5],a[6]; -rz(256*pi) a[6]; -cx a[6],out[1]; -rz(-256*pi) out[1]; -cx a[6],out[1]; -rz(256*pi) out[1]; -rz(128*pi) b[5]; -cx b[5],out[2]; -rz(-128*pi) out[2]; -cx b[5],out[2]; -rz(128*pi) out[2]; -cx b[5],a[6]; -rz(-128*pi) a[6]; -cx a[6],out[2]; -rz(128*pi) out[2]; -cx a[6],out[2]; -rz(-128*pi) out[2]; -cx b[5],a[6]; -rz(128*pi) a[6]; -cx a[6],out[2]; -rz(-128*pi) out[2]; -cx a[6],out[2]; -rz(128*pi) out[2]; -rz(64*pi) b[5]; -cx b[5],out[3]; -rz(-64*pi) out[3]; -cx b[5],out[3]; -rz(64*pi) out[3]; -cx b[5],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[3]; -rz(64*pi) out[3]; -cx a[6],out[3]; -rz(-64*pi) out[3]; -cx b[5],a[6]; -rz(64*pi) a[6]; -cx a[6],out[3]; -rz(-64*pi) out[3]; -cx a[6],out[3]; -rz(64*pi) out[3]; -rz(32*pi) b[5]; -cx b[5],out[4]; -rz(-32*pi) out[4]; -cx b[5],out[4]; -rz(32*pi) out[4]; -cx b[5],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[4]; -rz(32*pi) out[4]; -cx a[6],out[4]; -rz(-32*pi) out[4]; -cx b[5],a[6]; -rz(32*pi) a[6]; -cx a[6],out[4]; -rz(-32*pi) out[4]; -cx a[6],out[4]; -rz(32*pi) out[4]; -rz(16*pi) b[5]; -cx b[5],out[5]; -rz(-16*pi) out[5]; -cx b[5],out[5]; -rz(16*pi) out[5]; -cx b[5],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[5]; -rz(16*pi) out[5]; -cx a[6],out[5]; -rz(-16*pi) out[5]; -cx b[5],a[6]; -rz(16*pi) a[6]; -cx a[6],out[5]; -rz(-16*pi) out[5]; -cx a[6],out[5]; -rz(16*pi) out[5]; -rz(8*pi) b[5]; -cx b[5],out[6]; -rz(-8*pi) out[6]; -cx b[5],out[6]; -rz(8*pi) out[6]; -cx b[5],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[6]; -rz(8*pi) out[6]; -cx a[6],out[6]; -rz(-8*pi) out[6]; -cx b[5],a[6]; -rz(8*pi) a[6]; -cx a[6],out[6]; -rz(-8*pi) out[6]; -cx a[6],out[6]; -rz(8*pi) out[6]; -rz(4*pi) b[5]; -cx b[5],out[7]; -rz(-4*pi) out[7]; -cx b[5],out[7]; -rz(4*pi) out[7]; -cx b[5],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[7]; -rz(4*pi) out[7]; -cx a[6],out[7]; -rz(-4*pi) out[7]; -cx b[5],a[6]; -rz(4*pi) a[6]; -cx a[6],out[7]; -rz(-4*pi) out[7]; -cx a[6],out[7]; -rz(4*pi) out[7]; -rz(2*pi) b[5]; -cx b[5],out[8]; -rz(-2*pi) out[8]; -cx b[5],out[8]; -rz(2*pi) out[8]; -cx b[5],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[8]; -rz(2*pi) out[8]; -cx a[6],out[8]; -rz(-2*pi) out[8]; -cx b[5],a[6]; -rz(2*pi) a[6]; -cx a[6],out[8]; -rz(-2*pi) out[8]; -cx a[6],out[8]; -rz(2*pi) out[8]; -rz(pi) b[5]; -cx b[5],out[9]; -rz(-pi) out[9]; -cx b[5],out[9]; -rz(pi) out[9]; -cx b[5],a[6]; -rz(-pi) a[6]; -cx a[6],out[9]; -rz(pi) out[9]; -cx a[6],out[9]; -rz(-pi) out[9]; -cx b[5],a[6]; -rz(pi) a[6]; -cx a[6],out[9]; -rz(-pi) out[9]; -cx a[6],out[9]; -rz(pi) out[9]; -rz(pi/2) b[5]; -cx b[5],out[10]; -rz(-pi/2) out[10]; -cx b[5],out[10]; -rz(pi/2) out[10]; -cx b[5],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[10]; -rz(pi/2) out[10]; -cx a[6],out[10]; -rz(-pi/2) out[10]; -cx b[5],a[6]; -rz(pi/2) a[6]; -cx a[6],out[10]; -rz(-pi/2) out[10]; -cx a[6],out[10]; -rz(pi/2) out[10]; -rz(pi/4) b[5]; -cx b[5],out[11]; -rz(-pi/4) out[11]; -cx b[5],out[11]; -rz(pi/4) out[11]; -cx b[5],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[11]; -rz(pi/4) out[11]; -cx a[6],out[11]; -rz(-pi/4) out[11]; -cx b[5],a[6]; -rz(pi/4) a[6]; -cx a[6],out[11]; -rz(-pi/4) out[11]; -cx a[6],out[11]; -rz(pi/4) out[11]; -rz(pi/8) b[5]; -cx b[5],out[12]; -rz(-pi/8) out[12]; -cx b[5],out[12]; -rz(pi/8) out[12]; -cx b[5],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[12]; -rz(pi/8) out[12]; -cx a[6],out[12]; -rz(-pi/8) out[12]; -cx b[5],a[6]; -rz(pi/8) a[6]; -cx a[6],out[12]; -rz(-pi/8) out[12]; -cx a[6],out[12]; -rz(pi/8) out[12]; -rz(pi/16) b[5]; -cx b[5],out[13]; -rz(-pi/16) out[13]; -cx b[5],out[13]; -rz(pi/16) out[13]; -cx b[5],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[13]; -rz(pi/16) out[13]; -cx a[6],out[13]; -rz(-pi/16) out[13]; -cx b[5],a[6]; -rz(pi/16) a[6]; -cx a[6],out[13]; -rz(-pi/16) out[13]; -cx a[6],out[13]; -rz(pi/16) out[13]; -rz(pi/32) b[5]; -cx b[5],out[14]; -rz(-pi/32) out[14]; -cx b[5],out[14]; -rz(pi/32) out[14]; -cx b[5],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[14]; -rz(pi/32) out[14]; -cx a[6],out[14]; -rz(-pi/32) out[14]; -cx b[5],a[6]; -rz(pi/32) a[6]; -cx a[6],out[14]; -rz(-pi/32) out[14]; -cx a[6],out[14]; -rz(pi/32) out[14]; -rz(pi/64) b[5]; -cx b[5],out[15]; -rz(-pi/64) out[15]; -cx b[5],out[15]; -rz(pi/64) out[15]; -cx b[5],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[15]; -rz(pi/64) out[15]; -cx a[6],out[15]; -rz(-pi/64) out[15]; -cx b[5],a[6]; -rz(pi/64) a[6]; -cx a[6],out[15]; -rz(-pi/64) out[15]; -cx a[6],out[15]; -rz(pi/64) out[15]; -cx b[4],a[6]; -rz(-256*pi) a[6]; -cx a[6],out[0]; -rz(256*pi) out[0]; -cx a[6],out[0]; -rz(-256*pi) out[0]; -cx b[4],a[6]; -rz(256*pi) a[6]; -cx a[6],out[0]; -rz(-256*pi) out[0]; -cx a[6],out[0]; -rz(256*pi) out[0]; -cx b[3],out[0]; -rz(-128*pi) out[0]; -cx b[3],out[0]; -rz(128*pi) out[0]; -rz(128*pi) b[4]; -cx b[4],out[1]; -rz(-128*pi) out[1]; -cx b[4],out[1]; -rz(128*pi) out[1]; -cx b[4],a[6]; -rz(-128*pi) a[6]; -cx a[6],out[1]; -rz(128*pi) out[1]; -cx a[6],out[1]; -rz(-128*pi) out[1]; -cx b[4],a[6]; -rz(128*pi) a[6]; -cx a[6],out[1]; -rz(-128*pi) out[1]; -cx a[6],out[1]; -rz(128*pi) out[1]; -rz(64*pi) b[4]; -cx b[4],out[2]; -rz(-64*pi) out[2]; -cx b[4],out[2]; -rz(64*pi) out[2]; -cx b[4],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[2]; -rz(64*pi) out[2]; -cx a[6],out[2]; -rz(-64*pi) out[2]; -cx b[4],a[6]; -rz(64*pi) a[6]; -cx a[6],out[2]; -rz(-64*pi) out[2]; -cx a[6],out[2]; -rz(64*pi) out[2]; -rz(32*pi) b[4]; -cx b[4],out[3]; -rz(-32*pi) out[3]; -cx b[4],out[3]; -rz(32*pi) out[3]; -cx b[4],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[3]; -rz(32*pi) out[3]; -cx a[6],out[3]; -rz(-32*pi) out[3]; -cx b[4],a[6]; -rz(32*pi) a[6]; -cx a[6],out[3]; -rz(-32*pi) out[3]; -cx a[6],out[3]; -rz(32*pi) out[3]; -rz(16*pi) b[4]; -cx b[4],out[4]; -rz(-16*pi) out[4]; -cx b[4],out[4]; -rz(16*pi) out[4]; -cx b[4],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[4]; -rz(16*pi) out[4]; -cx a[6],out[4]; -rz(-16*pi) out[4]; -cx b[4],a[6]; -rz(16*pi) a[6]; -cx a[6],out[4]; -rz(-16*pi) out[4]; -cx a[6],out[4]; -rz(16*pi) out[4]; -rz(8*pi) b[4]; -cx b[4],out[5]; -rz(-8*pi) out[5]; -cx b[4],out[5]; -rz(8*pi) out[5]; -cx b[4],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[5]; -rz(8*pi) out[5]; -cx a[6],out[5]; -rz(-8*pi) out[5]; -cx b[4],a[6]; -rz(8*pi) a[6]; -cx a[6],out[5]; -rz(-8*pi) out[5]; -cx a[6],out[5]; -rz(8*pi) out[5]; -rz(4*pi) b[4]; -cx b[4],out[6]; -rz(-4*pi) out[6]; -cx b[4],out[6]; -rz(4*pi) out[6]; -cx b[4],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[6]; -rz(4*pi) out[6]; -cx a[6],out[6]; -rz(-4*pi) out[6]; -cx b[4],a[6]; -rz(4*pi) a[6]; -cx a[6],out[6]; -rz(-4*pi) out[6]; -cx a[6],out[6]; -rz(4*pi) out[6]; -rz(2*pi) b[4]; -cx b[4],out[7]; -rz(-2*pi) out[7]; -cx b[4],out[7]; -rz(2*pi) out[7]; -cx b[4],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[7]; -rz(2*pi) out[7]; -cx a[6],out[7]; -rz(-2*pi) out[7]; -cx b[4],a[6]; -rz(2*pi) a[6]; -cx a[6],out[7]; -rz(-2*pi) out[7]; -cx a[6],out[7]; -rz(2*pi) out[7]; -rz(pi) b[4]; -cx b[4],out[8]; -rz(-pi) out[8]; -cx b[4],out[8]; -rz(pi) out[8]; -cx b[4],a[6]; -rz(-pi) a[6]; -cx a[6],out[8]; -rz(pi) out[8]; -cx a[6],out[8]; -rz(-pi) out[8]; -cx b[4],a[6]; -rz(pi) a[6]; -cx a[6],out[8]; -rz(-pi) out[8]; -cx a[6],out[8]; -rz(pi) out[8]; -rz(pi/2) b[4]; -cx b[4],out[9]; -rz(-pi/2) out[9]; -cx b[4],out[9]; -rz(pi/2) out[9]; -cx b[4],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[9]; -rz(pi/2) out[9]; -cx a[6],out[9]; -rz(-pi/2) out[9]; -cx b[4],a[6]; -rz(pi/2) a[6]; -cx a[6],out[9]; -rz(-pi/2) out[9]; -cx a[6],out[9]; -rz(pi/2) out[9]; -rz(pi/4) b[4]; -cx b[4],out[10]; -rz(-pi/4) out[10]; -cx b[4],out[10]; -rz(pi/4) out[10]; -cx b[4],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[10]; -rz(pi/4) out[10]; -cx a[6],out[10]; -rz(-pi/4) out[10]; -cx b[4],a[6]; -rz(pi/4) a[6]; -cx a[6],out[10]; -rz(-pi/4) out[10]; -cx a[6],out[10]; -rz(pi/4) out[10]; -rz(pi/8) b[4]; -cx b[4],out[11]; -rz(-pi/8) out[11]; -cx b[4],out[11]; -rz(pi/8) out[11]; -cx b[4],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[11]; -rz(pi/8) out[11]; -cx a[6],out[11]; -rz(-pi/8) out[11]; -cx b[4],a[6]; -rz(pi/8) a[6]; -cx a[6],out[11]; -rz(-pi/8) out[11]; -cx a[6],out[11]; -rz(pi/8) out[11]; -rz(pi/16) b[4]; -cx b[4],out[12]; -rz(-pi/16) out[12]; -cx b[4],out[12]; -rz(pi/16) out[12]; -cx b[4],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[12]; -rz(pi/16) out[12]; -cx a[6],out[12]; -rz(-pi/16) out[12]; -cx b[4],a[6]; -rz(pi/16) a[6]; -cx a[6],out[12]; -rz(-pi/16) out[12]; -cx a[6],out[12]; -rz(pi/16) out[12]; -rz(pi/32) b[4]; -cx b[4],out[13]; -rz(-pi/32) out[13]; -cx b[4],out[13]; -rz(pi/32) out[13]; -cx b[4],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[13]; -rz(pi/32) out[13]; -cx a[6],out[13]; -rz(-pi/32) out[13]; -cx b[4],a[6]; -rz(pi/32) a[6]; -cx a[6],out[13]; -rz(-pi/32) out[13]; -cx a[6],out[13]; -rz(pi/32) out[13]; -rz(pi/64) b[4]; -cx b[4],out[14]; -rz(-pi/64) out[14]; -cx b[4],out[14]; -rz(pi/64) out[14]; -cx b[4],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[14]; -rz(pi/64) out[14]; -cx a[6],out[14]; -rz(-pi/64) out[14]; -cx b[4],a[6]; -rz(pi/64) a[6]; -cx a[6],out[14]; -rz(-pi/64) out[14]; -cx a[6],out[14]; -rz(pi/64) out[14]; -rz(pi/128) b[4]; -cx b[4],out[15]; -rz(-pi/128) out[15]; -cx b[4],out[15]; -rz(pi/128) out[15]; -cx b[4],a[6]; -rz(-pi/128) a[6]; -cx a[6],out[15]; -rz(pi/128) out[15]; -cx a[6],out[15]; -rz(-pi/128) out[15]; -cx b[4],a[6]; -rz(pi/128) a[6]; -cx a[6],out[15]; -rz(-pi/128) out[15]; -cx a[6],out[15]; -rz(pi/128) out[15]; -cx b[3],a[6]; -rz(-128*pi) a[6]; -cx a[6],out[0]; -rz(128*pi) out[0]; -cx a[6],out[0]; -rz(-128*pi) out[0]; -cx b[3],a[6]; -rz(128*pi) a[6]; -cx a[6],out[0]; -rz(-128*pi) out[0]; -cx a[6],out[0]; -rz(128*pi) out[0]; -cx b[2],out[0]; -rz(-64*pi) out[0]; -cx b[2],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[3]; -cx b[3],out[1]; -rz(-64*pi) out[1]; -cx b[3],out[1]; -rz(64*pi) out[1]; -cx b[3],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[1]; -rz(64*pi) out[1]; -cx a[6],out[1]; -rz(-64*pi) out[1]; -cx b[3],a[6]; -rz(64*pi) a[6]; -cx a[6],out[1]; -rz(-64*pi) out[1]; -cx a[6],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[3]; -cx b[3],out[2]; -rz(-32*pi) out[2]; -cx b[3],out[2]; -rz(32*pi) out[2]; -cx b[3],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[2]; -rz(32*pi) out[2]; -cx a[6],out[2]; -rz(-32*pi) out[2]; -cx b[3],a[6]; -rz(32*pi) a[6]; -cx a[6],out[2]; -rz(-32*pi) out[2]; -cx a[6],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[3]; -cx b[3],out[3]; -rz(-16*pi) out[3]; -cx b[3],out[3]; -rz(16*pi) out[3]; -cx b[3],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[3]; -rz(16*pi) out[3]; -cx a[6],out[3]; -rz(-16*pi) out[3]; -cx b[3],a[6]; -rz(16*pi) a[6]; -cx a[6],out[3]; -rz(-16*pi) out[3]; -cx a[6],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[3]; -cx b[3],out[4]; -rz(-8*pi) out[4]; -cx b[3],out[4]; -rz(8*pi) out[4]; -cx b[3],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[4]; -rz(8*pi) out[4]; -cx a[6],out[4]; -rz(-8*pi) out[4]; -cx b[3],a[6]; -rz(8*pi) a[6]; -cx a[6],out[4]; -rz(-8*pi) out[4]; -cx a[6],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[3]; -cx b[3],out[5]; -rz(-4*pi) out[5]; -cx b[3],out[5]; -rz(4*pi) out[5]; -cx b[3],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[5]; -rz(4*pi) out[5]; -cx a[6],out[5]; -rz(-4*pi) out[5]; -cx b[3],a[6]; -rz(4*pi) a[6]; -cx a[6],out[5]; -rz(-4*pi) out[5]; -cx a[6],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[3]; -cx b[3],out[6]; -rz(-2*pi) out[6]; -cx b[3],out[6]; -rz(2*pi) out[6]; -cx b[3],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[6]; -rz(2*pi) out[6]; -cx a[6],out[6]; -rz(-2*pi) out[6]; -cx b[3],a[6]; -rz(2*pi) a[6]; -cx a[6],out[6]; -rz(-2*pi) out[6]; -cx a[6],out[6]; -rz(2*pi) out[6]; -rz(pi) b[3]; -cx b[3],out[7]; -rz(-pi) out[7]; -cx b[3],out[7]; -rz(pi) out[7]; -cx b[3],a[6]; -rz(-pi) a[6]; -cx a[6],out[7]; -rz(pi) out[7]; -cx a[6],out[7]; -rz(-pi) out[7]; -cx b[3],a[6]; -rz(pi) a[6]; -cx a[6],out[7]; -rz(-pi) out[7]; -cx a[6],out[7]; -rz(pi) out[7]; -rz(pi/2) b[3]; -cx b[3],out[8]; -rz(-pi/2) out[8]; -cx b[3],out[8]; -rz(pi/2) out[8]; -cx b[3],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[8]; -rz(pi/2) out[8]; -cx a[6],out[8]; -rz(-pi/2) out[8]; -cx b[3],a[6]; -rz(pi/2) a[6]; -cx a[6],out[8]; -rz(-pi/2) out[8]; -cx a[6],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[3]; -cx b[3],out[9]; -rz(-pi/4) out[9]; -cx b[3],out[9]; -rz(pi/4) out[9]; -cx b[3],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[9]; -rz(pi/4) out[9]; -cx a[6],out[9]; -rz(-pi/4) out[9]; -cx b[3],a[6]; -rz(pi/4) a[6]; -cx a[6],out[9]; -rz(-pi/4) out[9]; -cx a[6],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[3]; -cx b[3],out[10]; -rz(-pi/8) out[10]; -cx b[3],out[10]; -rz(pi/8) out[10]; -cx b[3],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[10]; -rz(pi/8) out[10]; -cx a[6],out[10]; -rz(-pi/8) out[10]; -cx b[3],a[6]; -rz(pi/8) a[6]; -cx a[6],out[10]; -rz(-pi/8) out[10]; -cx a[6],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[3]; -cx b[3],out[11]; -rz(-pi/16) out[11]; -cx b[3],out[11]; -rz(pi/16) out[11]; -cx b[3],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[11]; -rz(pi/16) out[11]; -cx a[6],out[11]; -rz(-pi/16) out[11]; -cx b[3],a[6]; -rz(pi/16) a[6]; -cx a[6],out[11]; -rz(-pi/16) out[11]; -cx a[6],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[3]; -cx b[3],out[12]; -rz(-pi/32) out[12]; -cx b[3],out[12]; -rz(pi/32) out[12]; -cx b[3],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[12]; -rz(pi/32) out[12]; -cx a[6],out[12]; -rz(-pi/32) out[12]; -cx b[3],a[6]; -rz(pi/32) a[6]; -cx a[6],out[12]; -rz(-pi/32) out[12]; -cx a[6],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[3]; -cx b[3],out[13]; -rz(-pi/64) out[13]; -cx b[3],out[13]; -rz(pi/64) out[13]; -cx b[3],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[13]; -rz(pi/64) out[13]; -cx a[6],out[13]; -rz(-pi/64) out[13]; -cx b[3],a[6]; -rz(pi/64) a[6]; -cx a[6],out[13]; -rz(-pi/64) out[13]; -cx a[6],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[3]; -cx b[3],out[14]; -rz(-pi/128) out[14]; -cx b[3],out[14]; -rz(pi/128) out[14]; -cx b[3],a[6]; -rz(-pi/128) a[6]; -cx a[6],out[14]; -rz(pi/128) out[14]; -cx a[6],out[14]; -rz(-pi/128) out[14]; -cx b[3],a[6]; -rz(pi/128) a[6]; -cx a[6],out[14]; -rz(-pi/128) out[14]; -cx a[6],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[3]; -cx b[3],out[15]; -rz(-pi/256) out[15]; -cx b[3],out[15]; -rz(pi/256) out[15]; -cx b[3],a[6]; -rz(-pi/256) a[6]; -cx a[6],out[15]; -rz(pi/256) out[15]; -cx a[6],out[15]; -rz(-pi/256) out[15]; -cx b[3],a[6]; -rz(pi/256) a[6]; -cx a[6],out[15]; -rz(-pi/256) out[15]; -cx a[6],out[15]; -rz(pi/256) out[15]; -cx b[2],a[6]; -rz(-64*pi) a[6]; -cx a[6],out[0]; -rz(64*pi) out[0]; -cx a[6],out[0]; -rz(-64*pi) out[0]; -cx b[2],a[6]; -rz(64*pi) a[6]; -cx a[6],out[0]; -rz(-64*pi) out[0]; -cx a[6],out[0]; -rz(64*pi) out[0]; -cx b[1],out[0]; -rz(-32*pi) out[0]; -cx b[1],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[2]; -cx b[2],out[1]; -rz(-32*pi) out[1]; -cx b[2],out[1]; -rz(32*pi) out[1]; -cx b[2],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[1]; -rz(32*pi) out[1]; -cx a[6],out[1]; -rz(-32*pi) out[1]; -cx b[2],a[6]; -rz(32*pi) a[6]; -cx a[6],out[1]; -rz(-32*pi) out[1]; -cx a[6],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[2]; -cx b[2],out[2]; -rz(-16*pi) out[2]; -cx b[2],out[2]; -rz(16*pi) out[2]; -cx b[2],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[2]; -rz(16*pi) out[2]; -cx a[6],out[2]; -rz(-16*pi) out[2]; -cx b[2],a[6]; -rz(16*pi) a[6]; -cx a[6],out[2]; -rz(-16*pi) out[2]; -cx a[6],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[2]; -cx b[2],out[3]; -rz(-8*pi) out[3]; -cx b[2],out[3]; -rz(8*pi) out[3]; -cx b[2],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[3]; -rz(8*pi) out[3]; -cx a[6],out[3]; -rz(-8*pi) out[3]; -cx b[2],a[6]; -rz(8*pi) a[6]; -cx a[6],out[3]; -rz(-8*pi) out[3]; -cx a[6],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[2]; -cx b[2],out[4]; -rz(-4*pi) out[4]; -cx b[2],out[4]; -rz(4*pi) out[4]; -cx b[2],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[4]; -rz(4*pi) out[4]; -cx a[6],out[4]; -rz(-4*pi) out[4]; -cx b[2],a[6]; -rz(4*pi) a[6]; -cx a[6],out[4]; -rz(-4*pi) out[4]; -cx a[6],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[2]; -cx b[2],out[5]; -rz(-2*pi) out[5]; -cx b[2],out[5]; -rz(2*pi) out[5]; -cx b[2],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[5]; -rz(2*pi) out[5]; -cx a[6],out[5]; -rz(-2*pi) out[5]; -cx b[2],a[6]; -rz(2*pi) a[6]; -cx a[6],out[5]; -rz(-2*pi) out[5]; -cx a[6],out[5]; -rz(2*pi) out[5]; -rz(pi) b[2]; -cx b[2],out[6]; -rz(-pi) out[6]; -cx b[2],out[6]; -rz(pi) out[6]; -cx b[2],a[6]; -rz(-pi) a[6]; -cx a[6],out[6]; -rz(pi) out[6]; -cx a[6],out[6]; -rz(-pi) out[6]; -cx b[2],a[6]; -rz(pi) a[6]; -cx a[6],out[6]; -rz(-pi) out[6]; -cx a[6],out[6]; -rz(pi) out[6]; -rz(pi/2) b[2]; -cx b[2],out[7]; -rz(-pi/2) out[7]; -cx b[2],out[7]; -rz(pi/2) out[7]; -cx b[2],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[7]; -rz(pi/2) out[7]; -cx a[6],out[7]; -rz(-pi/2) out[7]; -cx b[2],a[6]; -rz(pi/2) a[6]; -cx a[6],out[7]; -rz(-pi/2) out[7]; -cx a[6],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[2]; -cx b[2],out[8]; -rz(-pi/4) out[8]; -cx b[2],out[8]; -rz(pi/4) out[8]; -cx b[2],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[8]; -rz(pi/4) out[8]; -cx a[6],out[8]; -rz(-pi/4) out[8]; -cx b[2],a[6]; -rz(pi/4) a[6]; -cx a[6],out[8]; -rz(-pi/4) out[8]; -cx a[6],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[2]; -cx b[2],out[9]; -rz(-pi/8) out[9]; -cx b[2],out[9]; -rz(pi/8) out[9]; -cx b[2],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[9]; -rz(pi/8) out[9]; -cx a[6],out[9]; -rz(-pi/8) out[9]; -cx b[2],a[6]; -rz(pi/8) a[6]; -cx a[6],out[9]; -rz(-pi/8) out[9]; -cx a[6],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[2]; -cx b[2],out[10]; -rz(-pi/16) out[10]; -cx b[2],out[10]; -rz(pi/16) out[10]; -cx b[2],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[10]; -rz(pi/16) out[10]; -cx a[6],out[10]; -rz(-pi/16) out[10]; -cx b[2],a[6]; -rz(pi/16) a[6]; -cx a[6],out[10]; -rz(-pi/16) out[10]; -cx a[6],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[2]; -cx b[2],out[11]; -rz(-pi/32) out[11]; -cx b[2],out[11]; -rz(pi/32) out[11]; -cx b[2],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[11]; -rz(pi/32) out[11]; -cx a[6],out[11]; -rz(-pi/32) out[11]; -cx b[2],a[6]; -rz(pi/32) a[6]; -cx a[6],out[11]; -rz(-pi/32) out[11]; -cx a[6],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[2]; -cx b[2],out[12]; -rz(-pi/64) out[12]; -cx b[2],out[12]; -rz(pi/64) out[12]; -cx b[2],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[12]; -rz(pi/64) out[12]; -cx a[6],out[12]; -rz(-pi/64) out[12]; -cx b[2],a[6]; -rz(pi/64) a[6]; -cx a[6],out[12]; -rz(-pi/64) out[12]; -cx a[6],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[2]; -cx b[2],out[13]; -rz(-pi/128) out[13]; -cx b[2],out[13]; -rz(pi/128) out[13]; -cx b[2],a[6]; -rz(-pi/128) a[6]; -cx a[6],out[13]; -rz(pi/128) out[13]; -cx a[6],out[13]; -rz(-pi/128) out[13]; -cx b[2],a[6]; -rz(pi/128) a[6]; -cx a[6],out[13]; -rz(-pi/128) out[13]; -cx a[6],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[2]; -cx b[2],out[14]; -rz(-pi/256) out[14]; -cx b[2],out[14]; -rz(pi/256) out[14]; -cx b[2],a[6]; -rz(-pi/256) a[6]; -cx a[6],out[14]; -rz(pi/256) out[14]; -cx a[6],out[14]; -rz(-pi/256) out[14]; -cx b[2],a[6]; -rz(pi/256) a[6]; -cx a[6],out[14]; -rz(-pi/256) out[14]; -cx a[6],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[2]; -cx b[2],out[15]; -rz(-pi/512) out[15]; -cx b[2],out[15]; -rz(pi/512) out[15]; -cx b[2],a[6]; -rz(-pi/512) a[6]; -cx a[6],out[15]; -rz(pi/512) out[15]; -cx a[6],out[15]; -rz(-pi/512) out[15]; -cx b[2],a[6]; -rz(pi/512) a[6]; -cx a[6],out[15]; -rz(-pi/512) out[15]; -cx a[6],out[15]; -rz(pi/512) out[15]; -cx b[1],a[6]; -rz(-32*pi) a[6]; -cx a[6],out[0]; -rz(32*pi) out[0]; -cx a[6],out[0]; -rz(-32*pi) out[0]; -cx b[1],a[6]; -rz(32*pi) a[6]; -cx a[6],out[0]; -rz(-32*pi) out[0]; -cx a[6],out[0]; -rz(32*pi) out[0]; -cx b[0],out[0]; -rz(-16*pi) out[0]; -cx b[0],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[1]; -cx b[1],out[1]; -rz(-16*pi) out[1]; -cx b[1],out[1]; -rz(16*pi) out[1]; -cx b[1],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[1]; -rz(16*pi) out[1]; -cx a[6],out[1]; -rz(-16*pi) out[1]; -cx b[1],a[6]; -rz(16*pi) a[6]; -cx a[6],out[1]; -rz(-16*pi) out[1]; -cx a[6],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[1]; -cx b[1],out[2]; -rz(-8*pi) out[2]; -cx b[1],out[2]; -rz(8*pi) out[2]; -cx b[1],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[2]; -rz(8*pi) out[2]; -cx a[6],out[2]; -rz(-8*pi) out[2]; -cx b[1],a[6]; -rz(8*pi) a[6]; -cx a[6],out[2]; -rz(-8*pi) out[2]; -cx a[6],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[1]; -cx b[1],out[3]; -rz(-4*pi) out[3]; -cx b[1],out[3]; -rz(4*pi) out[3]; -cx b[1],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[3]; -rz(4*pi) out[3]; -cx a[6],out[3]; -rz(-4*pi) out[3]; -cx b[1],a[6]; -rz(4*pi) a[6]; -cx a[6],out[3]; -rz(-4*pi) out[3]; -cx a[6],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[1]; -cx b[1],out[4]; -rz(-2*pi) out[4]; -cx b[1],out[4]; -rz(2*pi) out[4]; -cx b[1],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[4]; -rz(2*pi) out[4]; -cx a[6],out[4]; -rz(-2*pi) out[4]; -cx b[1],a[6]; -rz(2*pi) a[6]; -cx a[6],out[4]; -rz(-2*pi) out[4]; -cx a[6],out[4]; -rz(2*pi) out[4]; -rz(pi) b[1]; -cx b[1],out[5]; -rz(-pi) out[5]; -cx b[1],out[5]; -rz(pi) out[5]; -cx b[1],a[6]; -rz(-pi) a[6]; -cx a[6],out[5]; -rz(pi) out[5]; -cx a[6],out[5]; -rz(-pi) out[5]; -cx b[1],a[6]; -rz(pi) a[6]; -cx a[6],out[5]; -rz(-pi) out[5]; -cx a[6],out[5]; -rz(pi) out[5]; -rz(pi/2) b[1]; -cx b[1],out[6]; -rz(-pi/2) out[6]; -cx b[1],out[6]; -rz(pi/2) out[6]; -cx b[1],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[6]; -rz(pi/2) out[6]; -cx a[6],out[6]; -rz(-pi/2) out[6]; -cx b[1],a[6]; -rz(pi/2) a[6]; -cx a[6],out[6]; -rz(-pi/2) out[6]; -cx a[6],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[1]; -cx b[1],out[7]; -rz(-pi/4) out[7]; -cx b[1],out[7]; -rz(pi/4) out[7]; -cx b[1],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[7]; -rz(pi/4) out[7]; -cx a[6],out[7]; -rz(-pi/4) out[7]; -cx b[1],a[6]; -rz(pi/4) a[6]; -cx a[6],out[7]; -rz(-pi/4) out[7]; -cx a[6],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[1]; -cx b[1],out[8]; -rz(-pi/8) out[8]; -cx b[1],out[8]; -rz(pi/8) out[8]; -cx b[1],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[8]; -rz(pi/8) out[8]; -cx a[6],out[8]; -rz(-pi/8) out[8]; -cx b[1],a[6]; -rz(pi/8) a[6]; -cx a[6],out[8]; -rz(-pi/8) out[8]; -cx a[6],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[1]; -cx b[1],out[9]; -rz(-pi/16) out[9]; -cx b[1],out[9]; -rz(pi/16) out[9]; -cx b[1],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[9]; -rz(pi/16) out[9]; -cx a[6],out[9]; -rz(-pi/16) out[9]; -cx b[1],a[6]; -rz(pi/16) a[6]; -cx a[6],out[9]; -rz(-pi/16) out[9]; -cx a[6],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[1]; -cx b[1],out[10]; -rz(-pi/32) out[10]; -cx b[1],out[10]; -rz(pi/32) out[10]; -cx b[1],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[10]; -rz(pi/32) out[10]; -cx a[6],out[10]; -rz(-pi/32) out[10]; -cx b[1],a[6]; -rz(pi/32) a[6]; -cx a[6],out[10]; -rz(-pi/32) out[10]; -cx a[6],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[1]; -cx b[1],out[11]; -rz(-pi/64) out[11]; -cx b[1],out[11]; -rz(pi/64) out[11]; -cx b[1],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[11]; -rz(pi/64) out[11]; -cx a[6],out[11]; -rz(-pi/64) out[11]; -cx b[1],a[6]; -rz(pi/64) a[6]; -cx a[6],out[11]; -rz(-pi/64) out[11]; -cx a[6],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[1]; -cx b[1],out[12]; -rz(-pi/128) out[12]; -cx b[1],out[12]; -rz(pi/128) out[12]; -cx b[1],a[6]; -rz(-pi/128) a[6]; -cx a[6],out[12]; -rz(pi/128) out[12]; -cx a[6],out[12]; -rz(-pi/128) out[12]; -cx b[1],a[6]; -rz(pi/128) a[6]; -cx a[6],out[12]; -rz(-pi/128) out[12]; -cx a[6],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[1]; -cx b[1],out[13]; -rz(-pi/256) out[13]; -cx b[1],out[13]; -rz(pi/256) out[13]; -cx b[1],a[6]; -rz(-pi/256) a[6]; -cx a[6],out[13]; -rz(pi/256) out[13]; -cx a[6],out[13]; -rz(-pi/256) out[13]; -cx b[1],a[6]; -rz(pi/256) a[6]; -cx a[6],out[13]; -rz(-pi/256) out[13]; -cx a[6],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[1]; -cx b[1],out[14]; -rz(-pi/512) out[14]; -cx b[1],out[14]; -rz(pi/512) out[14]; -cx b[1],a[6]; -rz(-pi/512) a[6]; -cx a[6],out[14]; -rz(pi/512) out[14]; -cx a[6],out[14]; -rz(-pi/512) out[14]; -cx b[1],a[6]; -rz(pi/512) a[6]; -cx a[6],out[14]; -rz(-pi/512) out[14]; -cx a[6],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[1]; -cx b[1],out[15]; -rz(-pi/1024) out[15]; -cx b[1],out[15]; -rz(pi/1024) out[15]; -cx b[1],a[6]; -rz(-pi/1024) a[6]; -cx a[6],out[15]; -rz(pi/1024) out[15]; -cx a[6],out[15]; -rz(-pi/1024) out[15]; -cx b[1],a[6]; -rz(pi/1024) a[6]; -cx a[6],out[15]; -rz(-pi/1024) out[15]; -cx a[6],out[15]; -rz(pi/1024) out[15]; -cx b[0],a[6]; -rz(-16*pi) a[6]; -cx a[6],out[0]; -rz(16*pi) out[0]; -cx a[6],out[0]; -rz(-16*pi) out[0]; -cx b[0],a[6]; -rz(16*pi) a[6]; -cx a[6],out[0]; -rz(-16*pi) out[0]; -cx a[6],out[0]; -rz(16*pi) out[0]; -rz(8*pi) b[0]; -cx b[0],out[1]; -rz(-8*pi) out[1]; -cx b[0],out[1]; -rz(8*pi) out[1]; -cx b[0],a[6]; -rz(-8*pi) a[6]; -cx a[6],out[1]; -rz(8*pi) out[1]; -cx a[6],out[1]; -rz(-8*pi) out[1]; -cx b[0],a[6]; -rz(8*pi) a[6]; -cx a[6],out[1]; -rz(-8*pi) out[1]; -cx a[6],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[0]; -cx b[0],out[2]; -rz(-4*pi) out[2]; -cx b[0],out[2]; -rz(4*pi) out[2]; -cx b[0],a[6]; -rz(-4*pi) a[6]; -cx a[6],out[2]; -rz(4*pi) out[2]; -cx a[6],out[2]; -rz(-4*pi) out[2]; -cx b[0],a[6]; -rz(4*pi) a[6]; -cx a[6],out[2]; -rz(-4*pi) out[2]; -cx a[6],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[0]; -cx b[0],out[3]; -rz(-2*pi) out[3]; -cx b[0],out[3]; -rz(2*pi) out[3]; -cx b[0],a[6]; -rz(-2*pi) a[6]; -cx a[6],out[3]; -rz(2*pi) out[3]; -cx a[6],out[3]; -rz(-2*pi) out[3]; -cx b[0],a[6]; -rz(2*pi) a[6]; -cx a[6],out[3]; -rz(-2*pi) out[3]; -cx a[6],out[3]; -rz(2*pi) out[3]; -rz(pi) b[0]; -cx b[0],out[4]; -rz(-pi) out[4]; -cx b[0],out[4]; -rz(pi) out[4]; -cx b[0],a[6]; -rz(-pi) a[6]; -cx a[6],out[4]; -rz(pi) out[4]; -cx a[6],out[4]; -rz(-pi) out[4]; -cx b[0],a[6]; -rz(pi) a[6]; -cx a[6],out[4]; -rz(-pi) out[4]; -cx a[6],out[4]; -rz(pi) out[4]; -rz(pi/2) b[0]; -cx b[0],out[5]; -rz(-pi/2) out[5]; -cx b[0],out[5]; -rz(pi/2) out[5]; -cx b[0],a[6]; -rz(-pi/2) a[6]; -cx a[6],out[5]; -rz(pi/2) out[5]; -cx a[6],out[5]; -rz(-pi/2) out[5]; -cx b[0],a[6]; -rz(pi/2) a[6]; -cx a[6],out[5]; -rz(-pi/2) out[5]; -cx a[6],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[0]; -cx b[0],out[6]; -rz(-pi/4) out[6]; -cx b[0],out[6]; -rz(pi/4) out[6]; -cx b[0],a[6]; -rz(-pi/4) a[6]; -cx a[6],out[6]; -rz(pi/4) out[6]; -cx a[6],out[6]; -rz(-pi/4) out[6]; -cx b[0],a[6]; -rz(pi/4) a[6]; -cx a[6],out[6]; -rz(-pi/4) out[6]; -cx a[6],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[0]; -cx b[0],out[7]; -rz(-pi/8) out[7]; -cx b[0],out[7]; -rz(pi/8) out[7]; -cx b[0],a[6]; -rz(-pi/8) a[6]; -cx a[6],out[7]; -rz(pi/8) out[7]; -cx a[6],out[7]; -rz(-pi/8) out[7]; -cx b[0],a[6]; -rz(pi/8) a[6]; -cx a[6],out[7]; -rz(-pi/8) out[7]; -cx a[6],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[0]; -cx b[0],out[8]; -rz(-pi/16) out[8]; -cx b[0],out[8]; -rz(pi/16) out[8]; -cx b[0],a[6]; -rz(-pi/16) a[6]; -cx a[6],out[8]; -rz(pi/16) out[8]; -cx a[6],out[8]; -rz(-pi/16) out[8]; -cx b[0],a[6]; -rz(pi/16) a[6]; -cx a[6],out[8]; -rz(-pi/16) out[8]; -cx a[6],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[0]; -cx b[0],out[9]; -rz(-pi/32) out[9]; -cx b[0],out[9]; -rz(pi/32) out[9]; -cx b[0],a[6]; -rz(-pi/32) a[6]; -cx a[6],out[9]; -rz(pi/32) out[9]; -cx a[6],out[9]; -rz(-pi/32) out[9]; -cx b[0],a[6]; -rz(pi/32) a[6]; -cx a[6],out[9]; -rz(-pi/32) out[9]; -cx a[6],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[0]; -cx b[0],out[10]; -rz(-pi/64) out[10]; -cx b[0],out[10]; -rz(pi/64) out[10]; -cx b[0],a[6]; -rz(-pi/64) a[6]; -cx a[6],out[10]; -rz(pi/64) out[10]; -cx a[6],out[10]; -rz(-pi/64) out[10]; -cx b[0],a[6]; -rz(pi/64) a[6]; -cx a[6],out[10]; -rz(-pi/64) out[10]; -cx a[6],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[0]; -cx b[0],out[11]; -rz(-pi/128) out[11]; -cx b[0],out[11]; -rz(pi/128) out[11]; -cx b[0],a[6]; -rz(-pi/128) a[6]; -cx a[6],out[11]; -rz(pi/128) out[11]; -cx a[6],out[11]; -rz(-pi/128) out[11]; -cx b[0],a[6]; -rz(pi/128) a[6]; -cx a[6],out[11]; -rz(-pi/128) out[11]; -cx a[6],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[0]; -cx b[0],out[12]; -rz(-pi/256) out[12]; -cx b[0],out[12]; -rz(pi/256) out[12]; -cx b[0],a[6]; -rz(-pi/256) a[6]; -cx a[6],out[12]; -rz(pi/256) out[12]; -cx a[6],out[12]; -rz(-pi/256) out[12]; -cx b[0],a[6]; -rz(pi/256) a[6]; -cx a[6],out[12]; -rz(-pi/256) out[12]; -cx a[6],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[0]; -cx b[0],out[13]; -rz(-pi/512) out[13]; -cx b[0],out[13]; -rz(pi/512) out[13]; -cx b[0],a[6]; -rz(-pi/512) a[6]; -cx a[6],out[13]; -rz(pi/512) out[13]; -cx a[6],out[13]; -rz(-pi/512) out[13]; -cx b[0],a[6]; -rz(pi/512) a[6]; -cx a[6],out[13]; -rz(-pi/512) out[13]; -cx a[6],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[0]; -cx b[0],out[14]; -rz(-pi/1024) out[14]; -cx b[0],out[14]; -rz(pi/1024) out[14]; -cx b[0],a[6]; -rz(-pi/1024) a[6]; -cx a[6],out[14]; -rz(pi/1024) out[14]; -cx a[6],out[14]; -rz(-pi/1024) out[14]; -cx b[0],a[6]; -rz(pi/1024) a[6]; -cx a[6],out[14]; -rz(-pi/1024) out[14]; -cx a[6],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[0]; -cx b[0],out[15]; -rz(-pi/2048) out[15]; -cx b[0],out[15]; -rz(pi/2048) out[15]; -cx b[0],a[6]; -rz(-pi/2048) a[6]; -cx a[6],out[15]; -rz(pi/2048) out[15]; -cx a[6],out[15]; -rz(-pi/2048) out[15]; -cx b[0],a[6]; -rz(pi/2048) a[6]; -cx a[6],out[15]; -rz(-pi/2048) out[15]; -cx a[6],out[15]; -rz(pi/2048) out[15]; -rz(8*pi) b[0]; -rz(16*pi) b[1]; -rz(32*pi) b[2]; -rz(64*pi) b[3]; -rz(128*pi) b[4]; -rz(256*pi) b[5]; -rz(512*pi) b[6]; -rz(1024*pi) b[7]; -cx b[7],out[0]; -rz(-1024*pi) out[0]; -cx b[7],out[0]; -rz(1024*pi) out[0]; -cx b[7],a[5]; -rz(-1024*pi) a[5]; -cx a[5],out[0]; -rz(1024*pi) out[0]; -cx a[5],out[0]; -rz(-1024*pi) out[0]; -cx b[7],a[5]; -rz(1024*pi) a[5]; -cx a[5],out[0]; -rz(-1024*pi) out[0]; -cx a[5],out[0]; -rz(1024*pi) out[0]; -cx b[6],out[0]; -rz(-512*pi) out[0]; -cx b[6],out[0]; -rz(512*pi) out[0]; -rz(512*pi) b[7]; -cx b[7],out[1]; -rz(-512*pi) out[1]; -cx b[7],out[1]; -rz(512*pi) out[1]; -cx b[7],a[5]; -rz(-512*pi) a[5]; -cx a[5],out[1]; -rz(512*pi) out[1]; -cx a[5],out[1]; -rz(-512*pi) out[1]; -cx b[7],a[5]; -rz(512*pi) a[5]; -cx a[5],out[1]; -rz(-512*pi) out[1]; -cx a[5],out[1]; -rz(512*pi) out[1]; -rz(256*pi) b[7]; -cx b[7],out[2]; -rz(-256*pi) out[2]; -cx b[7],out[2]; -rz(256*pi) out[2]; -cx b[7],a[5]; -rz(-256*pi) a[5]; -cx a[5],out[2]; -rz(256*pi) out[2]; -cx a[5],out[2]; -rz(-256*pi) out[2]; -cx b[7],a[5]; -rz(256*pi) a[5]; -cx a[5],out[2]; -rz(-256*pi) out[2]; -cx a[5],out[2]; -rz(256*pi) out[2]; -rz(128*pi) b[7]; -cx b[7],out[3]; -rz(-128*pi) out[3]; -cx b[7],out[3]; -rz(128*pi) out[3]; -cx b[7],a[5]; -rz(-128*pi) a[5]; -cx a[5],out[3]; -rz(128*pi) out[3]; -cx a[5],out[3]; -rz(-128*pi) out[3]; -cx b[7],a[5]; -rz(128*pi) a[5]; -cx a[5],out[3]; -rz(-128*pi) out[3]; -cx a[5],out[3]; -rz(128*pi) out[3]; -rz(64*pi) b[7]; -cx b[7],out[4]; -rz(-64*pi) out[4]; -cx b[7],out[4]; -rz(64*pi) out[4]; -cx b[7],a[5]; -rz(-64*pi) a[5]; -cx a[5],out[4]; -rz(64*pi) out[4]; -cx a[5],out[4]; -rz(-64*pi) out[4]; -cx b[7],a[5]; -rz(64*pi) a[5]; -cx a[5],out[4]; -rz(-64*pi) out[4]; -cx a[5],out[4]; -rz(64*pi) out[4]; -rz(32*pi) b[7]; -cx b[7],out[5]; -rz(-32*pi) out[5]; -cx b[7],out[5]; -rz(32*pi) out[5]; -cx b[7],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[5]; -rz(32*pi) out[5]; -cx a[5],out[5]; -rz(-32*pi) out[5]; -cx b[7],a[5]; -rz(32*pi) a[5]; -cx a[5],out[5]; -rz(-32*pi) out[5]; -cx a[5],out[5]; -rz(32*pi) out[5]; -rz(16*pi) b[7]; -cx b[7],out[6]; -rz(-16*pi) out[6]; -cx b[7],out[6]; -rz(16*pi) out[6]; -cx b[7],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[6]; -rz(16*pi) out[6]; -cx a[5],out[6]; -rz(-16*pi) out[6]; -cx b[7],a[5]; -rz(16*pi) a[5]; -cx a[5],out[6]; -rz(-16*pi) out[6]; -cx a[5],out[6]; -rz(16*pi) out[6]; -rz(8*pi) b[7]; -cx b[7],out[7]; -rz(-8*pi) out[7]; -cx b[7],out[7]; -rz(8*pi) out[7]; -cx b[7],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[7]; -rz(8*pi) out[7]; -cx a[5],out[7]; -rz(-8*pi) out[7]; -cx b[7],a[5]; -rz(8*pi) a[5]; -cx a[5],out[7]; -rz(-8*pi) out[7]; -cx a[5],out[7]; -rz(8*pi) out[7]; -rz(4*pi) b[7]; -cx b[7],out[8]; -rz(-4*pi) out[8]; -cx b[7],out[8]; -rz(4*pi) out[8]; -cx b[7],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[8]; -rz(4*pi) out[8]; -cx a[5],out[8]; -rz(-4*pi) out[8]; -cx b[7],a[5]; -rz(4*pi) a[5]; -cx a[5],out[8]; -rz(-4*pi) out[8]; -cx a[5],out[8]; -rz(4*pi) out[8]; -rz(2*pi) b[7]; -cx b[7],out[9]; -rz(-2*pi) out[9]; -cx b[7],out[9]; -rz(2*pi) out[9]; -cx b[7],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[9]; -rz(2*pi) out[9]; -cx a[5],out[9]; -rz(-2*pi) out[9]; -cx b[7],a[5]; -rz(2*pi) a[5]; -cx a[5],out[9]; -rz(-2*pi) out[9]; -cx a[5],out[9]; -rz(2*pi) out[9]; -rz(pi) b[7]; -cx b[7],out[10]; -rz(-pi) out[10]; -cx b[7],out[10]; -rz(pi) out[10]; -cx b[7],a[5]; -rz(-pi) a[5]; -cx a[5],out[10]; -rz(pi) out[10]; -cx a[5],out[10]; -rz(-pi) out[10]; -cx b[7],a[5]; -rz(pi) a[5]; -cx a[5],out[10]; -rz(-pi) out[10]; -cx a[5],out[10]; -rz(pi) out[10]; -rz(pi/2) b[7]; -cx b[7],out[11]; -rz(-pi/2) out[11]; -cx b[7],out[11]; -rz(pi/2) out[11]; -cx b[7],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[11]; -rz(pi/2) out[11]; -cx a[5],out[11]; -rz(-pi/2) out[11]; -cx b[7],a[5]; -rz(pi/2) a[5]; -cx a[5],out[11]; -rz(-pi/2) out[11]; -cx a[5],out[11]; -rz(pi/2) out[11]; -rz(pi/4) b[7]; -cx b[7],out[12]; -rz(-pi/4) out[12]; -cx b[7],out[12]; -rz(pi/4) out[12]; -cx b[7],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[12]; -rz(pi/4) out[12]; -cx a[5],out[12]; -rz(-pi/4) out[12]; -cx b[7],a[5]; -rz(pi/4) a[5]; -cx a[5],out[12]; -rz(-pi/4) out[12]; -cx a[5],out[12]; -rz(pi/4) out[12]; -rz(pi/8) b[7]; -cx b[7],out[13]; -rz(-pi/8) out[13]; -cx b[7],out[13]; -rz(pi/8) out[13]; -cx b[7],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[13]; -rz(pi/8) out[13]; -cx a[5],out[13]; -rz(-pi/8) out[13]; -cx b[7],a[5]; -rz(pi/8) a[5]; -cx a[5],out[13]; -rz(-pi/8) out[13]; -cx a[5],out[13]; -rz(pi/8) out[13]; -rz(pi/16) b[7]; -cx b[7],out[14]; -rz(-pi/16) out[14]; -cx b[7],out[14]; -rz(pi/16) out[14]; -cx b[7],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[14]; -rz(pi/16) out[14]; -cx a[5],out[14]; -rz(-pi/16) out[14]; -cx b[7],a[5]; -rz(pi/16) a[5]; -cx a[5],out[14]; -rz(-pi/16) out[14]; -cx a[5],out[14]; -rz(pi/16) out[14]; -rz(pi/32) b[7]; -cx b[7],out[15]; -rz(-pi/32) out[15]; -cx b[7],out[15]; -rz(pi/32) out[15]; -cx b[7],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[15]; -rz(pi/32) out[15]; -cx a[5],out[15]; -rz(-pi/32) out[15]; -cx b[7],a[5]; -rz(pi/32) a[5]; -cx a[5],out[15]; -rz(-pi/32) out[15]; -cx a[5],out[15]; -rz(pi/32) out[15]; -cx b[6],a[5]; -rz(-512*pi) a[5]; -cx a[5],out[0]; -rz(512*pi) out[0]; -cx a[5],out[0]; -rz(-512*pi) out[0]; -cx b[6],a[5]; -rz(512*pi) a[5]; -cx a[5],out[0]; -rz(-512*pi) out[0]; -cx a[5],out[0]; -rz(512*pi) out[0]; -cx b[5],out[0]; -rz(-256*pi) out[0]; -cx b[5],out[0]; -rz(256*pi) out[0]; -rz(256*pi) b[6]; -cx b[6],out[1]; -rz(-256*pi) out[1]; -cx b[6],out[1]; -rz(256*pi) out[1]; -cx b[6],a[5]; -rz(-256*pi) a[5]; -cx a[5],out[1]; -rz(256*pi) out[1]; -cx a[5],out[1]; -rz(-256*pi) out[1]; -cx b[6],a[5]; -rz(256*pi) a[5]; -cx a[5],out[1]; -rz(-256*pi) out[1]; -cx a[5],out[1]; -rz(256*pi) out[1]; -rz(128*pi) b[6]; -cx b[6],out[2]; -rz(-128*pi) out[2]; -cx b[6],out[2]; -rz(128*pi) out[2]; -cx b[6],a[5]; -rz(-128*pi) a[5]; -cx a[5],out[2]; -rz(128*pi) out[2]; -cx a[5],out[2]; -rz(-128*pi) out[2]; -cx b[6],a[5]; -rz(128*pi) a[5]; -cx a[5],out[2]; -rz(-128*pi) out[2]; -cx a[5],out[2]; -rz(128*pi) out[2]; -rz(64*pi) b[6]; -cx b[6],out[3]; -rz(-64*pi) out[3]; -cx b[6],out[3]; -rz(64*pi) out[3]; -cx b[6],a[5]; -rz(-64*pi) a[5]; -cx a[5],out[3]; -rz(64*pi) out[3]; -cx a[5],out[3]; -rz(-64*pi) out[3]; -cx b[6],a[5]; -rz(64*pi) a[5]; -cx a[5],out[3]; -rz(-64*pi) out[3]; -cx a[5],out[3]; -rz(64*pi) out[3]; -rz(32*pi) b[6]; -cx b[6],out[4]; -rz(-32*pi) out[4]; -cx b[6],out[4]; -rz(32*pi) out[4]; -cx b[6],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[4]; -rz(32*pi) out[4]; -cx a[5],out[4]; -rz(-32*pi) out[4]; -cx b[6],a[5]; -rz(32*pi) a[5]; -cx a[5],out[4]; -rz(-32*pi) out[4]; -cx a[5],out[4]; -rz(32*pi) out[4]; -rz(16*pi) b[6]; -cx b[6],out[5]; -rz(-16*pi) out[5]; -cx b[6],out[5]; -rz(16*pi) out[5]; -cx b[6],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[5]; -rz(16*pi) out[5]; -cx a[5],out[5]; -rz(-16*pi) out[5]; -cx b[6],a[5]; -rz(16*pi) a[5]; -cx a[5],out[5]; -rz(-16*pi) out[5]; -cx a[5],out[5]; -rz(16*pi) out[5]; -rz(8*pi) b[6]; -cx b[6],out[6]; -rz(-8*pi) out[6]; -cx b[6],out[6]; -rz(8*pi) out[6]; -cx b[6],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[6]; -rz(8*pi) out[6]; -cx a[5],out[6]; -rz(-8*pi) out[6]; -cx b[6],a[5]; -rz(8*pi) a[5]; -cx a[5],out[6]; -rz(-8*pi) out[6]; -cx a[5],out[6]; -rz(8*pi) out[6]; -rz(4*pi) b[6]; -cx b[6],out[7]; -rz(-4*pi) out[7]; -cx b[6],out[7]; -rz(4*pi) out[7]; -cx b[6],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[7]; -rz(4*pi) out[7]; -cx a[5],out[7]; -rz(-4*pi) out[7]; -cx b[6],a[5]; -rz(4*pi) a[5]; -cx a[5],out[7]; -rz(-4*pi) out[7]; -cx a[5],out[7]; -rz(4*pi) out[7]; -rz(2*pi) b[6]; -cx b[6],out[8]; -rz(-2*pi) out[8]; -cx b[6],out[8]; -rz(2*pi) out[8]; -cx b[6],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[8]; -rz(2*pi) out[8]; -cx a[5],out[8]; -rz(-2*pi) out[8]; -cx b[6],a[5]; -rz(2*pi) a[5]; -cx a[5],out[8]; -rz(-2*pi) out[8]; -cx a[5],out[8]; -rz(2*pi) out[8]; -rz(pi) b[6]; -cx b[6],out[9]; -rz(-pi) out[9]; -cx b[6],out[9]; -rz(pi) out[9]; -cx b[6],a[5]; -rz(-pi) a[5]; -cx a[5],out[9]; -rz(pi) out[9]; -cx a[5],out[9]; -rz(-pi) out[9]; -cx b[6],a[5]; -rz(pi) a[5]; -cx a[5],out[9]; -rz(-pi) out[9]; -cx a[5],out[9]; -rz(pi) out[9]; -rz(pi/2) b[6]; -cx b[6],out[10]; -rz(-pi/2) out[10]; -cx b[6],out[10]; -rz(pi/2) out[10]; -cx b[6],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[10]; -rz(pi/2) out[10]; -cx a[5],out[10]; -rz(-pi/2) out[10]; -cx b[6],a[5]; -rz(pi/2) a[5]; -cx a[5],out[10]; -rz(-pi/2) out[10]; -cx a[5],out[10]; -rz(pi/2) out[10]; -rz(pi/4) b[6]; -cx b[6],out[11]; -rz(-pi/4) out[11]; -cx b[6],out[11]; -rz(pi/4) out[11]; -cx b[6],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[11]; -rz(pi/4) out[11]; -cx a[5],out[11]; -rz(-pi/4) out[11]; -cx b[6],a[5]; -rz(pi/4) a[5]; -cx a[5],out[11]; -rz(-pi/4) out[11]; -cx a[5],out[11]; -rz(pi/4) out[11]; -rz(pi/8) b[6]; -cx b[6],out[12]; -rz(-pi/8) out[12]; -cx b[6],out[12]; -rz(pi/8) out[12]; -cx b[6],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[12]; -rz(pi/8) out[12]; -cx a[5],out[12]; -rz(-pi/8) out[12]; -cx b[6],a[5]; -rz(pi/8) a[5]; -cx a[5],out[12]; -rz(-pi/8) out[12]; -cx a[5],out[12]; -rz(pi/8) out[12]; -rz(pi/16) b[6]; -cx b[6],out[13]; -rz(-pi/16) out[13]; -cx b[6],out[13]; -rz(pi/16) out[13]; -cx b[6],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[13]; -rz(pi/16) out[13]; -cx a[5],out[13]; -rz(-pi/16) out[13]; -cx b[6],a[5]; -rz(pi/16) a[5]; -cx a[5],out[13]; -rz(-pi/16) out[13]; -cx a[5],out[13]; -rz(pi/16) out[13]; -rz(pi/32) b[6]; -cx b[6],out[14]; -rz(-pi/32) out[14]; -cx b[6],out[14]; -rz(pi/32) out[14]; -cx b[6],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[14]; -rz(pi/32) out[14]; -cx a[5],out[14]; -rz(-pi/32) out[14]; -cx b[6],a[5]; -rz(pi/32) a[5]; -cx a[5],out[14]; -rz(-pi/32) out[14]; -cx a[5],out[14]; -rz(pi/32) out[14]; -rz(pi/64) b[6]; -cx b[6],out[15]; -rz(-pi/64) out[15]; -cx b[6],out[15]; -rz(pi/64) out[15]; -cx b[6],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[15]; -rz(pi/64) out[15]; -cx a[5],out[15]; -rz(-pi/64) out[15]; -cx b[6],a[5]; -rz(pi/64) a[5]; -cx a[5],out[15]; -rz(-pi/64) out[15]; -cx a[5],out[15]; -rz(pi/64) out[15]; -cx b[5],a[5]; -rz(-256*pi) a[5]; -cx a[5],out[0]; -rz(256*pi) out[0]; -cx a[5],out[0]; -rz(-256*pi) out[0]; -cx b[5],a[5]; -rz(256*pi) a[5]; -cx a[5],out[0]; -rz(-256*pi) out[0]; -cx a[5],out[0]; -rz(256*pi) out[0]; -cx b[4],out[0]; -rz(-128*pi) out[0]; -cx b[4],out[0]; -rz(128*pi) out[0]; -rz(128*pi) b[5]; -cx b[5],out[1]; -rz(-128*pi) out[1]; -cx b[5],out[1]; -rz(128*pi) out[1]; -cx b[5],a[5]; -rz(-128*pi) a[5]; -cx a[5],out[1]; -rz(128*pi) out[1]; -cx a[5],out[1]; -rz(-128*pi) out[1]; -cx b[5],a[5]; -rz(128*pi) a[5]; -cx a[5],out[1]; -rz(-128*pi) out[1]; -cx a[5],out[1]; -rz(128*pi) out[1]; -rz(64*pi) b[5]; -cx b[5],out[2]; -rz(-64*pi) out[2]; -cx b[5],out[2]; -rz(64*pi) out[2]; -cx b[5],a[5]; -rz(-64*pi) a[5]; -cx a[5],out[2]; -rz(64*pi) out[2]; -cx a[5],out[2]; -rz(-64*pi) out[2]; -cx b[5],a[5]; -rz(64*pi) a[5]; -cx a[5],out[2]; -rz(-64*pi) out[2]; -cx a[5],out[2]; -rz(64*pi) out[2]; -rz(32*pi) b[5]; -cx b[5],out[3]; -rz(-32*pi) out[3]; -cx b[5],out[3]; -rz(32*pi) out[3]; -cx b[5],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[3]; -rz(32*pi) out[3]; -cx a[5],out[3]; -rz(-32*pi) out[3]; -cx b[5],a[5]; -rz(32*pi) a[5]; -cx a[5],out[3]; -rz(-32*pi) out[3]; -cx a[5],out[3]; -rz(32*pi) out[3]; -rz(16*pi) b[5]; -cx b[5],out[4]; -rz(-16*pi) out[4]; -cx b[5],out[4]; -rz(16*pi) out[4]; -cx b[5],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[4]; -rz(16*pi) out[4]; -cx a[5],out[4]; -rz(-16*pi) out[4]; -cx b[5],a[5]; -rz(16*pi) a[5]; -cx a[5],out[4]; -rz(-16*pi) out[4]; -cx a[5],out[4]; -rz(16*pi) out[4]; -rz(8*pi) b[5]; -cx b[5],out[5]; -rz(-8*pi) out[5]; -cx b[5],out[5]; -rz(8*pi) out[5]; -cx b[5],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[5]; -rz(8*pi) out[5]; -cx a[5],out[5]; -rz(-8*pi) out[5]; -cx b[5],a[5]; -rz(8*pi) a[5]; -cx a[5],out[5]; -rz(-8*pi) out[5]; -cx a[5],out[5]; -rz(8*pi) out[5]; -rz(4*pi) b[5]; -cx b[5],out[6]; -rz(-4*pi) out[6]; -cx b[5],out[6]; -rz(4*pi) out[6]; -cx b[5],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[6]; -rz(4*pi) out[6]; -cx a[5],out[6]; -rz(-4*pi) out[6]; -cx b[5],a[5]; -rz(4*pi) a[5]; -cx a[5],out[6]; -rz(-4*pi) out[6]; -cx a[5],out[6]; -rz(4*pi) out[6]; -rz(2*pi) b[5]; -cx b[5],out[7]; -rz(-2*pi) out[7]; -cx b[5],out[7]; -rz(2*pi) out[7]; -cx b[5],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[7]; -rz(2*pi) out[7]; -cx a[5],out[7]; -rz(-2*pi) out[7]; -cx b[5],a[5]; -rz(2*pi) a[5]; -cx a[5],out[7]; -rz(-2*pi) out[7]; -cx a[5],out[7]; -rz(2*pi) out[7]; -rz(pi) b[5]; -cx b[5],out[8]; -rz(-pi) out[8]; -cx b[5],out[8]; -rz(pi) out[8]; -cx b[5],a[5]; -rz(-pi) a[5]; -cx a[5],out[8]; -rz(pi) out[8]; -cx a[5],out[8]; -rz(-pi) out[8]; -cx b[5],a[5]; -rz(pi) a[5]; -cx a[5],out[8]; -rz(-pi) out[8]; -cx a[5],out[8]; -rz(pi) out[8]; -rz(pi/2) b[5]; -cx b[5],out[9]; -rz(-pi/2) out[9]; -cx b[5],out[9]; -rz(pi/2) out[9]; -cx b[5],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[9]; -rz(pi/2) out[9]; -cx a[5],out[9]; -rz(-pi/2) out[9]; -cx b[5],a[5]; -rz(pi/2) a[5]; -cx a[5],out[9]; -rz(-pi/2) out[9]; -cx a[5],out[9]; -rz(pi/2) out[9]; -rz(pi/4) b[5]; -cx b[5],out[10]; -rz(-pi/4) out[10]; -cx b[5],out[10]; -rz(pi/4) out[10]; -cx b[5],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[10]; -rz(pi/4) out[10]; -cx a[5],out[10]; -rz(-pi/4) out[10]; -cx b[5],a[5]; -rz(pi/4) a[5]; -cx a[5],out[10]; -rz(-pi/4) out[10]; -cx a[5],out[10]; -rz(pi/4) out[10]; -rz(pi/8) b[5]; -cx b[5],out[11]; -rz(-pi/8) out[11]; -cx b[5],out[11]; -rz(pi/8) out[11]; -cx b[5],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[11]; -rz(pi/8) out[11]; -cx a[5],out[11]; -rz(-pi/8) out[11]; -cx b[5],a[5]; -rz(pi/8) a[5]; -cx a[5],out[11]; -rz(-pi/8) out[11]; -cx a[5],out[11]; -rz(pi/8) out[11]; -rz(pi/16) b[5]; -cx b[5],out[12]; -rz(-pi/16) out[12]; -cx b[5],out[12]; -rz(pi/16) out[12]; -cx b[5],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[12]; -rz(pi/16) out[12]; -cx a[5],out[12]; -rz(-pi/16) out[12]; -cx b[5],a[5]; -rz(pi/16) a[5]; -cx a[5],out[12]; -rz(-pi/16) out[12]; -cx a[5],out[12]; -rz(pi/16) out[12]; -rz(pi/32) b[5]; -cx b[5],out[13]; -rz(-pi/32) out[13]; -cx b[5],out[13]; -rz(pi/32) out[13]; -cx b[5],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[13]; -rz(pi/32) out[13]; -cx a[5],out[13]; -rz(-pi/32) out[13]; -cx b[5],a[5]; -rz(pi/32) a[5]; -cx a[5],out[13]; -rz(-pi/32) out[13]; -cx a[5],out[13]; -rz(pi/32) out[13]; -rz(pi/64) b[5]; -cx b[5],out[14]; -rz(-pi/64) out[14]; -cx b[5],out[14]; -rz(pi/64) out[14]; -cx b[5],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[14]; -rz(pi/64) out[14]; -cx a[5],out[14]; -rz(-pi/64) out[14]; -cx b[5],a[5]; -rz(pi/64) a[5]; -cx a[5],out[14]; -rz(-pi/64) out[14]; -cx a[5],out[14]; -rz(pi/64) out[14]; -rz(pi/128) b[5]; -cx b[5],out[15]; -rz(-pi/128) out[15]; -cx b[5],out[15]; -rz(pi/128) out[15]; -cx b[5],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[15]; -rz(pi/128) out[15]; -cx a[5],out[15]; -rz(-pi/128) out[15]; -cx b[5],a[5]; -rz(pi/128) a[5]; -cx a[5],out[15]; -rz(-pi/128) out[15]; -cx a[5],out[15]; -rz(pi/128) out[15]; -cx b[4],a[5]; -rz(-128*pi) a[5]; -cx a[5],out[0]; -rz(128*pi) out[0]; -cx a[5],out[0]; -rz(-128*pi) out[0]; -cx b[4],a[5]; -rz(128*pi) a[5]; -cx a[5],out[0]; -rz(-128*pi) out[0]; -cx a[5],out[0]; -rz(128*pi) out[0]; -cx b[3],out[0]; -rz(-64*pi) out[0]; -cx b[3],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[4]; -cx b[4],out[1]; -rz(-64*pi) out[1]; -cx b[4],out[1]; -rz(64*pi) out[1]; -cx b[4],a[5]; -rz(-64*pi) a[5]; -cx a[5],out[1]; -rz(64*pi) out[1]; -cx a[5],out[1]; -rz(-64*pi) out[1]; -cx b[4],a[5]; -rz(64*pi) a[5]; -cx a[5],out[1]; -rz(-64*pi) out[1]; -cx a[5],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[4]; -cx b[4],out[2]; -rz(-32*pi) out[2]; -cx b[4],out[2]; -rz(32*pi) out[2]; -cx b[4],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[2]; -rz(32*pi) out[2]; -cx a[5],out[2]; -rz(-32*pi) out[2]; -cx b[4],a[5]; -rz(32*pi) a[5]; -cx a[5],out[2]; -rz(-32*pi) out[2]; -cx a[5],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[4]; -cx b[4],out[3]; -rz(-16*pi) out[3]; -cx b[4],out[3]; -rz(16*pi) out[3]; -cx b[4],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[3]; -rz(16*pi) out[3]; -cx a[5],out[3]; -rz(-16*pi) out[3]; -cx b[4],a[5]; -rz(16*pi) a[5]; -cx a[5],out[3]; -rz(-16*pi) out[3]; -cx a[5],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[4]; -cx b[4],out[4]; -rz(-8*pi) out[4]; -cx b[4],out[4]; -rz(8*pi) out[4]; -cx b[4],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[4]; -rz(8*pi) out[4]; -cx a[5],out[4]; -rz(-8*pi) out[4]; -cx b[4],a[5]; -rz(8*pi) a[5]; -cx a[5],out[4]; -rz(-8*pi) out[4]; -cx a[5],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[4]; -cx b[4],out[5]; -rz(-4*pi) out[5]; -cx b[4],out[5]; -rz(4*pi) out[5]; -cx b[4],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[5]; -rz(4*pi) out[5]; -cx a[5],out[5]; -rz(-4*pi) out[5]; -cx b[4],a[5]; -rz(4*pi) a[5]; -cx a[5],out[5]; -rz(-4*pi) out[5]; -cx a[5],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[4]; -cx b[4],out[6]; -rz(-2*pi) out[6]; -cx b[4],out[6]; -rz(2*pi) out[6]; -cx b[4],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[6]; -rz(2*pi) out[6]; -cx a[5],out[6]; -rz(-2*pi) out[6]; -cx b[4],a[5]; -rz(2*pi) a[5]; -cx a[5],out[6]; -rz(-2*pi) out[6]; -cx a[5],out[6]; -rz(2*pi) out[6]; -rz(pi) b[4]; -cx b[4],out[7]; -rz(-pi) out[7]; -cx b[4],out[7]; -rz(pi) out[7]; -cx b[4],a[5]; -rz(-pi) a[5]; -cx a[5],out[7]; -rz(pi) out[7]; -cx a[5],out[7]; -rz(-pi) out[7]; -cx b[4],a[5]; -rz(pi) a[5]; -cx a[5],out[7]; -rz(-pi) out[7]; -cx a[5],out[7]; -rz(pi) out[7]; -rz(pi/2) b[4]; -cx b[4],out[8]; -rz(-pi/2) out[8]; -cx b[4],out[8]; -rz(pi/2) out[8]; -cx b[4],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[8]; -rz(pi/2) out[8]; -cx a[5],out[8]; -rz(-pi/2) out[8]; -cx b[4],a[5]; -rz(pi/2) a[5]; -cx a[5],out[8]; -rz(-pi/2) out[8]; -cx a[5],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[4]; -cx b[4],out[9]; -rz(-pi/4) out[9]; -cx b[4],out[9]; -rz(pi/4) out[9]; -cx b[4],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[9]; -rz(pi/4) out[9]; -cx a[5],out[9]; -rz(-pi/4) out[9]; -cx b[4],a[5]; -rz(pi/4) a[5]; -cx a[5],out[9]; -rz(-pi/4) out[9]; -cx a[5],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[4]; -cx b[4],out[10]; -rz(-pi/8) out[10]; -cx b[4],out[10]; -rz(pi/8) out[10]; -cx b[4],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[10]; -rz(pi/8) out[10]; -cx a[5],out[10]; -rz(-pi/8) out[10]; -cx b[4],a[5]; -rz(pi/8) a[5]; -cx a[5],out[10]; -rz(-pi/8) out[10]; -cx a[5],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[4]; -cx b[4],out[11]; -rz(-pi/16) out[11]; -cx b[4],out[11]; -rz(pi/16) out[11]; -cx b[4],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[11]; -rz(pi/16) out[11]; -cx a[5],out[11]; -rz(-pi/16) out[11]; -cx b[4],a[5]; -rz(pi/16) a[5]; -cx a[5],out[11]; -rz(-pi/16) out[11]; -cx a[5],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[4]; -cx b[4],out[12]; -rz(-pi/32) out[12]; -cx b[4],out[12]; -rz(pi/32) out[12]; -cx b[4],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[12]; -rz(pi/32) out[12]; -cx a[5],out[12]; -rz(-pi/32) out[12]; -cx b[4],a[5]; -rz(pi/32) a[5]; -cx a[5],out[12]; -rz(-pi/32) out[12]; -cx a[5],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[4]; -cx b[4],out[13]; -rz(-pi/64) out[13]; -cx b[4],out[13]; -rz(pi/64) out[13]; -cx b[4],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[13]; -rz(pi/64) out[13]; -cx a[5],out[13]; -rz(-pi/64) out[13]; -cx b[4],a[5]; -rz(pi/64) a[5]; -cx a[5],out[13]; -rz(-pi/64) out[13]; -cx a[5],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[4]; -cx b[4],out[14]; -rz(-pi/128) out[14]; -cx b[4],out[14]; -rz(pi/128) out[14]; -cx b[4],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[14]; -rz(pi/128) out[14]; -cx a[5],out[14]; -rz(-pi/128) out[14]; -cx b[4],a[5]; -rz(pi/128) a[5]; -cx a[5],out[14]; -rz(-pi/128) out[14]; -cx a[5],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[4]; -cx b[4],out[15]; -rz(-pi/256) out[15]; -cx b[4],out[15]; -rz(pi/256) out[15]; -cx b[4],a[5]; -rz(-pi/256) a[5]; -cx a[5],out[15]; -rz(pi/256) out[15]; -cx a[5],out[15]; -rz(-pi/256) out[15]; -cx b[4],a[5]; -rz(pi/256) a[5]; -cx a[5],out[15]; -rz(-pi/256) out[15]; -cx a[5],out[15]; -rz(pi/256) out[15]; -cx b[3],a[5]; -rz(-64*pi) a[5]; -cx a[5],out[0]; -rz(64*pi) out[0]; -cx a[5],out[0]; -rz(-64*pi) out[0]; -cx b[3],a[5]; -rz(64*pi) a[5]; -cx a[5],out[0]; -rz(-64*pi) out[0]; -cx a[5],out[0]; -rz(64*pi) out[0]; -cx b[2],out[0]; -rz(-32*pi) out[0]; -cx b[2],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[3]; -cx b[3],out[1]; -rz(-32*pi) out[1]; -cx b[3],out[1]; -rz(32*pi) out[1]; -cx b[3],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[1]; -rz(32*pi) out[1]; -cx a[5],out[1]; -rz(-32*pi) out[1]; -cx b[3],a[5]; -rz(32*pi) a[5]; -cx a[5],out[1]; -rz(-32*pi) out[1]; -cx a[5],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[3]; -cx b[3],out[2]; -rz(-16*pi) out[2]; -cx b[3],out[2]; -rz(16*pi) out[2]; -cx b[3],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[2]; -rz(16*pi) out[2]; -cx a[5],out[2]; -rz(-16*pi) out[2]; -cx b[3],a[5]; -rz(16*pi) a[5]; -cx a[5],out[2]; -rz(-16*pi) out[2]; -cx a[5],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[3]; -cx b[3],out[3]; -rz(-8*pi) out[3]; -cx b[3],out[3]; -rz(8*pi) out[3]; -cx b[3],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[3]; -rz(8*pi) out[3]; -cx a[5],out[3]; -rz(-8*pi) out[3]; -cx b[3],a[5]; -rz(8*pi) a[5]; -cx a[5],out[3]; -rz(-8*pi) out[3]; -cx a[5],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[3]; -cx b[3],out[4]; -rz(-4*pi) out[4]; -cx b[3],out[4]; -rz(4*pi) out[4]; -cx b[3],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[4]; -rz(4*pi) out[4]; -cx a[5],out[4]; -rz(-4*pi) out[4]; -cx b[3],a[5]; -rz(4*pi) a[5]; -cx a[5],out[4]; -rz(-4*pi) out[4]; -cx a[5],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[3]; -cx b[3],out[5]; -rz(-2*pi) out[5]; -cx b[3],out[5]; -rz(2*pi) out[5]; -cx b[3],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[5]; -rz(2*pi) out[5]; -cx a[5],out[5]; -rz(-2*pi) out[5]; -cx b[3],a[5]; -rz(2*pi) a[5]; -cx a[5],out[5]; -rz(-2*pi) out[5]; -cx a[5],out[5]; -rz(2*pi) out[5]; -rz(pi) b[3]; -cx b[3],out[6]; -rz(-pi) out[6]; -cx b[3],out[6]; -rz(pi) out[6]; -cx b[3],a[5]; -rz(-pi) a[5]; -cx a[5],out[6]; -rz(pi) out[6]; -cx a[5],out[6]; -rz(-pi) out[6]; -cx b[3],a[5]; -rz(pi) a[5]; -cx a[5],out[6]; -rz(-pi) out[6]; -cx a[5],out[6]; -rz(pi) out[6]; -rz(pi/2) b[3]; -cx b[3],out[7]; -rz(-pi/2) out[7]; -cx b[3],out[7]; -rz(pi/2) out[7]; -cx b[3],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[7]; -rz(pi/2) out[7]; -cx a[5],out[7]; -rz(-pi/2) out[7]; -cx b[3],a[5]; -rz(pi/2) a[5]; -cx a[5],out[7]; -rz(-pi/2) out[7]; -cx a[5],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[3]; -cx b[3],out[8]; -rz(-pi/4) out[8]; -cx b[3],out[8]; -rz(pi/4) out[8]; -cx b[3],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[8]; -rz(pi/4) out[8]; -cx a[5],out[8]; -rz(-pi/4) out[8]; -cx b[3],a[5]; -rz(pi/4) a[5]; -cx a[5],out[8]; -rz(-pi/4) out[8]; -cx a[5],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[3]; -cx b[3],out[9]; -rz(-pi/8) out[9]; -cx b[3],out[9]; -rz(pi/8) out[9]; -cx b[3],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[9]; -rz(pi/8) out[9]; -cx a[5],out[9]; -rz(-pi/8) out[9]; -cx b[3],a[5]; -rz(pi/8) a[5]; -cx a[5],out[9]; -rz(-pi/8) out[9]; -cx a[5],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[3]; -cx b[3],out[10]; -rz(-pi/16) out[10]; -cx b[3],out[10]; -rz(pi/16) out[10]; -cx b[3],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[10]; -rz(pi/16) out[10]; -cx a[5],out[10]; -rz(-pi/16) out[10]; -cx b[3],a[5]; -rz(pi/16) a[5]; -cx a[5],out[10]; -rz(-pi/16) out[10]; -cx a[5],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[3]; -cx b[3],out[11]; -rz(-pi/32) out[11]; -cx b[3],out[11]; -rz(pi/32) out[11]; -cx b[3],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[11]; -rz(pi/32) out[11]; -cx a[5],out[11]; -rz(-pi/32) out[11]; -cx b[3],a[5]; -rz(pi/32) a[5]; -cx a[5],out[11]; -rz(-pi/32) out[11]; -cx a[5],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[3]; -cx b[3],out[12]; -rz(-pi/64) out[12]; -cx b[3],out[12]; -rz(pi/64) out[12]; -cx b[3],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[12]; -rz(pi/64) out[12]; -cx a[5],out[12]; -rz(-pi/64) out[12]; -cx b[3],a[5]; -rz(pi/64) a[5]; -cx a[5],out[12]; -rz(-pi/64) out[12]; -cx a[5],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[3]; -cx b[3],out[13]; -rz(-pi/128) out[13]; -cx b[3],out[13]; -rz(pi/128) out[13]; -cx b[3],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[13]; -rz(pi/128) out[13]; -cx a[5],out[13]; -rz(-pi/128) out[13]; -cx b[3],a[5]; -rz(pi/128) a[5]; -cx a[5],out[13]; -rz(-pi/128) out[13]; -cx a[5],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[3]; -cx b[3],out[14]; -rz(-pi/256) out[14]; -cx b[3],out[14]; -rz(pi/256) out[14]; -cx b[3],a[5]; -rz(-pi/256) a[5]; -cx a[5],out[14]; -rz(pi/256) out[14]; -cx a[5],out[14]; -rz(-pi/256) out[14]; -cx b[3],a[5]; -rz(pi/256) a[5]; -cx a[5],out[14]; -rz(-pi/256) out[14]; -cx a[5],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[3]; -cx b[3],out[15]; -rz(-pi/512) out[15]; -cx b[3],out[15]; -rz(pi/512) out[15]; -cx b[3],a[5]; -rz(-pi/512) a[5]; -cx a[5],out[15]; -rz(pi/512) out[15]; -cx a[5],out[15]; -rz(-pi/512) out[15]; -cx b[3],a[5]; -rz(pi/512) a[5]; -cx a[5],out[15]; -rz(-pi/512) out[15]; -cx a[5],out[15]; -rz(pi/512) out[15]; -cx b[2],a[5]; -rz(-32*pi) a[5]; -cx a[5],out[0]; -rz(32*pi) out[0]; -cx a[5],out[0]; -rz(-32*pi) out[0]; -cx b[2],a[5]; -rz(32*pi) a[5]; -cx a[5],out[0]; -rz(-32*pi) out[0]; -cx a[5],out[0]; -rz(32*pi) out[0]; -cx b[1],out[0]; -rz(-16*pi) out[0]; -cx b[1],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[2]; -cx b[2],out[1]; -rz(-16*pi) out[1]; -cx b[2],out[1]; -rz(16*pi) out[1]; -cx b[2],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[1]; -rz(16*pi) out[1]; -cx a[5],out[1]; -rz(-16*pi) out[1]; -cx b[2],a[5]; -rz(16*pi) a[5]; -cx a[5],out[1]; -rz(-16*pi) out[1]; -cx a[5],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[2]; -cx b[2],out[2]; -rz(-8*pi) out[2]; -cx b[2],out[2]; -rz(8*pi) out[2]; -cx b[2],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[2]; -rz(8*pi) out[2]; -cx a[5],out[2]; -rz(-8*pi) out[2]; -cx b[2],a[5]; -rz(8*pi) a[5]; -cx a[5],out[2]; -rz(-8*pi) out[2]; -cx a[5],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[2]; -cx b[2],out[3]; -rz(-4*pi) out[3]; -cx b[2],out[3]; -rz(4*pi) out[3]; -cx b[2],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[3]; -rz(4*pi) out[3]; -cx a[5],out[3]; -rz(-4*pi) out[3]; -cx b[2],a[5]; -rz(4*pi) a[5]; -cx a[5],out[3]; -rz(-4*pi) out[3]; -cx a[5],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[2]; -cx b[2],out[4]; -rz(-2*pi) out[4]; -cx b[2],out[4]; -rz(2*pi) out[4]; -cx b[2],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[4]; -rz(2*pi) out[4]; -cx a[5],out[4]; -rz(-2*pi) out[4]; -cx b[2],a[5]; -rz(2*pi) a[5]; -cx a[5],out[4]; -rz(-2*pi) out[4]; -cx a[5],out[4]; -rz(2*pi) out[4]; -rz(pi) b[2]; -cx b[2],out[5]; -rz(-pi) out[5]; -cx b[2],out[5]; -rz(pi) out[5]; -cx b[2],a[5]; -rz(-pi) a[5]; -cx a[5],out[5]; -rz(pi) out[5]; -cx a[5],out[5]; -rz(-pi) out[5]; -cx b[2],a[5]; -rz(pi) a[5]; -cx a[5],out[5]; -rz(-pi) out[5]; -cx a[5],out[5]; -rz(pi) out[5]; -rz(pi/2) b[2]; -cx b[2],out[6]; -rz(-pi/2) out[6]; -cx b[2],out[6]; -rz(pi/2) out[6]; -cx b[2],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[6]; -rz(pi/2) out[6]; -cx a[5],out[6]; -rz(-pi/2) out[6]; -cx b[2],a[5]; -rz(pi/2) a[5]; -cx a[5],out[6]; -rz(-pi/2) out[6]; -cx a[5],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[2]; -cx b[2],out[7]; -rz(-pi/4) out[7]; -cx b[2],out[7]; -rz(pi/4) out[7]; -cx b[2],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[7]; -rz(pi/4) out[7]; -cx a[5],out[7]; -rz(-pi/4) out[7]; -cx b[2],a[5]; -rz(pi/4) a[5]; -cx a[5],out[7]; -rz(-pi/4) out[7]; -cx a[5],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[2]; -cx b[2],out[8]; -rz(-pi/8) out[8]; -cx b[2],out[8]; -rz(pi/8) out[8]; -cx b[2],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[8]; -rz(pi/8) out[8]; -cx a[5],out[8]; -rz(-pi/8) out[8]; -cx b[2],a[5]; -rz(pi/8) a[5]; -cx a[5],out[8]; -rz(-pi/8) out[8]; -cx a[5],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[2]; -cx b[2],out[9]; -rz(-pi/16) out[9]; -cx b[2],out[9]; -rz(pi/16) out[9]; -cx b[2],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[9]; -rz(pi/16) out[9]; -cx a[5],out[9]; -rz(-pi/16) out[9]; -cx b[2],a[5]; -rz(pi/16) a[5]; -cx a[5],out[9]; -rz(-pi/16) out[9]; -cx a[5],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[2]; -cx b[2],out[10]; -rz(-pi/32) out[10]; -cx b[2],out[10]; -rz(pi/32) out[10]; -cx b[2],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[10]; -rz(pi/32) out[10]; -cx a[5],out[10]; -rz(-pi/32) out[10]; -cx b[2],a[5]; -rz(pi/32) a[5]; -cx a[5],out[10]; -rz(-pi/32) out[10]; -cx a[5],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[2]; -cx b[2],out[11]; -rz(-pi/64) out[11]; -cx b[2],out[11]; -rz(pi/64) out[11]; -cx b[2],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[11]; -rz(pi/64) out[11]; -cx a[5],out[11]; -rz(-pi/64) out[11]; -cx b[2],a[5]; -rz(pi/64) a[5]; -cx a[5],out[11]; -rz(-pi/64) out[11]; -cx a[5],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[2]; -cx b[2],out[12]; -rz(-pi/128) out[12]; -cx b[2],out[12]; -rz(pi/128) out[12]; -cx b[2],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[12]; -rz(pi/128) out[12]; -cx a[5],out[12]; -rz(-pi/128) out[12]; -cx b[2],a[5]; -rz(pi/128) a[5]; -cx a[5],out[12]; -rz(-pi/128) out[12]; -cx a[5],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[2]; -cx b[2],out[13]; -rz(-pi/256) out[13]; -cx b[2],out[13]; -rz(pi/256) out[13]; -cx b[2],a[5]; -rz(-pi/256) a[5]; -cx a[5],out[13]; -rz(pi/256) out[13]; -cx a[5],out[13]; -rz(-pi/256) out[13]; -cx b[2],a[5]; -rz(pi/256) a[5]; -cx a[5],out[13]; -rz(-pi/256) out[13]; -cx a[5],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[2]; -cx b[2],out[14]; -rz(-pi/512) out[14]; -cx b[2],out[14]; -rz(pi/512) out[14]; -cx b[2],a[5]; -rz(-pi/512) a[5]; -cx a[5],out[14]; -rz(pi/512) out[14]; -cx a[5],out[14]; -rz(-pi/512) out[14]; -cx b[2],a[5]; -rz(pi/512) a[5]; -cx a[5],out[14]; -rz(-pi/512) out[14]; -cx a[5],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[2]; -cx b[2],out[15]; -rz(-pi/1024) out[15]; -cx b[2],out[15]; -rz(pi/1024) out[15]; -cx b[2],a[5]; -rz(-pi/1024) a[5]; -cx a[5],out[15]; -rz(pi/1024) out[15]; -cx a[5],out[15]; -rz(-pi/1024) out[15]; -cx b[2],a[5]; -rz(pi/1024) a[5]; -cx a[5],out[15]; -rz(-pi/1024) out[15]; -cx a[5],out[15]; -rz(pi/1024) out[15]; -cx b[1],a[5]; -rz(-16*pi) a[5]; -cx a[5],out[0]; -rz(16*pi) out[0]; -cx a[5],out[0]; -rz(-16*pi) out[0]; -cx b[1],a[5]; -rz(16*pi) a[5]; -cx a[5],out[0]; -rz(-16*pi) out[0]; -cx a[5],out[0]; -rz(16*pi) out[0]; -cx b[0],out[0]; -rz(-8*pi) out[0]; -cx b[0],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[1]; -cx b[1],out[1]; -rz(-8*pi) out[1]; -cx b[1],out[1]; -rz(8*pi) out[1]; -cx b[1],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[1]; -rz(8*pi) out[1]; -cx a[5],out[1]; -rz(-8*pi) out[1]; -cx b[1],a[5]; -rz(8*pi) a[5]; -cx a[5],out[1]; -rz(-8*pi) out[1]; -cx a[5],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[1]; -cx b[1],out[2]; -rz(-4*pi) out[2]; -cx b[1],out[2]; -rz(4*pi) out[2]; -cx b[1],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[2]; -rz(4*pi) out[2]; -cx a[5],out[2]; -rz(-4*pi) out[2]; -cx b[1],a[5]; -rz(4*pi) a[5]; -cx a[5],out[2]; -rz(-4*pi) out[2]; -cx a[5],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[1]; -cx b[1],out[3]; -rz(-2*pi) out[3]; -cx b[1],out[3]; -rz(2*pi) out[3]; -cx b[1],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[3]; -rz(2*pi) out[3]; -cx a[5],out[3]; -rz(-2*pi) out[3]; -cx b[1],a[5]; -rz(2*pi) a[5]; -cx a[5],out[3]; -rz(-2*pi) out[3]; -cx a[5],out[3]; -rz(2*pi) out[3]; -rz(pi) b[1]; -cx b[1],out[4]; -rz(-pi) out[4]; -cx b[1],out[4]; -rz(pi) out[4]; -cx b[1],a[5]; -rz(-pi) a[5]; -cx a[5],out[4]; -rz(pi) out[4]; -cx a[5],out[4]; -rz(-pi) out[4]; -cx b[1],a[5]; -rz(pi) a[5]; -cx a[5],out[4]; -rz(-pi) out[4]; -cx a[5],out[4]; -rz(pi) out[4]; -rz(pi/2) b[1]; -cx b[1],out[5]; -rz(-pi/2) out[5]; -cx b[1],out[5]; -rz(pi/2) out[5]; -cx b[1],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[5]; -rz(pi/2) out[5]; -cx a[5],out[5]; -rz(-pi/2) out[5]; -cx b[1],a[5]; -rz(pi/2) a[5]; -cx a[5],out[5]; -rz(-pi/2) out[5]; -cx a[5],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[1]; -cx b[1],out[6]; -rz(-pi/4) out[6]; -cx b[1],out[6]; -rz(pi/4) out[6]; -cx b[1],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[6]; -rz(pi/4) out[6]; -cx a[5],out[6]; -rz(-pi/4) out[6]; -cx b[1],a[5]; -rz(pi/4) a[5]; -cx a[5],out[6]; -rz(-pi/4) out[6]; -cx a[5],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[1]; -cx b[1],out[7]; -rz(-pi/8) out[7]; -cx b[1],out[7]; -rz(pi/8) out[7]; -cx b[1],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[7]; -rz(pi/8) out[7]; -cx a[5],out[7]; -rz(-pi/8) out[7]; -cx b[1],a[5]; -rz(pi/8) a[5]; -cx a[5],out[7]; -rz(-pi/8) out[7]; -cx a[5],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[1]; -cx b[1],out[8]; -rz(-pi/16) out[8]; -cx b[1],out[8]; -rz(pi/16) out[8]; -cx b[1],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[8]; -rz(pi/16) out[8]; -cx a[5],out[8]; -rz(-pi/16) out[8]; -cx b[1],a[5]; -rz(pi/16) a[5]; -cx a[5],out[8]; -rz(-pi/16) out[8]; -cx a[5],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[1]; -cx b[1],out[9]; -rz(-pi/32) out[9]; -cx b[1],out[9]; -rz(pi/32) out[9]; -cx b[1],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[9]; -rz(pi/32) out[9]; -cx a[5],out[9]; -rz(-pi/32) out[9]; -cx b[1],a[5]; -rz(pi/32) a[5]; -cx a[5],out[9]; -rz(-pi/32) out[9]; -cx a[5],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[1]; -cx b[1],out[10]; -rz(-pi/64) out[10]; -cx b[1],out[10]; -rz(pi/64) out[10]; -cx b[1],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[10]; -rz(pi/64) out[10]; -cx a[5],out[10]; -rz(-pi/64) out[10]; -cx b[1],a[5]; -rz(pi/64) a[5]; -cx a[5],out[10]; -rz(-pi/64) out[10]; -cx a[5],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[1]; -cx b[1],out[11]; -rz(-pi/128) out[11]; -cx b[1],out[11]; -rz(pi/128) out[11]; -cx b[1],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[11]; -rz(pi/128) out[11]; -cx a[5],out[11]; -rz(-pi/128) out[11]; -cx b[1],a[5]; -rz(pi/128) a[5]; -cx a[5],out[11]; -rz(-pi/128) out[11]; -cx a[5],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[1]; -cx b[1],out[12]; -rz(-pi/256) out[12]; -cx b[1],out[12]; -rz(pi/256) out[12]; -cx b[1],a[5]; -rz(-pi/256) a[5]; -cx a[5],out[12]; -rz(pi/256) out[12]; -cx a[5],out[12]; -rz(-pi/256) out[12]; -cx b[1],a[5]; -rz(pi/256) a[5]; -cx a[5],out[12]; -rz(-pi/256) out[12]; -cx a[5],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[1]; -cx b[1],out[13]; -rz(-pi/512) out[13]; -cx b[1],out[13]; -rz(pi/512) out[13]; -cx b[1],a[5]; -rz(-pi/512) a[5]; -cx a[5],out[13]; -rz(pi/512) out[13]; -cx a[5],out[13]; -rz(-pi/512) out[13]; -cx b[1],a[5]; -rz(pi/512) a[5]; -cx a[5],out[13]; -rz(-pi/512) out[13]; -cx a[5],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[1]; -cx b[1],out[14]; -rz(-pi/1024) out[14]; -cx b[1],out[14]; -rz(pi/1024) out[14]; -cx b[1],a[5]; -rz(-pi/1024) a[5]; -cx a[5],out[14]; -rz(pi/1024) out[14]; -cx a[5],out[14]; -rz(-pi/1024) out[14]; -cx b[1],a[5]; -rz(pi/1024) a[5]; -cx a[5],out[14]; -rz(-pi/1024) out[14]; -cx a[5],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[1]; -cx b[1],out[15]; -rz(-pi/2048) out[15]; -cx b[1],out[15]; -rz(pi/2048) out[15]; -cx b[1],a[5]; -rz(-pi/2048) a[5]; -cx a[5],out[15]; -rz(pi/2048) out[15]; -cx a[5],out[15]; -rz(-pi/2048) out[15]; -cx b[1],a[5]; -rz(pi/2048) a[5]; -cx a[5],out[15]; -rz(-pi/2048) out[15]; -cx a[5],out[15]; -rz(pi/2048) out[15]; -cx b[0],a[5]; -rz(-8*pi) a[5]; -cx a[5],out[0]; -rz(8*pi) out[0]; -cx a[5],out[0]; -rz(-8*pi) out[0]; -cx b[0],a[5]; -rz(8*pi) a[5]; -cx a[5],out[0]; -rz(-8*pi) out[0]; -cx a[5],out[0]; -rz(8*pi) out[0]; -rz(4*pi) b[0]; -cx b[0],out[1]; -rz(-4*pi) out[1]; -cx b[0],out[1]; -rz(4*pi) out[1]; -cx b[0],a[5]; -rz(-4*pi) a[5]; -cx a[5],out[1]; -rz(4*pi) out[1]; -cx a[5],out[1]; -rz(-4*pi) out[1]; -cx b[0],a[5]; -rz(4*pi) a[5]; -cx a[5],out[1]; -rz(-4*pi) out[1]; -cx a[5],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[0]; -cx b[0],out[2]; -rz(-2*pi) out[2]; -cx b[0],out[2]; -rz(2*pi) out[2]; -cx b[0],a[5]; -rz(-2*pi) a[5]; -cx a[5],out[2]; -rz(2*pi) out[2]; -cx a[5],out[2]; -rz(-2*pi) out[2]; -cx b[0],a[5]; -rz(2*pi) a[5]; -cx a[5],out[2]; -rz(-2*pi) out[2]; -cx a[5],out[2]; -rz(2*pi) out[2]; -rz(pi) b[0]; -cx b[0],out[3]; -rz(-pi) out[3]; -cx b[0],out[3]; -rz(pi) out[3]; -cx b[0],a[5]; -rz(-pi) a[5]; -cx a[5],out[3]; -rz(pi) out[3]; -cx a[5],out[3]; -rz(-pi) out[3]; -cx b[0],a[5]; -rz(pi) a[5]; -cx a[5],out[3]; -rz(-pi) out[3]; -cx a[5],out[3]; -rz(pi) out[3]; -rz(pi/2) b[0]; -cx b[0],out[4]; -rz(-pi/2) out[4]; -cx b[0],out[4]; -rz(pi/2) out[4]; -cx b[0],a[5]; -rz(-pi/2) a[5]; -cx a[5],out[4]; -rz(pi/2) out[4]; -cx a[5],out[4]; -rz(-pi/2) out[4]; -cx b[0],a[5]; -rz(pi/2) a[5]; -cx a[5],out[4]; -rz(-pi/2) out[4]; -cx a[5],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[0]; -cx b[0],out[5]; -rz(-pi/4) out[5]; -cx b[0],out[5]; -rz(pi/4) out[5]; -cx b[0],a[5]; -rz(-pi/4) a[5]; -cx a[5],out[5]; -rz(pi/4) out[5]; -cx a[5],out[5]; -rz(-pi/4) out[5]; -cx b[0],a[5]; -rz(pi/4) a[5]; -cx a[5],out[5]; -rz(-pi/4) out[5]; -cx a[5],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[0]; -cx b[0],out[6]; -rz(-pi/8) out[6]; -cx b[0],out[6]; -rz(pi/8) out[6]; -cx b[0],a[5]; -rz(-pi/8) a[5]; -cx a[5],out[6]; -rz(pi/8) out[6]; -cx a[5],out[6]; -rz(-pi/8) out[6]; -cx b[0],a[5]; -rz(pi/8) a[5]; -cx a[5],out[6]; -rz(-pi/8) out[6]; -cx a[5],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[0]; -cx b[0],out[7]; -rz(-pi/16) out[7]; -cx b[0],out[7]; -rz(pi/16) out[7]; -cx b[0],a[5]; -rz(-pi/16) a[5]; -cx a[5],out[7]; -rz(pi/16) out[7]; -cx a[5],out[7]; -rz(-pi/16) out[7]; -cx b[0],a[5]; -rz(pi/16) a[5]; -cx a[5],out[7]; -rz(-pi/16) out[7]; -cx a[5],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[0]; -cx b[0],out[8]; -rz(-pi/32) out[8]; -cx b[0],out[8]; -rz(pi/32) out[8]; -cx b[0],a[5]; -rz(-pi/32) a[5]; -cx a[5],out[8]; -rz(pi/32) out[8]; -cx a[5],out[8]; -rz(-pi/32) out[8]; -cx b[0],a[5]; -rz(pi/32) a[5]; -cx a[5],out[8]; -rz(-pi/32) out[8]; -cx a[5],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[0]; -cx b[0],out[9]; -rz(-pi/64) out[9]; -cx b[0],out[9]; -rz(pi/64) out[9]; -cx b[0],a[5]; -rz(-pi/64) a[5]; -cx a[5],out[9]; -rz(pi/64) out[9]; -cx a[5],out[9]; -rz(-pi/64) out[9]; -cx b[0],a[5]; -rz(pi/64) a[5]; -cx a[5],out[9]; -rz(-pi/64) out[9]; -cx a[5],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[0]; -cx b[0],out[10]; -rz(-pi/128) out[10]; -cx b[0],out[10]; -rz(pi/128) out[10]; -cx b[0],a[5]; -rz(-pi/128) a[5]; -cx a[5],out[10]; -rz(pi/128) out[10]; -cx a[5],out[10]; -rz(-pi/128) out[10]; -cx b[0],a[5]; -rz(pi/128) a[5]; -cx a[5],out[10]; -rz(-pi/128) out[10]; -cx a[5],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[0]; -cx b[0],out[11]; -rz(-pi/256) out[11]; -cx b[0],out[11]; -rz(pi/256) out[11]; -cx b[0],a[5]; -rz(-pi/256) a[5]; -cx a[5],out[11]; -rz(pi/256) out[11]; -cx a[5],out[11]; -rz(-pi/256) out[11]; -cx b[0],a[5]; -rz(pi/256) a[5]; -cx a[5],out[11]; -rz(-pi/256) out[11]; -cx a[5],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[0]; -cx b[0],out[12]; -rz(-pi/512) out[12]; -cx b[0],out[12]; -rz(pi/512) out[12]; -cx b[0],a[5]; -rz(-pi/512) a[5]; -cx a[5],out[12]; -rz(pi/512) out[12]; -cx a[5],out[12]; -rz(-pi/512) out[12]; -cx b[0],a[5]; -rz(pi/512) a[5]; -cx a[5],out[12]; -rz(-pi/512) out[12]; -cx a[5],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[0]; -cx b[0],out[13]; -rz(-pi/1024) out[13]; -cx b[0],out[13]; -rz(pi/1024) out[13]; -cx b[0],a[5]; -rz(-pi/1024) a[5]; -cx a[5],out[13]; -rz(pi/1024) out[13]; -cx a[5],out[13]; -rz(-pi/1024) out[13]; -cx b[0],a[5]; -rz(pi/1024) a[5]; -cx a[5],out[13]; -rz(-pi/1024) out[13]; -cx a[5],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[0]; -cx b[0],out[14]; -rz(-pi/2048) out[14]; -cx b[0],out[14]; -rz(pi/2048) out[14]; -cx b[0],a[5]; -rz(-pi/2048) a[5]; -cx a[5],out[14]; -rz(pi/2048) out[14]; -cx a[5],out[14]; -rz(-pi/2048) out[14]; -cx b[0],a[5]; -rz(pi/2048) a[5]; -cx a[5],out[14]; -rz(-pi/2048) out[14]; -cx a[5],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[0]; -cx b[0],out[15]; -rz(-pi/4096) out[15]; -cx b[0],out[15]; -rz(pi/4096) out[15]; -cx b[0],a[5]; -rz(-pi/4096) a[5]; -cx a[5],out[15]; -rz(pi/4096) out[15]; -cx a[5],out[15]; -rz(-pi/4096) out[15]; -cx b[0],a[5]; -rz(pi/4096) a[5]; -cx a[5],out[15]; -rz(-pi/4096) out[15]; -cx a[5],out[15]; -rz(pi/4096) out[15]; -rz(4*pi) b[0]; -rz(8*pi) b[1]; -rz(16*pi) b[2]; -rz(32*pi) b[3]; -rz(64*pi) b[4]; -rz(128*pi) b[5]; -rz(256*pi) b[6]; -rz(512*pi) b[7]; -cx b[7],out[0]; -rz(-512*pi) out[0]; -cx b[7],out[0]; -rz(512*pi) out[0]; -cx b[7],a[4]; -rz(-512*pi) a[4]; -cx a[4],out[0]; -rz(512*pi) out[0]; -cx a[4],out[0]; -rz(-512*pi) out[0]; -cx b[7],a[4]; -rz(512*pi) a[4]; -cx a[4],out[0]; -rz(-512*pi) out[0]; -cx a[4],out[0]; -rz(512*pi) out[0]; -cx b[6],out[0]; -rz(-256*pi) out[0]; -cx b[6],out[0]; -rz(256*pi) out[0]; -rz(256*pi) b[7]; -cx b[7],out[1]; -rz(-256*pi) out[1]; -cx b[7],out[1]; -rz(256*pi) out[1]; -cx b[7],a[4]; -rz(-256*pi) a[4]; -cx a[4],out[1]; -rz(256*pi) out[1]; -cx a[4],out[1]; -rz(-256*pi) out[1]; -cx b[7],a[4]; -rz(256*pi) a[4]; -cx a[4],out[1]; -rz(-256*pi) out[1]; -cx a[4],out[1]; -rz(256*pi) out[1]; -rz(128*pi) b[7]; -cx b[7],out[2]; -rz(-128*pi) out[2]; -cx b[7],out[2]; -rz(128*pi) out[2]; -cx b[7],a[4]; -rz(-128*pi) a[4]; -cx a[4],out[2]; -rz(128*pi) out[2]; -cx a[4],out[2]; -rz(-128*pi) out[2]; -cx b[7],a[4]; -rz(128*pi) a[4]; -cx a[4],out[2]; -rz(-128*pi) out[2]; -cx a[4],out[2]; -rz(128*pi) out[2]; -rz(64*pi) b[7]; -cx b[7],out[3]; -rz(-64*pi) out[3]; -cx b[7],out[3]; -rz(64*pi) out[3]; -cx b[7],a[4]; -rz(-64*pi) a[4]; -cx a[4],out[3]; -rz(64*pi) out[3]; -cx a[4],out[3]; -rz(-64*pi) out[3]; -cx b[7],a[4]; -rz(64*pi) a[4]; -cx a[4],out[3]; -rz(-64*pi) out[3]; -cx a[4],out[3]; -rz(64*pi) out[3]; -rz(32*pi) b[7]; -cx b[7],out[4]; -rz(-32*pi) out[4]; -cx b[7],out[4]; -rz(32*pi) out[4]; -cx b[7],a[4]; -rz(-32*pi) a[4]; -cx a[4],out[4]; -rz(32*pi) out[4]; -cx a[4],out[4]; -rz(-32*pi) out[4]; -cx b[7],a[4]; -rz(32*pi) a[4]; -cx a[4],out[4]; -rz(-32*pi) out[4]; -cx a[4],out[4]; -rz(32*pi) out[4]; -rz(16*pi) b[7]; -cx b[7],out[5]; -rz(-16*pi) out[5]; -cx b[7],out[5]; -rz(16*pi) out[5]; -cx b[7],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[5]; -rz(16*pi) out[5]; -cx a[4],out[5]; -rz(-16*pi) out[5]; -cx b[7],a[4]; -rz(16*pi) a[4]; -cx a[4],out[5]; -rz(-16*pi) out[5]; -cx a[4],out[5]; -rz(16*pi) out[5]; -rz(8*pi) b[7]; -cx b[7],out[6]; -rz(-8*pi) out[6]; -cx b[7],out[6]; -rz(8*pi) out[6]; -cx b[7],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[6]; -rz(8*pi) out[6]; -cx a[4],out[6]; -rz(-8*pi) out[6]; -cx b[7],a[4]; -rz(8*pi) a[4]; -cx a[4],out[6]; -rz(-8*pi) out[6]; -cx a[4],out[6]; -rz(8*pi) out[6]; -rz(4*pi) b[7]; -cx b[7],out[7]; -rz(-4*pi) out[7]; -cx b[7],out[7]; -rz(4*pi) out[7]; -cx b[7],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[7]; -rz(4*pi) out[7]; -cx a[4],out[7]; -rz(-4*pi) out[7]; -cx b[7],a[4]; -rz(4*pi) a[4]; -cx a[4],out[7]; -rz(-4*pi) out[7]; -cx a[4],out[7]; -rz(4*pi) out[7]; -rz(2*pi) b[7]; -cx b[7],out[8]; -rz(-2*pi) out[8]; -cx b[7],out[8]; -rz(2*pi) out[8]; -cx b[7],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[8]; -rz(2*pi) out[8]; -cx a[4],out[8]; -rz(-2*pi) out[8]; -cx b[7],a[4]; -rz(2*pi) a[4]; -cx a[4],out[8]; -rz(-2*pi) out[8]; -cx a[4],out[8]; -rz(2*pi) out[8]; -rz(pi) b[7]; -cx b[7],out[9]; -rz(-pi) out[9]; -cx b[7],out[9]; -rz(pi) out[9]; -cx b[7],a[4]; -rz(-pi) a[4]; -cx a[4],out[9]; -rz(pi) out[9]; -cx a[4],out[9]; -rz(-pi) out[9]; -cx b[7],a[4]; -rz(pi) a[4]; -cx a[4],out[9]; -rz(-pi) out[9]; -cx a[4],out[9]; -rz(pi) out[9]; -rz(pi/2) b[7]; -cx b[7],out[10]; -rz(-pi/2) out[10]; -cx b[7],out[10]; -rz(pi/2) out[10]; -cx b[7],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[10]; -rz(pi/2) out[10]; -cx a[4],out[10]; -rz(-pi/2) out[10]; -cx b[7],a[4]; -rz(pi/2) a[4]; -cx a[4],out[10]; -rz(-pi/2) out[10]; -cx a[4],out[10]; -rz(pi/2) out[10]; -rz(pi/4) b[7]; -cx b[7],out[11]; -rz(-pi/4) out[11]; -cx b[7],out[11]; -rz(pi/4) out[11]; -cx b[7],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[11]; -rz(pi/4) out[11]; -cx a[4],out[11]; -rz(-pi/4) out[11]; -cx b[7],a[4]; -rz(pi/4) a[4]; -cx a[4],out[11]; -rz(-pi/4) out[11]; -cx a[4],out[11]; -rz(pi/4) out[11]; -rz(pi/8) b[7]; -cx b[7],out[12]; -rz(-pi/8) out[12]; -cx b[7],out[12]; -rz(pi/8) out[12]; -cx b[7],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[12]; -rz(pi/8) out[12]; -cx a[4],out[12]; -rz(-pi/8) out[12]; -cx b[7],a[4]; -rz(pi/8) a[4]; -cx a[4],out[12]; -rz(-pi/8) out[12]; -cx a[4],out[12]; -rz(pi/8) out[12]; -rz(pi/16) b[7]; -cx b[7],out[13]; -rz(-pi/16) out[13]; -cx b[7],out[13]; -rz(pi/16) out[13]; -cx b[7],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[13]; -rz(pi/16) out[13]; -cx a[4],out[13]; -rz(-pi/16) out[13]; -cx b[7],a[4]; -rz(pi/16) a[4]; -cx a[4],out[13]; -rz(-pi/16) out[13]; -cx a[4],out[13]; -rz(pi/16) out[13]; -rz(pi/32) b[7]; -cx b[7],out[14]; -rz(-pi/32) out[14]; -cx b[7],out[14]; -rz(pi/32) out[14]; -cx b[7],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[14]; -rz(pi/32) out[14]; -cx a[4],out[14]; -rz(-pi/32) out[14]; -cx b[7],a[4]; -rz(pi/32) a[4]; -cx a[4],out[14]; -rz(-pi/32) out[14]; -cx a[4],out[14]; -rz(pi/32) out[14]; -rz(pi/64) b[7]; -cx b[7],out[15]; -rz(-pi/64) out[15]; -cx b[7],out[15]; -rz(pi/64) out[15]; -cx b[7],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[15]; -rz(pi/64) out[15]; -cx a[4],out[15]; -rz(-pi/64) out[15]; -cx b[7],a[4]; -rz(pi/64) a[4]; -cx a[4],out[15]; -rz(-pi/64) out[15]; -cx a[4],out[15]; -rz(pi/64) out[15]; -cx b[6],a[4]; -rz(-256*pi) a[4]; -cx a[4],out[0]; -rz(256*pi) out[0]; -cx a[4],out[0]; -rz(-256*pi) out[0]; -cx b[6],a[4]; -rz(256*pi) a[4]; -cx a[4],out[0]; -rz(-256*pi) out[0]; -cx a[4],out[0]; -rz(256*pi) out[0]; -cx b[5],out[0]; -rz(-128*pi) out[0]; -cx b[5],out[0]; -rz(128*pi) out[0]; -rz(128*pi) b[6]; -cx b[6],out[1]; -rz(-128*pi) out[1]; -cx b[6],out[1]; -rz(128*pi) out[1]; -cx b[6],a[4]; -rz(-128*pi) a[4]; -cx a[4],out[1]; -rz(128*pi) out[1]; -cx a[4],out[1]; -rz(-128*pi) out[1]; -cx b[6],a[4]; -rz(128*pi) a[4]; -cx a[4],out[1]; -rz(-128*pi) out[1]; -cx a[4],out[1]; -rz(128*pi) out[1]; -rz(64*pi) b[6]; -cx b[6],out[2]; -rz(-64*pi) out[2]; -cx b[6],out[2]; -rz(64*pi) out[2]; -cx b[6],a[4]; -rz(-64*pi) a[4]; -cx a[4],out[2]; -rz(64*pi) out[2]; -cx a[4],out[2]; -rz(-64*pi) out[2]; -cx b[6],a[4]; -rz(64*pi) a[4]; -cx a[4],out[2]; -rz(-64*pi) out[2]; -cx a[4],out[2]; -rz(64*pi) out[2]; -rz(32*pi) b[6]; -cx b[6],out[3]; -rz(-32*pi) out[3]; -cx b[6],out[3]; -rz(32*pi) out[3]; -cx b[6],a[4]; -rz(-32*pi) a[4]; -cx a[4],out[3]; -rz(32*pi) out[3]; -cx a[4],out[3]; -rz(-32*pi) out[3]; -cx b[6],a[4]; -rz(32*pi) a[4]; -cx a[4],out[3]; -rz(-32*pi) out[3]; -cx a[4],out[3]; -rz(32*pi) out[3]; -rz(16*pi) b[6]; -cx b[6],out[4]; -rz(-16*pi) out[4]; -cx b[6],out[4]; -rz(16*pi) out[4]; -cx b[6],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[4]; -rz(16*pi) out[4]; -cx a[4],out[4]; -rz(-16*pi) out[4]; -cx b[6],a[4]; -rz(16*pi) a[4]; -cx a[4],out[4]; -rz(-16*pi) out[4]; -cx a[4],out[4]; -rz(16*pi) out[4]; -rz(8*pi) b[6]; -cx b[6],out[5]; -rz(-8*pi) out[5]; -cx b[6],out[5]; -rz(8*pi) out[5]; -cx b[6],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[5]; -rz(8*pi) out[5]; -cx a[4],out[5]; -rz(-8*pi) out[5]; -cx b[6],a[4]; -rz(8*pi) a[4]; -cx a[4],out[5]; -rz(-8*pi) out[5]; -cx a[4],out[5]; -rz(8*pi) out[5]; -rz(4*pi) b[6]; -cx b[6],out[6]; -rz(-4*pi) out[6]; -cx b[6],out[6]; -rz(4*pi) out[6]; -cx b[6],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[6]; -rz(4*pi) out[6]; -cx a[4],out[6]; -rz(-4*pi) out[6]; -cx b[6],a[4]; -rz(4*pi) a[4]; -cx a[4],out[6]; -rz(-4*pi) out[6]; -cx a[4],out[6]; -rz(4*pi) out[6]; -rz(2*pi) b[6]; -cx b[6],out[7]; -rz(-2*pi) out[7]; -cx b[6],out[7]; -rz(2*pi) out[7]; -cx b[6],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[7]; -rz(2*pi) out[7]; -cx a[4],out[7]; -rz(-2*pi) out[7]; -cx b[6],a[4]; -rz(2*pi) a[4]; -cx a[4],out[7]; -rz(-2*pi) out[7]; -cx a[4],out[7]; -rz(2*pi) out[7]; -rz(pi) b[6]; -cx b[6],out[8]; -rz(-pi) out[8]; -cx b[6],out[8]; -rz(pi) out[8]; -cx b[6],a[4]; -rz(-pi) a[4]; -cx a[4],out[8]; -rz(pi) out[8]; -cx a[4],out[8]; -rz(-pi) out[8]; -cx b[6],a[4]; -rz(pi) a[4]; -cx a[4],out[8]; -rz(-pi) out[8]; -cx a[4],out[8]; -rz(pi) out[8]; -rz(pi/2) b[6]; -cx b[6],out[9]; -rz(-pi/2) out[9]; -cx b[6],out[9]; -rz(pi/2) out[9]; -cx b[6],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[9]; -rz(pi/2) out[9]; -cx a[4],out[9]; -rz(-pi/2) out[9]; -cx b[6],a[4]; -rz(pi/2) a[4]; -cx a[4],out[9]; -rz(-pi/2) out[9]; -cx a[4],out[9]; -rz(pi/2) out[9]; -rz(pi/4) b[6]; -cx b[6],out[10]; -rz(-pi/4) out[10]; -cx b[6],out[10]; -rz(pi/4) out[10]; -cx b[6],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[10]; -rz(pi/4) out[10]; -cx a[4],out[10]; -rz(-pi/4) out[10]; -cx b[6],a[4]; -rz(pi/4) a[4]; -cx a[4],out[10]; -rz(-pi/4) out[10]; -cx a[4],out[10]; -rz(pi/4) out[10]; -rz(pi/8) b[6]; -cx b[6],out[11]; -rz(-pi/8) out[11]; -cx b[6],out[11]; -rz(pi/8) out[11]; -cx b[6],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[11]; -rz(pi/8) out[11]; -cx a[4],out[11]; -rz(-pi/8) out[11]; -cx b[6],a[4]; -rz(pi/8) a[4]; -cx a[4],out[11]; -rz(-pi/8) out[11]; -cx a[4],out[11]; -rz(pi/8) out[11]; -rz(pi/16) b[6]; -cx b[6],out[12]; -rz(-pi/16) out[12]; -cx b[6],out[12]; -rz(pi/16) out[12]; -cx b[6],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[12]; -rz(pi/16) out[12]; -cx a[4],out[12]; -rz(-pi/16) out[12]; -cx b[6],a[4]; -rz(pi/16) a[4]; -cx a[4],out[12]; -rz(-pi/16) out[12]; -cx a[4],out[12]; -rz(pi/16) out[12]; -rz(pi/32) b[6]; -cx b[6],out[13]; -rz(-pi/32) out[13]; -cx b[6],out[13]; -rz(pi/32) out[13]; -cx b[6],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[13]; -rz(pi/32) out[13]; -cx a[4],out[13]; -rz(-pi/32) out[13]; -cx b[6],a[4]; -rz(pi/32) a[4]; -cx a[4],out[13]; -rz(-pi/32) out[13]; -cx a[4],out[13]; -rz(pi/32) out[13]; -rz(pi/64) b[6]; -cx b[6],out[14]; -rz(-pi/64) out[14]; -cx b[6],out[14]; -rz(pi/64) out[14]; -cx b[6],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[14]; -rz(pi/64) out[14]; -cx a[4],out[14]; -rz(-pi/64) out[14]; -cx b[6],a[4]; -rz(pi/64) a[4]; -cx a[4],out[14]; -rz(-pi/64) out[14]; -cx a[4],out[14]; -rz(pi/64) out[14]; -rz(pi/128) b[6]; -cx b[6],out[15]; -rz(-pi/128) out[15]; -cx b[6],out[15]; -rz(pi/128) out[15]; -cx b[6],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[15]; -rz(pi/128) out[15]; -cx a[4],out[15]; -rz(-pi/128) out[15]; -cx b[6],a[4]; -rz(pi/128) a[4]; -cx a[4],out[15]; -rz(-pi/128) out[15]; -cx a[4],out[15]; -rz(pi/128) out[15]; -cx b[5],a[4]; -rz(-128*pi) a[4]; -cx a[4],out[0]; -rz(128*pi) out[0]; -cx a[4],out[0]; -rz(-128*pi) out[0]; -cx b[5],a[4]; -rz(128*pi) a[4]; -cx a[4],out[0]; -rz(-128*pi) out[0]; -cx a[4],out[0]; -rz(128*pi) out[0]; -cx b[4],out[0]; -rz(-64*pi) out[0]; -cx b[4],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[5]; -cx b[5],out[1]; -rz(-64*pi) out[1]; -cx b[5],out[1]; -rz(64*pi) out[1]; -cx b[5],a[4]; -rz(-64*pi) a[4]; -cx a[4],out[1]; -rz(64*pi) out[1]; -cx a[4],out[1]; -rz(-64*pi) out[1]; -cx b[5],a[4]; -rz(64*pi) a[4]; -cx a[4],out[1]; -rz(-64*pi) out[1]; -cx a[4],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[5]; -cx b[5],out[2]; -rz(-32*pi) out[2]; -cx b[5],out[2]; -rz(32*pi) out[2]; -cx b[5],a[4]; -rz(-32*pi) a[4]; -cx a[4],out[2]; -rz(32*pi) out[2]; -cx a[4],out[2]; -rz(-32*pi) out[2]; -cx b[5],a[4]; -rz(32*pi) a[4]; -cx a[4],out[2]; -rz(-32*pi) out[2]; -cx a[4],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[5]; -cx b[5],out[3]; -rz(-16*pi) out[3]; -cx b[5],out[3]; -rz(16*pi) out[3]; -cx b[5],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[3]; -rz(16*pi) out[3]; -cx a[4],out[3]; -rz(-16*pi) out[3]; -cx b[5],a[4]; -rz(16*pi) a[4]; -cx a[4],out[3]; -rz(-16*pi) out[3]; -cx a[4],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[5]; -cx b[5],out[4]; -rz(-8*pi) out[4]; -cx b[5],out[4]; -rz(8*pi) out[4]; -cx b[5],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[4]; -rz(8*pi) out[4]; -cx a[4],out[4]; -rz(-8*pi) out[4]; -cx b[5],a[4]; -rz(8*pi) a[4]; -cx a[4],out[4]; -rz(-8*pi) out[4]; -cx a[4],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[5]; -cx b[5],out[5]; -rz(-4*pi) out[5]; -cx b[5],out[5]; -rz(4*pi) out[5]; -cx b[5],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[5]; -rz(4*pi) out[5]; -cx a[4],out[5]; -rz(-4*pi) out[5]; -cx b[5],a[4]; -rz(4*pi) a[4]; -cx a[4],out[5]; -rz(-4*pi) out[5]; -cx a[4],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[5]; -cx b[5],out[6]; -rz(-2*pi) out[6]; -cx b[5],out[6]; -rz(2*pi) out[6]; -cx b[5],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[6]; -rz(2*pi) out[6]; -cx a[4],out[6]; -rz(-2*pi) out[6]; -cx b[5],a[4]; -rz(2*pi) a[4]; -cx a[4],out[6]; -rz(-2*pi) out[6]; -cx a[4],out[6]; -rz(2*pi) out[6]; -rz(pi) b[5]; -cx b[5],out[7]; -rz(-pi) out[7]; -cx b[5],out[7]; -rz(pi) out[7]; -cx b[5],a[4]; -rz(-pi) a[4]; -cx a[4],out[7]; -rz(pi) out[7]; -cx a[4],out[7]; -rz(-pi) out[7]; -cx b[5],a[4]; -rz(pi) a[4]; -cx a[4],out[7]; -rz(-pi) out[7]; -cx a[4],out[7]; -rz(pi) out[7]; -rz(pi/2) b[5]; -cx b[5],out[8]; -rz(-pi/2) out[8]; -cx b[5],out[8]; -rz(pi/2) out[8]; -cx b[5],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[8]; -rz(pi/2) out[8]; -cx a[4],out[8]; -rz(-pi/2) out[8]; -cx b[5],a[4]; -rz(pi/2) a[4]; -cx a[4],out[8]; -rz(-pi/2) out[8]; -cx a[4],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[5]; -cx b[5],out[9]; -rz(-pi/4) out[9]; -cx b[5],out[9]; -rz(pi/4) out[9]; -cx b[5],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[9]; -rz(pi/4) out[9]; -cx a[4],out[9]; -rz(-pi/4) out[9]; -cx b[5],a[4]; -rz(pi/4) a[4]; -cx a[4],out[9]; -rz(-pi/4) out[9]; -cx a[4],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[5]; -cx b[5],out[10]; -rz(-pi/8) out[10]; -cx b[5],out[10]; -rz(pi/8) out[10]; -cx b[5],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[10]; -rz(pi/8) out[10]; -cx a[4],out[10]; -rz(-pi/8) out[10]; -cx b[5],a[4]; -rz(pi/8) a[4]; -cx a[4],out[10]; -rz(-pi/8) out[10]; -cx a[4],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[5]; -cx b[5],out[11]; -rz(-pi/16) out[11]; -cx b[5],out[11]; -rz(pi/16) out[11]; -cx b[5],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[11]; -rz(pi/16) out[11]; -cx a[4],out[11]; -rz(-pi/16) out[11]; -cx b[5],a[4]; -rz(pi/16) a[4]; -cx a[4],out[11]; -rz(-pi/16) out[11]; -cx a[4],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[5]; -cx b[5],out[12]; -rz(-pi/32) out[12]; -cx b[5],out[12]; -rz(pi/32) out[12]; -cx b[5],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[12]; -rz(pi/32) out[12]; -cx a[4],out[12]; -rz(-pi/32) out[12]; -cx b[5],a[4]; -rz(pi/32) a[4]; -cx a[4],out[12]; -rz(-pi/32) out[12]; -cx a[4],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[5]; -cx b[5],out[13]; -rz(-pi/64) out[13]; -cx b[5],out[13]; -rz(pi/64) out[13]; -cx b[5],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[13]; -rz(pi/64) out[13]; -cx a[4],out[13]; -rz(-pi/64) out[13]; -cx b[5],a[4]; -rz(pi/64) a[4]; -cx a[4],out[13]; -rz(-pi/64) out[13]; -cx a[4],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[5]; -cx b[5],out[14]; -rz(-pi/128) out[14]; -cx b[5],out[14]; -rz(pi/128) out[14]; -cx b[5],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[14]; -rz(pi/128) out[14]; -cx a[4],out[14]; -rz(-pi/128) out[14]; -cx b[5],a[4]; -rz(pi/128) a[4]; -cx a[4],out[14]; -rz(-pi/128) out[14]; -cx a[4],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[5]; -cx b[5],out[15]; -rz(-pi/256) out[15]; -cx b[5],out[15]; -rz(pi/256) out[15]; -cx b[5],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[15]; -rz(pi/256) out[15]; -cx a[4],out[15]; -rz(-pi/256) out[15]; -cx b[5],a[4]; -rz(pi/256) a[4]; -cx a[4],out[15]; -rz(-pi/256) out[15]; -cx a[4],out[15]; -rz(pi/256) out[15]; -cx b[4],a[4]; -rz(-64*pi) a[4]; -cx a[4],out[0]; -rz(64*pi) out[0]; -cx a[4],out[0]; -rz(-64*pi) out[0]; -cx b[4],a[4]; -rz(64*pi) a[4]; -cx a[4],out[0]; -rz(-64*pi) out[0]; -cx a[4],out[0]; -rz(64*pi) out[0]; -cx b[3],out[0]; -rz(-32*pi) out[0]; -cx b[3],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[4]; -cx b[4],out[1]; -rz(-32*pi) out[1]; -cx b[4],out[1]; -rz(32*pi) out[1]; -cx b[4],a[4]; -rz(-32*pi) a[4]; -cx a[4],out[1]; -rz(32*pi) out[1]; -cx a[4],out[1]; -rz(-32*pi) out[1]; -cx b[4],a[4]; -rz(32*pi) a[4]; -cx a[4],out[1]; -rz(-32*pi) out[1]; -cx a[4],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[4]; -cx b[4],out[2]; -rz(-16*pi) out[2]; -cx b[4],out[2]; -rz(16*pi) out[2]; -cx b[4],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[2]; -rz(16*pi) out[2]; -cx a[4],out[2]; -rz(-16*pi) out[2]; -cx b[4],a[4]; -rz(16*pi) a[4]; -cx a[4],out[2]; -rz(-16*pi) out[2]; -cx a[4],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[4]; -cx b[4],out[3]; -rz(-8*pi) out[3]; -cx b[4],out[3]; -rz(8*pi) out[3]; -cx b[4],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[3]; -rz(8*pi) out[3]; -cx a[4],out[3]; -rz(-8*pi) out[3]; -cx b[4],a[4]; -rz(8*pi) a[4]; -cx a[4],out[3]; -rz(-8*pi) out[3]; -cx a[4],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[4]; -cx b[4],out[4]; -rz(-4*pi) out[4]; -cx b[4],out[4]; -rz(4*pi) out[4]; -cx b[4],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[4]; -rz(4*pi) out[4]; -cx a[4],out[4]; -rz(-4*pi) out[4]; -cx b[4],a[4]; -rz(4*pi) a[4]; -cx a[4],out[4]; -rz(-4*pi) out[4]; -cx a[4],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[4]; -cx b[4],out[5]; -rz(-2*pi) out[5]; -cx b[4],out[5]; -rz(2*pi) out[5]; -cx b[4],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[5]; -rz(2*pi) out[5]; -cx a[4],out[5]; -rz(-2*pi) out[5]; -cx b[4],a[4]; -rz(2*pi) a[4]; -cx a[4],out[5]; -rz(-2*pi) out[5]; -cx a[4],out[5]; -rz(2*pi) out[5]; -rz(pi) b[4]; -cx b[4],out[6]; -rz(-pi) out[6]; -cx b[4],out[6]; -rz(pi) out[6]; -cx b[4],a[4]; -rz(-pi) a[4]; -cx a[4],out[6]; -rz(pi) out[6]; -cx a[4],out[6]; -rz(-pi) out[6]; -cx b[4],a[4]; -rz(pi) a[4]; -cx a[4],out[6]; -rz(-pi) out[6]; -cx a[4],out[6]; -rz(pi) out[6]; -rz(pi/2) b[4]; -cx b[4],out[7]; -rz(-pi/2) out[7]; -cx b[4],out[7]; -rz(pi/2) out[7]; -cx b[4],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[7]; -rz(pi/2) out[7]; -cx a[4],out[7]; -rz(-pi/2) out[7]; -cx b[4],a[4]; -rz(pi/2) a[4]; -cx a[4],out[7]; -rz(-pi/2) out[7]; -cx a[4],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[4]; -cx b[4],out[8]; -rz(-pi/4) out[8]; -cx b[4],out[8]; -rz(pi/4) out[8]; -cx b[4],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[8]; -rz(pi/4) out[8]; -cx a[4],out[8]; -rz(-pi/4) out[8]; -cx b[4],a[4]; -rz(pi/4) a[4]; -cx a[4],out[8]; -rz(-pi/4) out[8]; -cx a[4],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[4]; -cx b[4],out[9]; -rz(-pi/8) out[9]; -cx b[4],out[9]; -rz(pi/8) out[9]; -cx b[4],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[9]; -rz(pi/8) out[9]; -cx a[4],out[9]; -rz(-pi/8) out[9]; -cx b[4],a[4]; -rz(pi/8) a[4]; -cx a[4],out[9]; -rz(-pi/8) out[9]; -cx a[4],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[4]; -cx b[4],out[10]; -rz(-pi/16) out[10]; -cx b[4],out[10]; -rz(pi/16) out[10]; -cx b[4],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[10]; -rz(pi/16) out[10]; -cx a[4],out[10]; -rz(-pi/16) out[10]; -cx b[4],a[4]; -rz(pi/16) a[4]; -cx a[4],out[10]; -rz(-pi/16) out[10]; -cx a[4],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[4]; -cx b[4],out[11]; -rz(-pi/32) out[11]; -cx b[4],out[11]; -rz(pi/32) out[11]; -cx b[4],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[11]; -rz(pi/32) out[11]; -cx a[4],out[11]; -rz(-pi/32) out[11]; -cx b[4],a[4]; -rz(pi/32) a[4]; -cx a[4],out[11]; -rz(-pi/32) out[11]; -cx a[4],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[4]; -cx b[4],out[12]; -rz(-pi/64) out[12]; -cx b[4],out[12]; -rz(pi/64) out[12]; -cx b[4],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[12]; -rz(pi/64) out[12]; -cx a[4],out[12]; -rz(-pi/64) out[12]; -cx b[4],a[4]; -rz(pi/64) a[4]; -cx a[4],out[12]; -rz(-pi/64) out[12]; -cx a[4],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[4]; -cx b[4],out[13]; -rz(-pi/128) out[13]; -cx b[4],out[13]; -rz(pi/128) out[13]; -cx b[4],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[13]; -rz(pi/128) out[13]; -cx a[4],out[13]; -rz(-pi/128) out[13]; -cx b[4],a[4]; -rz(pi/128) a[4]; -cx a[4],out[13]; -rz(-pi/128) out[13]; -cx a[4],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[4]; -cx b[4],out[14]; -rz(-pi/256) out[14]; -cx b[4],out[14]; -rz(pi/256) out[14]; -cx b[4],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[14]; -rz(pi/256) out[14]; -cx a[4],out[14]; -rz(-pi/256) out[14]; -cx b[4],a[4]; -rz(pi/256) a[4]; -cx a[4],out[14]; -rz(-pi/256) out[14]; -cx a[4],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[4]; -cx b[4],out[15]; -rz(-pi/512) out[15]; -cx b[4],out[15]; -rz(pi/512) out[15]; -cx b[4],a[4]; -rz(-pi/512) a[4]; -cx a[4],out[15]; -rz(pi/512) out[15]; -cx a[4],out[15]; -rz(-pi/512) out[15]; -cx b[4],a[4]; -rz(pi/512) a[4]; -cx a[4],out[15]; -rz(-pi/512) out[15]; -cx a[4],out[15]; -rz(pi/512) out[15]; -cx b[3],a[4]; -rz(-32*pi) a[4]; -cx a[4],out[0]; -rz(32*pi) out[0]; -cx a[4],out[0]; -rz(-32*pi) out[0]; -cx b[3],a[4]; -rz(32*pi) a[4]; -cx a[4],out[0]; -rz(-32*pi) out[0]; -cx a[4],out[0]; -rz(32*pi) out[0]; -cx b[2],out[0]; -rz(-16*pi) out[0]; -cx b[2],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[3]; -cx b[3],out[1]; -rz(-16*pi) out[1]; -cx b[3],out[1]; -rz(16*pi) out[1]; -cx b[3],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[1]; -rz(16*pi) out[1]; -cx a[4],out[1]; -rz(-16*pi) out[1]; -cx b[3],a[4]; -rz(16*pi) a[4]; -cx a[4],out[1]; -rz(-16*pi) out[1]; -cx a[4],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[3]; -cx b[3],out[2]; -rz(-8*pi) out[2]; -cx b[3],out[2]; -rz(8*pi) out[2]; -cx b[3],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[2]; -rz(8*pi) out[2]; -cx a[4],out[2]; -rz(-8*pi) out[2]; -cx b[3],a[4]; -rz(8*pi) a[4]; -cx a[4],out[2]; -rz(-8*pi) out[2]; -cx a[4],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[3]; -cx b[3],out[3]; -rz(-4*pi) out[3]; -cx b[3],out[3]; -rz(4*pi) out[3]; -cx b[3],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[3]; -rz(4*pi) out[3]; -cx a[4],out[3]; -rz(-4*pi) out[3]; -cx b[3],a[4]; -rz(4*pi) a[4]; -cx a[4],out[3]; -rz(-4*pi) out[3]; -cx a[4],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[3]; -cx b[3],out[4]; -rz(-2*pi) out[4]; -cx b[3],out[4]; -rz(2*pi) out[4]; -cx b[3],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[4]; -rz(2*pi) out[4]; -cx a[4],out[4]; -rz(-2*pi) out[4]; -cx b[3],a[4]; -rz(2*pi) a[4]; -cx a[4],out[4]; -rz(-2*pi) out[4]; -cx a[4],out[4]; -rz(2*pi) out[4]; -rz(pi) b[3]; -cx b[3],out[5]; -rz(-pi) out[5]; -cx b[3],out[5]; -rz(pi) out[5]; -cx b[3],a[4]; -rz(-pi) a[4]; -cx a[4],out[5]; -rz(pi) out[5]; -cx a[4],out[5]; -rz(-pi) out[5]; -cx b[3],a[4]; -rz(pi) a[4]; -cx a[4],out[5]; -rz(-pi) out[5]; -cx a[4],out[5]; -rz(pi) out[5]; -rz(pi/2) b[3]; -cx b[3],out[6]; -rz(-pi/2) out[6]; -cx b[3],out[6]; -rz(pi/2) out[6]; -cx b[3],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[6]; -rz(pi/2) out[6]; -cx a[4],out[6]; -rz(-pi/2) out[6]; -cx b[3],a[4]; -rz(pi/2) a[4]; -cx a[4],out[6]; -rz(-pi/2) out[6]; -cx a[4],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[3]; -cx b[3],out[7]; -rz(-pi/4) out[7]; -cx b[3],out[7]; -rz(pi/4) out[7]; -cx b[3],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[7]; -rz(pi/4) out[7]; -cx a[4],out[7]; -rz(-pi/4) out[7]; -cx b[3],a[4]; -rz(pi/4) a[4]; -cx a[4],out[7]; -rz(-pi/4) out[7]; -cx a[4],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[3]; -cx b[3],out[8]; -rz(-pi/8) out[8]; -cx b[3],out[8]; -rz(pi/8) out[8]; -cx b[3],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[8]; -rz(pi/8) out[8]; -cx a[4],out[8]; -rz(-pi/8) out[8]; -cx b[3],a[4]; -rz(pi/8) a[4]; -cx a[4],out[8]; -rz(-pi/8) out[8]; -cx a[4],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[3]; -cx b[3],out[9]; -rz(-pi/16) out[9]; -cx b[3],out[9]; -rz(pi/16) out[9]; -cx b[3],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[9]; -rz(pi/16) out[9]; -cx a[4],out[9]; -rz(-pi/16) out[9]; -cx b[3],a[4]; -rz(pi/16) a[4]; -cx a[4],out[9]; -rz(-pi/16) out[9]; -cx a[4],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[3]; -cx b[3],out[10]; -rz(-pi/32) out[10]; -cx b[3],out[10]; -rz(pi/32) out[10]; -cx b[3],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[10]; -rz(pi/32) out[10]; -cx a[4],out[10]; -rz(-pi/32) out[10]; -cx b[3],a[4]; -rz(pi/32) a[4]; -cx a[4],out[10]; -rz(-pi/32) out[10]; -cx a[4],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[3]; -cx b[3],out[11]; -rz(-pi/64) out[11]; -cx b[3],out[11]; -rz(pi/64) out[11]; -cx b[3],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[11]; -rz(pi/64) out[11]; -cx a[4],out[11]; -rz(-pi/64) out[11]; -cx b[3],a[4]; -rz(pi/64) a[4]; -cx a[4],out[11]; -rz(-pi/64) out[11]; -cx a[4],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[3]; -cx b[3],out[12]; -rz(-pi/128) out[12]; -cx b[3],out[12]; -rz(pi/128) out[12]; -cx b[3],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[12]; -rz(pi/128) out[12]; -cx a[4],out[12]; -rz(-pi/128) out[12]; -cx b[3],a[4]; -rz(pi/128) a[4]; -cx a[4],out[12]; -rz(-pi/128) out[12]; -cx a[4],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[3]; -cx b[3],out[13]; -rz(-pi/256) out[13]; -cx b[3],out[13]; -rz(pi/256) out[13]; -cx b[3],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[13]; -rz(pi/256) out[13]; -cx a[4],out[13]; -rz(-pi/256) out[13]; -cx b[3],a[4]; -rz(pi/256) a[4]; -cx a[4],out[13]; -rz(-pi/256) out[13]; -cx a[4],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[3]; -cx b[3],out[14]; -rz(-pi/512) out[14]; -cx b[3],out[14]; -rz(pi/512) out[14]; -cx b[3],a[4]; -rz(-pi/512) a[4]; -cx a[4],out[14]; -rz(pi/512) out[14]; -cx a[4],out[14]; -rz(-pi/512) out[14]; -cx b[3],a[4]; -rz(pi/512) a[4]; -cx a[4],out[14]; -rz(-pi/512) out[14]; -cx a[4],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[3]; -cx b[3],out[15]; -rz(-pi/1024) out[15]; -cx b[3],out[15]; -rz(pi/1024) out[15]; -cx b[3],a[4]; -rz(-pi/1024) a[4]; -cx a[4],out[15]; -rz(pi/1024) out[15]; -cx a[4],out[15]; -rz(-pi/1024) out[15]; -cx b[3],a[4]; -rz(pi/1024) a[4]; -cx a[4],out[15]; -rz(-pi/1024) out[15]; -cx a[4],out[15]; -rz(pi/1024) out[15]; -cx b[2],a[4]; -rz(-16*pi) a[4]; -cx a[4],out[0]; -rz(16*pi) out[0]; -cx a[4],out[0]; -rz(-16*pi) out[0]; -cx b[2],a[4]; -rz(16*pi) a[4]; -cx a[4],out[0]; -rz(-16*pi) out[0]; -cx a[4],out[0]; -rz(16*pi) out[0]; -cx b[1],out[0]; -rz(-8*pi) out[0]; -cx b[1],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[2]; -cx b[2],out[1]; -rz(-8*pi) out[1]; -cx b[2],out[1]; -rz(8*pi) out[1]; -cx b[2],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[1]; -rz(8*pi) out[1]; -cx a[4],out[1]; -rz(-8*pi) out[1]; -cx b[2],a[4]; -rz(8*pi) a[4]; -cx a[4],out[1]; -rz(-8*pi) out[1]; -cx a[4],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[2]; -cx b[2],out[2]; -rz(-4*pi) out[2]; -cx b[2],out[2]; -rz(4*pi) out[2]; -cx b[2],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[2]; -rz(4*pi) out[2]; -cx a[4],out[2]; -rz(-4*pi) out[2]; -cx b[2],a[4]; -rz(4*pi) a[4]; -cx a[4],out[2]; -rz(-4*pi) out[2]; -cx a[4],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[2]; -cx b[2],out[3]; -rz(-2*pi) out[3]; -cx b[2],out[3]; -rz(2*pi) out[3]; -cx b[2],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[3]; -rz(2*pi) out[3]; -cx a[4],out[3]; -rz(-2*pi) out[3]; -cx b[2],a[4]; -rz(2*pi) a[4]; -cx a[4],out[3]; -rz(-2*pi) out[3]; -cx a[4],out[3]; -rz(2*pi) out[3]; -rz(pi) b[2]; -cx b[2],out[4]; -rz(-pi) out[4]; -cx b[2],out[4]; -rz(pi) out[4]; -cx b[2],a[4]; -rz(-pi) a[4]; -cx a[4],out[4]; -rz(pi) out[4]; -cx a[4],out[4]; -rz(-pi) out[4]; -cx b[2],a[4]; -rz(pi) a[4]; -cx a[4],out[4]; -rz(-pi) out[4]; -cx a[4],out[4]; -rz(pi) out[4]; -rz(pi/2) b[2]; -cx b[2],out[5]; -rz(-pi/2) out[5]; -cx b[2],out[5]; -rz(pi/2) out[5]; -cx b[2],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[5]; -rz(pi/2) out[5]; -cx a[4],out[5]; -rz(-pi/2) out[5]; -cx b[2],a[4]; -rz(pi/2) a[4]; -cx a[4],out[5]; -rz(-pi/2) out[5]; -cx a[4],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[2]; -cx b[2],out[6]; -rz(-pi/4) out[6]; -cx b[2],out[6]; -rz(pi/4) out[6]; -cx b[2],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[6]; -rz(pi/4) out[6]; -cx a[4],out[6]; -rz(-pi/4) out[6]; -cx b[2],a[4]; -rz(pi/4) a[4]; -cx a[4],out[6]; -rz(-pi/4) out[6]; -cx a[4],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[2]; -cx b[2],out[7]; -rz(-pi/8) out[7]; -cx b[2],out[7]; -rz(pi/8) out[7]; -cx b[2],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[7]; -rz(pi/8) out[7]; -cx a[4],out[7]; -rz(-pi/8) out[7]; -cx b[2],a[4]; -rz(pi/8) a[4]; -cx a[4],out[7]; -rz(-pi/8) out[7]; -cx a[4],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[2]; -cx b[2],out[8]; -rz(-pi/16) out[8]; -cx b[2],out[8]; -rz(pi/16) out[8]; -cx b[2],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[8]; -rz(pi/16) out[8]; -cx a[4],out[8]; -rz(-pi/16) out[8]; -cx b[2],a[4]; -rz(pi/16) a[4]; -cx a[4],out[8]; -rz(-pi/16) out[8]; -cx a[4],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[2]; -cx b[2],out[9]; -rz(-pi/32) out[9]; -cx b[2],out[9]; -rz(pi/32) out[9]; -cx b[2],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[9]; -rz(pi/32) out[9]; -cx a[4],out[9]; -rz(-pi/32) out[9]; -cx b[2],a[4]; -rz(pi/32) a[4]; -cx a[4],out[9]; -rz(-pi/32) out[9]; -cx a[4],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[2]; -cx b[2],out[10]; -rz(-pi/64) out[10]; -cx b[2],out[10]; -rz(pi/64) out[10]; -cx b[2],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[10]; -rz(pi/64) out[10]; -cx a[4],out[10]; -rz(-pi/64) out[10]; -cx b[2],a[4]; -rz(pi/64) a[4]; -cx a[4],out[10]; -rz(-pi/64) out[10]; -cx a[4],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[2]; -cx b[2],out[11]; -rz(-pi/128) out[11]; -cx b[2],out[11]; -rz(pi/128) out[11]; -cx b[2],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[11]; -rz(pi/128) out[11]; -cx a[4],out[11]; -rz(-pi/128) out[11]; -cx b[2],a[4]; -rz(pi/128) a[4]; -cx a[4],out[11]; -rz(-pi/128) out[11]; -cx a[4],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[2]; -cx b[2],out[12]; -rz(-pi/256) out[12]; -cx b[2],out[12]; -rz(pi/256) out[12]; -cx b[2],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[12]; -rz(pi/256) out[12]; -cx a[4],out[12]; -rz(-pi/256) out[12]; -cx b[2],a[4]; -rz(pi/256) a[4]; -cx a[4],out[12]; -rz(-pi/256) out[12]; -cx a[4],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[2]; -cx b[2],out[13]; -rz(-pi/512) out[13]; -cx b[2],out[13]; -rz(pi/512) out[13]; -cx b[2],a[4]; -rz(-pi/512) a[4]; -cx a[4],out[13]; -rz(pi/512) out[13]; -cx a[4],out[13]; -rz(-pi/512) out[13]; -cx b[2],a[4]; -rz(pi/512) a[4]; -cx a[4],out[13]; -rz(-pi/512) out[13]; -cx a[4],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[2]; -cx b[2],out[14]; -rz(-pi/1024) out[14]; -cx b[2],out[14]; -rz(pi/1024) out[14]; -cx b[2],a[4]; -rz(-pi/1024) a[4]; -cx a[4],out[14]; -rz(pi/1024) out[14]; -cx a[4],out[14]; -rz(-pi/1024) out[14]; -cx b[2],a[4]; -rz(pi/1024) a[4]; -cx a[4],out[14]; -rz(-pi/1024) out[14]; -cx a[4],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[2]; -cx b[2],out[15]; -rz(-pi/2048) out[15]; -cx b[2],out[15]; -rz(pi/2048) out[15]; -cx b[2],a[4]; -rz(-pi/2048) a[4]; -cx a[4],out[15]; -rz(pi/2048) out[15]; -cx a[4],out[15]; -rz(-pi/2048) out[15]; -cx b[2],a[4]; -rz(pi/2048) a[4]; -cx a[4],out[15]; -rz(-pi/2048) out[15]; -cx a[4],out[15]; -rz(pi/2048) out[15]; -cx b[1],a[4]; -rz(-8*pi) a[4]; -cx a[4],out[0]; -rz(8*pi) out[0]; -cx a[4],out[0]; -rz(-8*pi) out[0]; -cx b[1],a[4]; -rz(8*pi) a[4]; -cx a[4],out[0]; -rz(-8*pi) out[0]; -cx a[4],out[0]; -rz(8*pi) out[0]; -cx b[0],out[0]; -rz(-4*pi) out[0]; -cx b[0],out[0]; -rz(4*pi) out[0]; -rz(4*pi) b[1]; -cx b[1],out[1]; -rz(-4*pi) out[1]; -cx b[1],out[1]; -rz(4*pi) out[1]; -cx b[1],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[1]; -rz(4*pi) out[1]; -cx a[4],out[1]; -rz(-4*pi) out[1]; -cx b[1],a[4]; -rz(4*pi) a[4]; -cx a[4],out[1]; -rz(-4*pi) out[1]; -cx a[4],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[1]; -cx b[1],out[2]; -rz(-2*pi) out[2]; -cx b[1],out[2]; -rz(2*pi) out[2]; -cx b[1],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[2]; -rz(2*pi) out[2]; -cx a[4],out[2]; -rz(-2*pi) out[2]; -cx b[1],a[4]; -rz(2*pi) a[4]; -cx a[4],out[2]; -rz(-2*pi) out[2]; -cx a[4],out[2]; -rz(2*pi) out[2]; -rz(pi) b[1]; -cx b[1],out[3]; -rz(-pi) out[3]; -cx b[1],out[3]; -rz(pi) out[3]; -cx b[1],a[4]; -rz(-pi) a[4]; -cx a[4],out[3]; -rz(pi) out[3]; -cx a[4],out[3]; -rz(-pi) out[3]; -cx b[1],a[4]; -rz(pi) a[4]; -cx a[4],out[3]; -rz(-pi) out[3]; -cx a[4],out[3]; -rz(pi) out[3]; -rz(pi/2) b[1]; -cx b[1],out[4]; -rz(-pi/2) out[4]; -cx b[1],out[4]; -rz(pi/2) out[4]; -cx b[1],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[4]; -rz(pi/2) out[4]; -cx a[4],out[4]; -rz(-pi/2) out[4]; -cx b[1],a[4]; -rz(pi/2) a[4]; -cx a[4],out[4]; -rz(-pi/2) out[4]; -cx a[4],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[1]; -cx b[1],out[5]; -rz(-pi/4) out[5]; -cx b[1],out[5]; -rz(pi/4) out[5]; -cx b[1],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[5]; -rz(pi/4) out[5]; -cx a[4],out[5]; -rz(-pi/4) out[5]; -cx b[1],a[4]; -rz(pi/4) a[4]; -cx a[4],out[5]; -rz(-pi/4) out[5]; -cx a[4],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[1]; -cx b[1],out[6]; -rz(-pi/8) out[6]; -cx b[1],out[6]; -rz(pi/8) out[6]; -cx b[1],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[6]; -rz(pi/8) out[6]; -cx a[4],out[6]; -rz(-pi/8) out[6]; -cx b[1],a[4]; -rz(pi/8) a[4]; -cx a[4],out[6]; -rz(-pi/8) out[6]; -cx a[4],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[1]; -cx b[1],out[7]; -rz(-pi/16) out[7]; -cx b[1],out[7]; -rz(pi/16) out[7]; -cx b[1],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[7]; -rz(pi/16) out[7]; -cx a[4],out[7]; -rz(-pi/16) out[7]; -cx b[1],a[4]; -rz(pi/16) a[4]; -cx a[4],out[7]; -rz(-pi/16) out[7]; -cx a[4],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[1]; -cx b[1],out[8]; -rz(-pi/32) out[8]; -cx b[1],out[8]; -rz(pi/32) out[8]; -cx b[1],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[8]; -rz(pi/32) out[8]; -cx a[4],out[8]; -rz(-pi/32) out[8]; -cx b[1],a[4]; -rz(pi/32) a[4]; -cx a[4],out[8]; -rz(-pi/32) out[8]; -cx a[4],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[1]; -cx b[1],out[9]; -rz(-pi/64) out[9]; -cx b[1],out[9]; -rz(pi/64) out[9]; -cx b[1],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[9]; -rz(pi/64) out[9]; -cx a[4],out[9]; -rz(-pi/64) out[9]; -cx b[1],a[4]; -rz(pi/64) a[4]; -cx a[4],out[9]; -rz(-pi/64) out[9]; -cx a[4],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[1]; -cx b[1],out[10]; -rz(-pi/128) out[10]; -cx b[1],out[10]; -rz(pi/128) out[10]; -cx b[1],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[10]; -rz(pi/128) out[10]; -cx a[4],out[10]; -rz(-pi/128) out[10]; -cx b[1],a[4]; -rz(pi/128) a[4]; -cx a[4],out[10]; -rz(-pi/128) out[10]; -cx a[4],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[1]; -cx b[1],out[11]; -rz(-pi/256) out[11]; -cx b[1],out[11]; -rz(pi/256) out[11]; -cx b[1],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[11]; -rz(pi/256) out[11]; -cx a[4],out[11]; -rz(-pi/256) out[11]; -cx b[1],a[4]; -rz(pi/256) a[4]; -cx a[4],out[11]; -rz(-pi/256) out[11]; -cx a[4],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[1]; -cx b[1],out[12]; -rz(-pi/512) out[12]; -cx b[1],out[12]; -rz(pi/512) out[12]; -cx b[1],a[4]; -rz(-pi/512) a[4]; -cx a[4],out[12]; -rz(pi/512) out[12]; -cx a[4],out[12]; -rz(-pi/512) out[12]; -cx b[1],a[4]; -rz(pi/512) a[4]; -cx a[4],out[12]; -rz(-pi/512) out[12]; -cx a[4],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[1]; -cx b[1],out[13]; -rz(-pi/1024) out[13]; -cx b[1],out[13]; -rz(pi/1024) out[13]; -cx b[1],a[4]; -rz(-pi/1024) a[4]; -cx a[4],out[13]; -rz(pi/1024) out[13]; -cx a[4],out[13]; -rz(-pi/1024) out[13]; -cx b[1],a[4]; -rz(pi/1024) a[4]; -cx a[4],out[13]; -rz(-pi/1024) out[13]; -cx a[4],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[1]; -cx b[1],out[14]; -rz(-pi/2048) out[14]; -cx b[1],out[14]; -rz(pi/2048) out[14]; -cx b[1],a[4]; -rz(-pi/2048) a[4]; -cx a[4],out[14]; -rz(pi/2048) out[14]; -cx a[4],out[14]; -rz(-pi/2048) out[14]; -cx b[1],a[4]; -rz(pi/2048) a[4]; -cx a[4],out[14]; -rz(-pi/2048) out[14]; -cx a[4],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[1]; -cx b[1],out[15]; -rz(-pi/4096) out[15]; -cx b[1],out[15]; -rz(pi/4096) out[15]; -cx b[1],a[4]; -rz(-pi/4096) a[4]; -cx a[4],out[15]; -rz(pi/4096) out[15]; -cx a[4],out[15]; -rz(-pi/4096) out[15]; -cx b[1],a[4]; -rz(pi/4096) a[4]; -cx a[4],out[15]; -rz(-pi/4096) out[15]; -cx a[4],out[15]; -rz(pi/4096) out[15]; -cx b[0],a[4]; -rz(-4*pi) a[4]; -cx a[4],out[0]; -rz(4*pi) out[0]; -cx a[4],out[0]; -rz(-4*pi) out[0]; -cx b[0],a[4]; -rz(4*pi) a[4]; -cx a[4],out[0]; -rz(-4*pi) out[0]; -cx a[4],out[0]; -rz(4*pi) out[0]; -rz(2*pi) b[0]; -cx b[0],out[1]; -rz(-2*pi) out[1]; -cx b[0],out[1]; -rz(2*pi) out[1]; -cx b[0],a[4]; -rz(-2*pi) a[4]; -cx a[4],out[1]; -rz(2*pi) out[1]; -cx a[4],out[1]; -rz(-2*pi) out[1]; -cx b[0],a[4]; -rz(2*pi) a[4]; -cx a[4],out[1]; -rz(-2*pi) out[1]; -cx a[4],out[1]; -rz(2*pi) out[1]; -rz(pi) b[0]; -cx b[0],out[2]; -rz(-pi) out[2]; -cx b[0],out[2]; -rz(pi) out[2]; -cx b[0],a[4]; -rz(-pi) a[4]; -cx a[4],out[2]; -rz(pi) out[2]; -cx a[4],out[2]; -rz(-pi) out[2]; -cx b[0],a[4]; -rz(pi) a[4]; -cx a[4],out[2]; -rz(-pi) out[2]; -cx a[4],out[2]; -rz(pi) out[2]; -rz(pi/2) b[0]; -cx b[0],out[3]; -rz(-pi/2) out[3]; -cx b[0],out[3]; -rz(pi/2) out[3]; -cx b[0],a[4]; -rz(-pi/2) a[4]; -cx a[4],out[3]; -rz(pi/2) out[3]; -cx a[4],out[3]; -rz(-pi/2) out[3]; -cx b[0],a[4]; -rz(pi/2) a[4]; -cx a[4],out[3]; -rz(-pi/2) out[3]; -cx a[4],out[3]; -rz(pi/2) out[3]; -rz(pi/4) b[0]; -cx b[0],out[4]; -rz(-pi/4) out[4]; -cx b[0],out[4]; -rz(pi/4) out[4]; -cx b[0],a[4]; -rz(-pi/4) a[4]; -cx a[4],out[4]; -rz(pi/4) out[4]; -cx a[4],out[4]; -rz(-pi/4) out[4]; -cx b[0],a[4]; -rz(pi/4) a[4]; -cx a[4],out[4]; -rz(-pi/4) out[4]; -cx a[4],out[4]; -rz(pi/4) out[4]; -rz(pi/8) b[0]; -cx b[0],out[5]; -rz(-pi/8) out[5]; -cx b[0],out[5]; -rz(pi/8) out[5]; -cx b[0],a[4]; -rz(-pi/8) a[4]; -cx a[4],out[5]; -rz(pi/8) out[5]; -cx a[4],out[5]; -rz(-pi/8) out[5]; -cx b[0],a[4]; -rz(pi/8) a[4]; -cx a[4],out[5]; -rz(-pi/8) out[5]; -cx a[4],out[5]; -rz(pi/8) out[5]; -rz(pi/16) b[0]; -cx b[0],out[6]; -rz(-pi/16) out[6]; -cx b[0],out[6]; -rz(pi/16) out[6]; -cx b[0],a[4]; -rz(-pi/16) a[4]; -cx a[4],out[6]; -rz(pi/16) out[6]; -cx a[4],out[6]; -rz(-pi/16) out[6]; -cx b[0],a[4]; -rz(pi/16) a[4]; -cx a[4],out[6]; -rz(-pi/16) out[6]; -cx a[4],out[6]; -rz(pi/16) out[6]; -rz(pi/32) b[0]; -cx b[0],out[7]; -rz(-pi/32) out[7]; -cx b[0],out[7]; -rz(pi/32) out[7]; -cx b[0],a[4]; -rz(-pi/32) a[4]; -cx a[4],out[7]; -rz(pi/32) out[7]; -cx a[4],out[7]; -rz(-pi/32) out[7]; -cx b[0],a[4]; -rz(pi/32) a[4]; -cx a[4],out[7]; -rz(-pi/32) out[7]; -cx a[4],out[7]; -rz(pi/32) out[7]; -rz(pi/64) b[0]; -cx b[0],out[8]; -rz(-pi/64) out[8]; -cx b[0],out[8]; -rz(pi/64) out[8]; -cx b[0],a[4]; -rz(-pi/64) a[4]; -cx a[4],out[8]; -rz(pi/64) out[8]; -cx a[4],out[8]; -rz(-pi/64) out[8]; -cx b[0],a[4]; -rz(pi/64) a[4]; -cx a[4],out[8]; -rz(-pi/64) out[8]; -cx a[4],out[8]; -rz(pi/64) out[8]; -rz(pi/128) b[0]; -cx b[0],out[9]; -rz(-pi/128) out[9]; -cx b[0],out[9]; -rz(pi/128) out[9]; -cx b[0],a[4]; -rz(-pi/128) a[4]; -cx a[4],out[9]; -rz(pi/128) out[9]; -cx a[4],out[9]; -rz(-pi/128) out[9]; -cx b[0],a[4]; -rz(pi/128) a[4]; -cx a[4],out[9]; -rz(-pi/128) out[9]; -cx a[4],out[9]; -rz(pi/128) out[9]; -rz(pi/256) b[0]; -cx b[0],out[10]; -rz(-pi/256) out[10]; -cx b[0],out[10]; -rz(pi/256) out[10]; -cx b[0],a[4]; -rz(-pi/256) a[4]; -cx a[4],out[10]; -rz(pi/256) out[10]; -cx a[4],out[10]; -rz(-pi/256) out[10]; -cx b[0],a[4]; -rz(pi/256) a[4]; -cx a[4],out[10]; -rz(-pi/256) out[10]; -cx a[4],out[10]; -rz(pi/256) out[10]; -rz(pi/512) b[0]; -cx b[0],out[11]; -rz(-pi/512) out[11]; -cx b[0],out[11]; -rz(pi/512) out[11]; -cx b[0],a[4]; -rz(-pi/512) a[4]; -cx a[4],out[11]; -rz(pi/512) out[11]; -cx a[4],out[11]; -rz(-pi/512) out[11]; -cx b[0],a[4]; -rz(pi/512) a[4]; -cx a[4],out[11]; -rz(-pi/512) out[11]; -cx a[4],out[11]; -rz(pi/512) out[11]; -rz(pi/1024) b[0]; -cx b[0],out[12]; -rz(-pi/1024) out[12]; -cx b[0],out[12]; -rz(pi/1024) out[12]; -cx b[0],a[4]; -rz(-pi/1024) a[4]; -cx a[4],out[12]; -rz(pi/1024) out[12]; -cx a[4],out[12]; -rz(-pi/1024) out[12]; -cx b[0],a[4]; -rz(pi/1024) a[4]; -cx a[4],out[12]; -rz(-pi/1024) out[12]; -cx a[4],out[12]; -rz(pi/1024) out[12]; -rz(pi/2048) b[0]; -cx b[0],out[13]; -rz(-pi/2048) out[13]; -cx b[0],out[13]; -rz(pi/2048) out[13]; -cx b[0],a[4]; -rz(-pi/2048) a[4]; -cx a[4],out[13]; -rz(pi/2048) out[13]; -cx a[4],out[13]; -rz(-pi/2048) out[13]; -cx b[0],a[4]; -rz(pi/2048) a[4]; -cx a[4],out[13]; -rz(-pi/2048) out[13]; -cx a[4],out[13]; -rz(pi/2048) out[13]; -rz(pi/4096) b[0]; -cx b[0],out[14]; -rz(-pi/4096) out[14]; -cx b[0],out[14]; -rz(pi/4096) out[14]; -cx b[0],a[4]; -rz(-pi/4096) a[4]; -cx a[4],out[14]; -rz(pi/4096) out[14]; -cx a[4],out[14]; -rz(-pi/4096) out[14]; -cx b[0],a[4]; -rz(pi/4096) a[4]; -cx a[4],out[14]; -rz(-pi/4096) out[14]; -cx a[4],out[14]; -rz(pi/4096) out[14]; -rz(pi/8192) b[0]; -cx b[0],out[15]; -rz(-pi/8192) out[15]; -cx b[0],out[15]; -rz(pi/8192) out[15]; -cx b[0],a[4]; -rz(-pi/8192) a[4]; -cx a[4],out[15]; -rz(pi/8192) out[15]; -cx a[4],out[15]; -rz(-pi/8192) out[15]; -cx b[0],a[4]; -rz(pi/8192) a[4]; -cx a[4],out[15]; -rz(-pi/8192) out[15]; -cx a[4],out[15]; -rz(pi/8192) out[15]; -rz(2*pi) b[0]; -rz(4*pi) b[1]; -rz(8*pi) b[2]; -rz(16*pi) b[3]; -rz(32*pi) b[4]; -rz(64*pi) b[5]; -rz(128*pi) b[6]; -rz(256*pi) b[7]; -cx b[7],out[0]; -rz(-256*pi) out[0]; -cx b[7],out[0]; -rz(256*pi) out[0]; -cx b[7],a[3]; -rz(-256*pi) a[3]; -cx a[3],out[0]; -rz(256*pi) out[0]; -cx a[3],out[0]; -rz(-256*pi) out[0]; -cx b[7],a[3]; -rz(256*pi) a[3]; -cx a[3],out[0]; -rz(-256*pi) out[0]; -cx a[3],out[0]; -rz(256*pi) out[0]; -cx b[6],out[0]; -rz(-128*pi) out[0]; -cx b[6],out[0]; -rz(128*pi) out[0]; -rz(128*pi) b[7]; -cx b[7],out[1]; -rz(-128*pi) out[1]; -cx b[7],out[1]; -rz(128*pi) out[1]; -cx b[7],a[3]; -rz(-128*pi) a[3]; -cx a[3],out[1]; -rz(128*pi) out[1]; -cx a[3],out[1]; -rz(-128*pi) out[1]; -cx b[7],a[3]; -rz(128*pi) a[3]; -cx a[3],out[1]; -rz(-128*pi) out[1]; -cx a[3],out[1]; -rz(128*pi) out[1]; -rz(64*pi) b[7]; -cx b[7],out[2]; -rz(-64*pi) out[2]; -cx b[7],out[2]; -rz(64*pi) out[2]; -cx b[7],a[3]; -rz(-64*pi) a[3]; -cx a[3],out[2]; -rz(64*pi) out[2]; -cx a[3],out[2]; -rz(-64*pi) out[2]; -cx b[7],a[3]; -rz(64*pi) a[3]; -cx a[3],out[2]; -rz(-64*pi) out[2]; -cx a[3],out[2]; -rz(64*pi) out[2]; -rz(32*pi) b[7]; -cx b[7],out[3]; -rz(-32*pi) out[3]; -cx b[7],out[3]; -rz(32*pi) out[3]; -cx b[7],a[3]; -rz(-32*pi) a[3]; -cx a[3],out[3]; -rz(32*pi) out[3]; -cx a[3],out[3]; -rz(-32*pi) out[3]; -cx b[7],a[3]; -rz(32*pi) a[3]; -cx a[3],out[3]; -rz(-32*pi) out[3]; -cx a[3],out[3]; -rz(32*pi) out[3]; -rz(16*pi) b[7]; -cx b[7],out[4]; -rz(-16*pi) out[4]; -cx b[7],out[4]; -rz(16*pi) out[4]; -cx b[7],a[3]; -rz(-16*pi) a[3]; -cx a[3],out[4]; -rz(16*pi) out[4]; -cx a[3],out[4]; -rz(-16*pi) out[4]; -cx b[7],a[3]; -rz(16*pi) a[3]; -cx a[3],out[4]; -rz(-16*pi) out[4]; -cx a[3],out[4]; -rz(16*pi) out[4]; -rz(8*pi) b[7]; -cx b[7],out[5]; -rz(-8*pi) out[5]; -cx b[7],out[5]; -rz(8*pi) out[5]; -cx b[7],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[5]; -rz(8*pi) out[5]; -cx a[3],out[5]; -rz(-8*pi) out[5]; -cx b[7],a[3]; -rz(8*pi) a[3]; -cx a[3],out[5]; -rz(-8*pi) out[5]; -cx a[3],out[5]; -rz(8*pi) out[5]; -rz(4*pi) b[7]; -cx b[7],out[6]; -rz(-4*pi) out[6]; -cx b[7],out[6]; -rz(4*pi) out[6]; -cx b[7],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[6]; -rz(4*pi) out[6]; -cx a[3],out[6]; -rz(-4*pi) out[6]; -cx b[7],a[3]; -rz(4*pi) a[3]; -cx a[3],out[6]; -rz(-4*pi) out[6]; -cx a[3],out[6]; -rz(4*pi) out[6]; -rz(2*pi) b[7]; -cx b[7],out[7]; -rz(-2*pi) out[7]; -cx b[7],out[7]; -rz(2*pi) out[7]; -cx b[7],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[7]; -rz(2*pi) out[7]; -cx a[3],out[7]; -rz(-2*pi) out[7]; -cx b[7],a[3]; -rz(2*pi) a[3]; -cx a[3],out[7]; -rz(-2*pi) out[7]; -cx a[3],out[7]; -rz(2*pi) out[7]; -rz(pi) b[7]; -cx b[7],out[8]; -rz(-pi) out[8]; -cx b[7],out[8]; -rz(pi) out[8]; -cx b[7],a[3]; -rz(-pi) a[3]; -cx a[3],out[8]; -rz(pi) out[8]; -cx a[3],out[8]; -rz(-pi) out[8]; -cx b[7],a[3]; -rz(pi) a[3]; -cx a[3],out[8]; -rz(-pi) out[8]; -cx a[3],out[8]; -rz(pi) out[8]; -rz(pi/2) b[7]; -cx b[7],out[9]; -rz(-pi/2) out[9]; -cx b[7],out[9]; -rz(pi/2) out[9]; -cx b[7],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[9]; -rz(pi/2) out[9]; -cx a[3],out[9]; -rz(-pi/2) out[9]; -cx b[7],a[3]; -rz(pi/2) a[3]; -cx a[3],out[9]; -rz(-pi/2) out[9]; -cx a[3],out[9]; -rz(pi/2) out[9]; -rz(pi/4) b[7]; -cx b[7],out[10]; -rz(-pi/4) out[10]; -cx b[7],out[10]; -rz(pi/4) out[10]; -cx b[7],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[10]; -rz(pi/4) out[10]; -cx a[3],out[10]; -rz(-pi/4) out[10]; -cx b[7],a[3]; -rz(pi/4) a[3]; -cx a[3],out[10]; -rz(-pi/4) out[10]; -cx a[3],out[10]; -rz(pi/4) out[10]; -rz(pi/8) b[7]; -cx b[7],out[11]; -rz(-pi/8) out[11]; -cx b[7],out[11]; -rz(pi/8) out[11]; -cx b[7],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[11]; -rz(pi/8) out[11]; -cx a[3],out[11]; -rz(-pi/8) out[11]; -cx b[7],a[3]; -rz(pi/8) a[3]; -cx a[3],out[11]; -rz(-pi/8) out[11]; -cx a[3],out[11]; -rz(pi/8) out[11]; -rz(pi/16) b[7]; -cx b[7],out[12]; -rz(-pi/16) out[12]; -cx b[7],out[12]; -rz(pi/16) out[12]; -cx b[7],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[12]; -rz(pi/16) out[12]; -cx a[3],out[12]; -rz(-pi/16) out[12]; -cx b[7],a[3]; -rz(pi/16) a[3]; -cx a[3],out[12]; -rz(-pi/16) out[12]; -cx a[3],out[12]; -rz(pi/16) out[12]; -rz(pi/32) b[7]; -cx b[7],out[13]; -rz(-pi/32) out[13]; -cx b[7],out[13]; -rz(pi/32) out[13]; -cx b[7],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[13]; -rz(pi/32) out[13]; -cx a[3],out[13]; -rz(-pi/32) out[13]; -cx b[7],a[3]; -rz(pi/32) a[3]; -cx a[3],out[13]; -rz(-pi/32) out[13]; -cx a[3],out[13]; -rz(pi/32) out[13]; -rz(pi/64) b[7]; -cx b[7],out[14]; -rz(-pi/64) out[14]; -cx b[7],out[14]; -rz(pi/64) out[14]; -cx b[7],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[14]; -rz(pi/64) out[14]; -cx a[3],out[14]; -rz(-pi/64) out[14]; -cx b[7],a[3]; -rz(pi/64) a[3]; -cx a[3],out[14]; -rz(-pi/64) out[14]; -cx a[3],out[14]; -rz(pi/64) out[14]; -rz(pi/128) b[7]; -cx b[7],out[15]; -rz(-pi/128) out[15]; -cx b[7],out[15]; -rz(pi/128) out[15]; -cx b[7],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[15]; -rz(pi/128) out[15]; -cx a[3],out[15]; -rz(-pi/128) out[15]; -cx b[7],a[3]; -rz(pi/128) a[3]; -cx a[3],out[15]; -rz(-pi/128) out[15]; -cx a[3],out[15]; -rz(pi/128) out[15]; -cx b[6],a[3]; -rz(-128*pi) a[3]; -cx a[3],out[0]; -rz(128*pi) out[0]; -cx a[3],out[0]; -rz(-128*pi) out[0]; -cx b[6],a[3]; -rz(128*pi) a[3]; -cx a[3],out[0]; -rz(-128*pi) out[0]; -cx a[3],out[0]; -rz(128*pi) out[0]; -cx b[5],out[0]; -rz(-64*pi) out[0]; -cx b[5],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[6]; -cx b[6],out[1]; -rz(-64*pi) out[1]; -cx b[6],out[1]; -rz(64*pi) out[1]; -cx b[6],a[3]; -rz(-64*pi) a[3]; -cx a[3],out[1]; -rz(64*pi) out[1]; -cx a[3],out[1]; -rz(-64*pi) out[1]; -cx b[6],a[3]; -rz(64*pi) a[3]; -cx a[3],out[1]; -rz(-64*pi) out[1]; -cx a[3],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[6]; -cx b[6],out[2]; -rz(-32*pi) out[2]; -cx b[6],out[2]; -rz(32*pi) out[2]; -cx b[6],a[3]; -rz(-32*pi) a[3]; -cx a[3],out[2]; -rz(32*pi) out[2]; -cx a[3],out[2]; -rz(-32*pi) out[2]; -cx b[6],a[3]; -rz(32*pi) a[3]; -cx a[3],out[2]; -rz(-32*pi) out[2]; -cx a[3],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[6]; -cx b[6],out[3]; -rz(-16*pi) out[3]; -cx b[6],out[3]; -rz(16*pi) out[3]; -cx b[6],a[3]; -rz(-16*pi) a[3]; -cx a[3],out[3]; -rz(16*pi) out[3]; -cx a[3],out[3]; -rz(-16*pi) out[3]; -cx b[6],a[3]; -rz(16*pi) a[3]; -cx a[3],out[3]; -rz(-16*pi) out[3]; -cx a[3],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[6]; -cx b[6],out[4]; -rz(-8*pi) out[4]; -cx b[6],out[4]; -rz(8*pi) out[4]; -cx b[6],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[4]; -rz(8*pi) out[4]; -cx a[3],out[4]; -rz(-8*pi) out[4]; -cx b[6],a[3]; -rz(8*pi) a[3]; -cx a[3],out[4]; -rz(-8*pi) out[4]; -cx a[3],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[6]; -cx b[6],out[5]; -rz(-4*pi) out[5]; -cx b[6],out[5]; -rz(4*pi) out[5]; -cx b[6],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[5]; -rz(4*pi) out[5]; -cx a[3],out[5]; -rz(-4*pi) out[5]; -cx b[6],a[3]; -rz(4*pi) a[3]; -cx a[3],out[5]; -rz(-4*pi) out[5]; -cx a[3],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[6]; -cx b[6],out[6]; -rz(-2*pi) out[6]; -cx b[6],out[6]; -rz(2*pi) out[6]; -cx b[6],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[6]; -rz(2*pi) out[6]; -cx a[3],out[6]; -rz(-2*pi) out[6]; -cx b[6],a[3]; -rz(2*pi) a[3]; -cx a[3],out[6]; -rz(-2*pi) out[6]; -cx a[3],out[6]; -rz(2*pi) out[6]; -rz(pi) b[6]; -cx b[6],out[7]; -rz(-pi) out[7]; -cx b[6],out[7]; -rz(pi) out[7]; -cx b[6],a[3]; -rz(-pi) a[3]; -cx a[3],out[7]; -rz(pi) out[7]; -cx a[3],out[7]; -rz(-pi) out[7]; -cx b[6],a[3]; -rz(pi) a[3]; -cx a[3],out[7]; -rz(-pi) out[7]; -cx a[3],out[7]; -rz(pi) out[7]; -rz(pi/2) b[6]; -cx b[6],out[8]; -rz(-pi/2) out[8]; -cx b[6],out[8]; -rz(pi/2) out[8]; -cx b[6],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[8]; -rz(pi/2) out[8]; -cx a[3],out[8]; -rz(-pi/2) out[8]; -cx b[6],a[3]; -rz(pi/2) a[3]; -cx a[3],out[8]; -rz(-pi/2) out[8]; -cx a[3],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[6]; -cx b[6],out[9]; -rz(-pi/4) out[9]; -cx b[6],out[9]; -rz(pi/4) out[9]; -cx b[6],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[9]; -rz(pi/4) out[9]; -cx a[3],out[9]; -rz(-pi/4) out[9]; -cx b[6],a[3]; -rz(pi/4) a[3]; -cx a[3],out[9]; -rz(-pi/4) out[9]; -cx a[3],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[6]; -cx b[6],out[10]; -rz(-pi/8) out[10]; -cx b[6],out[10]; -rz(pi/8) out[10]; -cx b[6],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[10]; -rz(pi/8) out[10]; -cx a[3],out[10]; -rz(-pi/8) out[10]; -cx b[6],a[3]; -rz(pi/8) a[3]; -cx a[3],out[10]; -rz(-pi/8) out[10]; -cx a[3],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[6]; -cx b[6],out[11]; -rz(-pi/16) out[11]; -cx b[6],out[11]; -rz(pi/16) out[11]; -cx b[6],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[11]; -rz(pi/16) out[11]; -cx a[3],out[11]; -rz(-pi/16) out[11]; -cx b[6],a[3]; -rz(pi/16) a[3]; -cx a[3],out[11]; -rz(-pi/16) out[11]; -cx a[3],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[6]; -cx b[6],out[12]; -rz(-pi/32) out[12]; -cx b[6],out[12]; -rz(pi/32) out[12]; -cx b[6],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[12]; -rz(pi/32) out[12]; -cx a[3],out[12]; -rz(-pi/32) out[12]; -cx b[6],a[3]; -rz(pi/32) a[3]; -cx a[3],out[12]; -rz(-pi/32) out[12]; -cx a[3],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[6]; -cx b[6],out[13]; -rz(-pi/64) out[13]; -cx b[6],out[13]; -rz(pi/64) out[13]; -cx b[6],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[13]; -rz(pi/64) out[13]; -cx a[3],out[13]; -rz(-pi/64) out[13]; -cx b[6],a[3]; -rz(pi/64) a[3]; -cx a[3],out[13]; -rz(-pi/64) out[13]; -cx a[3],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[6]; -cx b[6],out[14]; -rz(-pi/128) out[14]; -cx b[6],out[14]; -rz(pi/128) out[14]; -cx b[6],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[14]; -rz(pi/128) out[14]; -cx a[3],out[14]; -rz(-pi/128) out[14]; -cx b[6],a[3]; -rz(pi/128) a[3]; -cx a[3],out[14]; -rz(-pi/128) out[14]; -cx a[3],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[6]; -cx b[6],out[15]; -rz(-pi/256) out[15]; -cx b[6],out[15]; -rz(pi/256) out[15]; -cx b[6],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[15]; -rz(pi/256) out[15]; -cx a[3],out[15]; -rz(-pi/256) out[15]; -cx b[6],a[3]; -rz(pi/256) a[3]; -cx a[3],out[15]; -rz(-pi/256) out[15]; -cx a[3],out[15]; -rz(pi/256) out[15]; -cx b[5],a[3]; -rz(-64*pi) a[3]; -cx a[3],out[0]; -rz(64*pi) out[0]; -cx a[3],out[0]; -rz(-64*pi) out[0]; -cx b[5],a[3]; -rz(64*pi) a[3]; -cx a[3],out[0]; -rz(-64*pi) out[0]; -cx a[3],out[0]; -rz(64*pi) out[0]; -cx b[4],out[0]; -rz(-32*pi) out[0]; -cx b[4],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[5]; -cx b[5],out[1]; -rz(-32*pi) out[1]; -cx b[5],out[1]; -rz(32*pi) out[1]; -cx b[5],a[3]; -rz(-32*pi) a[3]; -cx a[3],out[1]; -rz(32*pi) out[1]; -cx a[3],out[1]; -rz(-32*pi) out[1]; -cx b[5],a[3]; -rz(32*pi) a[3]; -cx a[3],out[1]; -rz(-32*pi) out[1]; -cx a[3],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[5]; -cx b[5],out[2]; -rz(-16*pi) out[2]; -cx b[5],out[2]; -rz(16*pi) out[2]; -cx b[5],a[3]; -rz(-16*pi) a[3]; -cx a[3],out[2]; -rz(16*pi) out[2]; -cx a[3],out[2]; -rz(-16*pi) out[2]; -cx b[5],a[3]; -rz(16*pi) a[3]; -cx a[3],out[2]; -rz(-16*pi) out[2]; -cx a[3],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[5]; -cx b[5],out[3]; -rz(-8*pi) out[3]; -cx b[5],out[3]; -rz(8*pi) out[3]; -cx b[5],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[3]; -rz(8*pi) out[3]; -cx a[3],out[3]; -rz(-8*pi) out[3]; -cx b[5],a[3]; -rz(8*pi) a[3]; -cx a[3],out[3]; -rz(-8*pi) out[3]; -cx a[3],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[5]; -cx b[5],out[4]; -rz(-4*pi) out[4]; -cx b[5],out[4]; -rz(4*pi) out[4]; -cx b[5],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[4]; -rz(4*pi) out[4]; -cx a[3],out[4]; -rz(-4*pi) out[4]; -cx b[5],a[3]; -rz(4*pi) a[3]; -cx a[3],out[4]; -rz(-4*pi) out[4]; -cx a[3],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[5]; -cx b[5],out[5]; -rz(-2*pi) out[5]; -cx b[5],out[5]; -rz(2*pi) out[5]; -cx b[5],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[5]; -rz(2*pi) out[5]; -cx a[3],out[5]; -rz(-2*pi) out[5]; -cx b[5],a[3]; -rz(2*pi) a[3]; -cx a[3],out[5]; -rz(-2*pi) out[5]; -cx a[3],out[5]; -rz(2*pi) out[5]; -rz(pi) b[5]; -cx b[5],out[6]; -rz(-pi) out[6]; -cx b[5],out[6]; -rz(pi) out[6]; -cx b[5],a[3]; -rz(-pi) a[3]; -cx a[3],out[6]; -rz(pi) out[6]; -cx a[3],out[6]; -rz(-pi) out[6]; -cx b[5],a[3]; -rz(pi) a[3]; -cx a[3],out[6]; -rz(-pi) out[6]; -cx a[3],out[6]; -rz(pi) out[6]; -rz(pi/2) b[5]; -cx b[5],out[7]; -rz(-pi/2) out[7]; -cx b[5],out[7]; -rz(pi/2) out[7]; -cx b[5],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[7]; -rz(pi/2) out[7]; -cx a[3],out[7]; -rz(-pi/2) out[7]; -cx b[5],a[3]; -rz(pi/2) a[3]; -cx a[3],out[7]; -rz(-pi/2) out[7]; -cx a[3],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[5]; -cx b[5],out[8]; -rz(-pi/4) out[8]; -cx b[5],out[8]; -rz(pi/4) out[8]; -cx b[5],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[8]; -rz(pi/4) out[8]; -cx a[3],out[8]; -rz(-pi/4) out[8]; -cx b[5],a[3]; -rz(pi/4) a[3]; -cx a[3],out[8]; -rz(-pi/4) out[8]; -cx a[3],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[5]; -cx b[5],out[9]; -rz(-pi/8) out[9]; -cx b[5],out[9]; -rz(pi/8) out[9]; -cx b[5],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[9]; -rz(pi/8) out[9]; -cx a[3],out[9]; -rz(-pi/8) out[9]; -cx b[5],a[3]; -rz(pi/8) a[3]; -cx a[3],out[9]; -rz(-pi/8) out[9]; -cx a[3],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[5]; -cx b[5],out[10]; -rz(-pi/16) out[10]; -cx b[5],out[10]; -rz(pi/16) out[10]; -cx b[5],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[10]; -rz(pi/16) out[10]; -cx a[3],out[10]; -rz(-pi/16) out[10]; -cx b[5],a[3]; -rz(pi/16) a[3]; -cx a[3],out[10]; -rz(-pi/16) out[10]; -cx a[3],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[5]; -cx b[5],out[11]; -rz(-pi/32) out[11]; -cx b[5],out[11]; -rz(pi/32) out[11]; -cx b[5],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[11]; -rz(pi/32) out[11]; -cx a[3],out[11]; -rz(-pi/32) out[11]; -cx b[5],a[3]; -rz(pi/32) a[3]; -cx a[3],out[11]; -rz(-pi/32) out[11]; -cx a[3],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[5]; -cx b[5],out[12]; -rz(-pi/64) out[12]; -cx b[5],out[12]; -rz(pi/64) out[12]; -cx b[5],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[12]; -rz(pi/64) out[12]; -cx a[3],out[12]; -rz(-pi/64) out[12]; -cx b[5],a[3]; -rz(pi/64) a[3]; -cx a[3],out[12]; -rz(-pi/64) out[12]; -cx a[3],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[5]; -cx b[5],out[13]; -rz(-pi/128) out[13]; -cx b[5],out[13]; -rz(pi/128) out[13]; -cx b[5],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[13]; -rz(pi/128) out[13]; -cx a[3],out[13]; -rz(-pi/128) out[13]; -cx b[5],a[3]; -rz(pi/128) a[3]; -cx a[3],out[13]; -rz(-pi/128) out[13]; -cx a[3],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[5]; -cx b[5],out[14]; -rz(-pi/256) out[14]; -cx b[5],out[14]; -rz(pi/256) out[14]; -cx b[5],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[14]; -rz(pi/256) out[14]; -cx a[3],out[14]; -rz(-pi/256) out[14]; -cx b[5],a[3]; -rz(pi/256) a[3]; -cx a[3],out[14]; -rz(-pi/256) out[14]; -cx a[3],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[5]; -cx b[5],out[15]; -rz(-pi/512) out[15]; -cx b[5],out[15]; -rz(pi/512) out[15]; -cx b[5],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[15]; -rz(pi/512) out[15]; -cx a[3],out[15]; -rz(-pi/512) out[15]; -cx b[5],a[3]; -rz(pi/512) a[3]; -cx a[3],out[15]; -rz(-pi/512) out[15]; -cx a[3],out[15]; -rz(pi/512) out[15]; -cx b[4],a[3]; -rz(-32*pi) a[3]; -cx a[3],out[0]; -rz(32*pi) out[0]; -cx a[3],out[0]; -rz(-32*pi) out[0]; -cx b[4],a[3]; -rz(32*pi) a[3]; -cx a[3],out[0]; -rz(-32*pi) out[0]; -cx a[3],out[0]; -rz(32*pi) out[0]; -cx b[3],out[0]; -rz(-16*pi) out[0]; -cx b[3],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[4]; -cx b[4],out[1]; -rz(-16*pi) out[1]; -cx b[4],out[1]; -rz(16*pi) out[1]; -cx b[4],a[3]; -rz(-16*pi) a[3]; -cx a[3],out[1]; -rz(16*pi) out[1]; -cx a[3],out[1]; -rz(-16*pi) out[1]; -cx b[4],a[3]; -rz(16*pi) a[3]; -cx a[3],out[1]; -rz(-16*pi) out[1]; -cx a[3],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[4]; -cx b[4],out[2]; -rz(-8*pi) out[2]; -cx b[4],out[2]; -rz(8*pi) out[2]; -cx b[4],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[2]; -rz(8*pi) out[2]; -cx a[3],out[2]; -rz(-8*pi) out[2]; -cx b[4],a[3]; -rz(8*pi) a[3]; -cx a[3],out[2]; -rz(-8*pi) out[2]; -cx a[3],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[4]; -cx b[4],out[3]; -rz(-4*pi) out[3]; -cx b[4],out[3]; -rz(4*pi) out[3]; -cx b[4],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[3]; -rz(4*pi) out[3]; -cx a[3],out[3]; -rz(-4*pi) out[3]; -cx b[4],a[3]; -rz(4*pi) a[3]; -cx a[3],out[3]; -rz(-4*pi) out[3]; -cx a[3],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[4]; -cx b[4],out[4]; -rz(-2*pi) out[4]; -cx b[4],out[4]; -rz(2*pi) out[4]; -cx b[4],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[4]; -rz(2*pi) out[4]; -cx a[3],out[4]; -rz(-2*pi) out[4]; -cx b[4],a[3]; -rz(2*pi) a[3]; -cx a[3],out[4]; -rz(-2*pi) out[4]; -cx a[3],out[4]; -rz(2*pi) out[4]; -rz(pi) b[4]; -cx b[4],out[5]; -rz(-pi) out[5]; -cx b[4],out[5]; -rz(pi) out[5]; -cx b[4],a[3]; -rz(-pi) a[3]; -cx a[3],out[5]; -rz(pi) out[5]; -cx a[3],out[5]; -rz(-pi) out[5]; -cx b[4],a[3]; -rz(pi) a[3]; -cx a[3],out[5]; -rz(-pi) out[5]; -cx a[3],out[5]; -rz(pi) out[5]; -rz(pi/2) b[4]; -cx b[4],out[6]; -rz(-pi/2) out[6]; -cx b[4],out[6]; -rz(pi/2) out[6]; -cx b[4],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[6]; -rz(pi/2) out[6]; -cx a[3],out[6]; -rz(-pi/2) out[6]; -cx b[4],a[3]; -rz(pi/2) a[3]; -cx a[3],out[6]; -rz(-pi/2) out[6]; -cx a[3],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[4]; -cx b[4],out[7]; -rz(-pi/4) out[7]; -cx b[4],out[7]; -rz(pi/4) out[7]; -cx b[4],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[7]; -rz(pi/4) out[7]; -cx a[3],out[7]; -rz(-pi/4) out[7]; -cx b[4],a[3]; -rz(pi/4) a[3]; -cx a[3],out[7]; -rz(-pi/4) out[7]; -cx a[3],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[4]; -cx b[4],out[8]; -rz(-pi/8) out[8]; -cx b[4],out[8]; -rz(pi/8) out[8]; -cx b[4],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[8]; -rz(pi/8) out[8]; -cx a[3],out[8]; -rz(-pi/8) out[8]; -cx b[4],a[3]; -rz(pi/8) a[3]; -cx a[3],out[8]; -rz(-pi/8) out[8]; -cx a[3],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[4]; -cx b[4],out[9]; -rz(-pi/16) out[9]; -cx b[4],out[9]; -rz(pi/16) out[9]; -cx b[4],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[9]; -rz(pi/16) out[9]; -cx a[3],out[9]; -rz(-pi/16) out[9]; -cx b[4],a[3]; -rz(pi/16) a[3]; -cx a[3],out[9]; -rz(-pi/16) out[9]; -cx a[3],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[4]; -cx b[4],out[10]; -rz(-pi/32) out[10]; -cx b[4],out[10]; -rz(pi/32) out[10]; -cx b[4],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[10]; -rz(pi/32) out[10]; -cx a[3],out[10]; -rz(-pi/32) out[10]; -cx b[4],a[3]; -rz(pi/32) a[3]; -cx a[3],out[10]; -rz(-pi/32) out[10]; -cx a[3],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[4]; -cx b[4],out[11]; -rz(-pi/64) out[11]; -cx b[4],out[11]; -rz(pi/64) out[11]; -cx b[4],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[11]; -rz(pi/64) out[11]; -cx a[3],out[11]; -rz(-pi/64) out[11]; -cx b[4],a[3]; -rz(pi/64) a[3]; -cx a[3],out[11]; -rz(-pi/64) out[11]; -cx a[3],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[4]; -cx b[4],out[12]; -rz(-pi/128) out[12]; -cx b[4],out[12]; -rz(pi/128) out[12]; -cx b[4],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[12]; -rz(pi/128) out[12]; -cx a[3],out[12]; -rz(-pi/128) out[12]; -cx b[4],a[3]; -rz(pi/128) a[3]; -cx a[3],out[12]; -rz(-pi/128) out[12]; -cx a[3],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[4]; -cx b[4],out[13]; -rz(-pi/256) out[13]; -cx b[4],out[13]; -rz(pi/256) out[13]; -cx b[4],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[13]; -rz(pi/256) out[13]; -cx a[3],out[13]; -rz(-pi/256) out[13]; -cx b[4],a[3]; -rz(pi/256) a[3]; -cx a[3],out[13]; -rz(-pi/256) out[13]; -cx a[3],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[4]; -cx b[4],out[14]; -rz(-pi/512) out[14]; -cx b[4],out[14]; -rz(pi/512) out[14]; -cx b[4],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[14]; -rz(pi/512) out[14]; -cx a[3],out[14]; -rz(-pi/512) out[14]; -cx b[4],a[3]; -rz(pi/512) a[3]; -cx a[3],out[14]; -rz(-pi/512) out[14]; -cx a[3],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[4]; -cx b[4],out[15]; -rz(-pi/1024) out[15]; -cx b[4],out[15]; -rz(pi/1024) out[15]; -cx b[4],a[3]; -rz(-pi/1024) a[3]; -cx a[3],out[15]; -rz(pi/1024) out[15]; -cx a[3],out[15]; -rz(-pi/1024) out[15]; -cx b[4],a[3]; -rz(pi/1024) a[3]; -cx a[3],out[15]; -rz(-pi/1024) out[15]; -cx a[3],out[15]; -rz(pi/1024) out[15]; -cx b[3],a[3]; -rz(-16*pi) a[3]; -cx a[3],out[0]; -rz(16*pi) out[0]; -cx a[3],out[0]; -rz(-16*pi) out[0]; -cx b[3],a[3]; -rz(16*pi) a[3]; -cx a[3],out[0]; -rz(-16*pi) out[0]; -cx a[3],out[0]; -rz(16*pi) out[0]; -cx b[2],out[0]; -rz(-8*pi) out[0]; -cx b[2],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[3]; -cx b[3],out[1]; -rz(-8*pi) out[1]; -cx b[3],out[1]; -rz(8*pi) out[1]; -cx b[3],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[1]; -rz(8*pi) out[1]; -cx a[3],out[1]; -rz(-8*pi) out[1]; -cx b[3],a[3]; -rz(8*pi) a[3]; -cx a[3],out[1]; -rz(-8*pi) out[1]; -cx a[3],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[3]; -cx b[3],out[2]; -rz(-4*pi) out[2]; -cx b[3],out[2]; -rz(4*pi) out[2]; -cx b[3],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[2]; -rz(4*pi) out[2]; -cx a[3],out[2]; -rz(-4*pi) out[2]; -cx b[3],a[3]; -rz(4*pi) a[3]; -cx a[3],out[2]; -rz(-4*pi) out[2]; -cx a[3],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[3]; -cx b[3],out[3]; -rz(-2*pi) out[3]; -cx b[3],out[3]; -rz(2*pi) out[3]; -cx b[3],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[3]; -rz(2*pi) out[3]; -cx a[3],out[3]; -rz(-2*pi) out[3]; -cx b[3],a[3]; -rz(2*pi) a[3]; -cx a[3],out[3]; -rz(-2*pi) out[3]; -cx a[3],out[3]; -rz(2*pi) out[3]; -rz(pi) b[3]; -cx b[3],out[4]; -rz(-pi) out[4]; -cx b[3],out[4]; -rz(pi) out[4]; -cx b[3],a[3]; -rz(-pi) a[3]; -cx a[3],out[4]; -rz(pi) out[4]; -cx a[3],out[4]; -rz(-pi) out[4]; -cx b[3],a[3]; -rz(pi) a[3]; -cx a[3],out[4]; -rz(-pi) out[4]; -cx a[3],out[4]; -rz(pi) out[4]; -rz(pi/2) b[3]; -cx b[3],out[5]; -rz(-pi/2) out[5]; -cx b[3],out[5]; -rz(pi/2) out[5]; -cx b[3],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[5]; -rz(pi/2) out[5]; -cx a[3],out[5]; -rz(-pi/2) out[5]; -cx b[3],a[3]; -rz(pi/2) a[3]; -cx a[3],out[5]; -rz(-pi/2) out[5]; -cx a[3],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[3]; -cx b[3],out[6]; -rz(-pi/4) out[6]; -cx b[3],out[6]; -rz(pi/4) out[6]; -cx b[3],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[6]; -rz(pi/4) out[6]; -cx a[3],out[6]; -rz(-pi/4) out[6]; -cx b[3],a[3]; -rz(pi/4) a[3]; -cx a[3],out[6]; -rz(-pi/4) out[6]; -cx a[3],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[3]; -cx b[3],out[7]; -rz(-pi/8) out[7]; -cx b[3],out[7]; -rz(pi/8) out[7]; -cx b[3],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[7]; -rz(pi/8) out[7]; -cx a[3],out[7]; -rz(-pi/8) out[7]; -cx b[3],a[3]; -rz(pi/8) a[3]; -cx a[3],out[7]; -rz(-pi/8) out[7]; -cx a[3],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[3]; -cx b[3],out[8]; -rz(-pi/16) out[8]; -cx b[3],out[8]; -rz(pi/16) out[8]; -cx b[3],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[8]; -rz(pi/16) out[8]; -cx a[3],out[8]; -rz(-pi/16) out[8]; -cx b[3],a[3]; -rz(pi/16) a[3]; -cx a[3],out[8]; -rz(-pi/16) out[8]; -cx a[3],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[3]; -cx b[3],out[9]; -rz(-pi/32) out[9]; -cx b[3],out[9]; -rz(pi/32) out[9]; -cx b[3],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[9]; -rz(pi/32) out[9]; -cx a[3],out[9]; -rz(-pi/32) out[9]; -cx b[3],a[3]; -rz(pi/32) a[3]; -cx a[3],out[9]; -rz(-pi/32) out[9]; -cx a[3],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[3]; -cx b[3],out[10]; -rz(-pi/64) out[10]; -cx b[3],out[10]; -rz(pi/64) out[10]; -cx b[3],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[10]; -rz(pi/64) out[10]; -cx a[3],out[10]; -rz(-pi/64) out[10]; -cx b[3],a[3]; -rz(pi/64) a[3]; -cx a[3],out[10]; -rz(-pi/64) out[10]; -cx a[3],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[3]; -cx b[3],out[11]; -rz(-pi/128) out[11]; -cx b[3],out[11]; -rz(pi/128) out[11]; -cx b[3],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[11]; -rz(pi/128) out[11]; -cx a[3],out[11]; -rz(-pi/128) out[11]; -cx b[3],a[3]; -rz(pi/128) a[3]; -cx a[3],out[11]; -rz(-pi/128) out[11]; -cx a[3],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[3]; -cx b[3],out[12]; -rz(-pi/256) out[12]; -cx b[3],out[12]; -rz(pi/256) out[12]; -cx b[3],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[12]; -rz(pi/256) out[12]; -cx a[3],out[12]; -rz(-pi/256) out[12]; -cx b[3],a[3]; -rz(pi/256) a[3]; -cx a[3],out[12]; -rz(-pi/256) out[12]; -cx a[3],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[3]; -cx b[3],out[13]; -rz(-pi/512) out[13]; -cx b[3],out[13]; -rz(pi/512) out[13]; -cx b[3],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[13]; -rz(pi/512) out[13]; -cx a[3],out[13]; -rz(-pi/512) out[13]; -cx b[3],a[3]; -rz(pi/512) a[3]; -cx a[3],out[13]; -rz(-pi/512) out[13]; -cx a[3],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[3]; -cx b[3],out[14]; -rz(-pi/1024) out[14]; -cx b[3],out[14]; -rz(pi/1024) out[14]; -cx b[3],a[3]; -rz(-pi/1024) a[3]; -cx a[3],out[14]; -rz(pi/1024) out[14]; -cx a[3],out[14]; -rz(-pi/1024) out[14]; -cx b[3],a[3]; -rz(pi/1024) a[3]; -cx a[3],out[14]; -rz(-pi/1024) out[14]; -cx a[3],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[3]; -cx b[3],out[15]; -rz(-pi/2048) out[15]; -cx b[3],out[15]; -rz(pi/2048) out[15]; -cx b[3],a[3]; -rz(-pi/2048) a[3]; -cx a[3],out[15]; -rz(pi/2048) out[15]; -cx a[3],out[15]; -rz(-pi/2048) out[15]; -cx b[3],a[3]; -rz(pi/2048) a[3]; -cx a[3],out[15]; -rz(-pi/2048) out[15]; -cx a[3],out[15]; -rz(pi/2048) out[15]; -cx b[2],a[3]; -rz(-8*pi) a[3]; -cx a[3],out[0]; -rz(8*pi) out[0]; -cx a[3],out[0]; -rz(-8*pi) out[0]; -cx b[2],a[3]; -rz(8*pi) a[3]; -cx a[3],out[0]; -rz(-8*pi) out[0]; -cx a[3],out[0]; -rz(8*pi) out[0]; -cx b[1],out[0]; -rz(-4*pi) out[0]; -cx b[1],out[0]; -rz(4*pi) out[0]; -rz(4*pi) b[2]; -cx b[2],out[1]; -rz(-4*pi) out[1]; -cx b[2],out[1]; -rz(4*pi) out[1]; -cx b[2],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[1]; -rz(4*pi) out[1]; -cx a[3],out[1]; -rz(-4*pi) out[1]; -cx b[2],a[3]; -rz(4*pi) a[3]; -cx a[3],out[1]; -rz(-4*pi) out[1]; -cx a[3],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[2]; -cx b[2],out[2]; -rz(-2*pi) out[2]; -cx b[2],out[2]; -rz(2*pi) out[2]; -cx b[2],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[2]; -rz(2*pi) out[2]; -cx a[3],out[2]; -rz(-2*pi) out[2]; -cx b[2],a[3]; -rz(2*pi) a[3]; -cx a[3],out[2]; -rz(-2*pi) out[2]; -cx a[3],out[2]; -rz(2*pi) out[2]; -rz(pi) b[2]; -cx b[2],out[3]; -rz(-pi) out[3]; -cx b[2],out[3]; -rz(pi) out[3]; -cx b[2],a[3]; -rz(-pi) a[3]; -cx a[3],out[3]; -rz(pi) out[3]; -cx a[3],out[3]; -rz(-pi) out[3]; -cx b[2],a[3]; -rz(pi) a[3]; -cx a[3],out[3]; -rz(-pi) out[3]; -cx a[3],out[3]; -rz(pi) out[3]; -rz(pi/2) b[2]; -cx b[2],out[4]; -rz(-pi/2) out[4]; -cx b[2],out[4]; -rz(pi/2) out[4]; -cx b[2],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[4]; -rz(pi/2) out[4]; -cx a[3],out[4]; -rz(-pi/2) out[4]; -cx b[2],a[3]; -rz(pi/2) a[3]; -cx a[3],out[4]; -rz(-pi/2) out[4]; -cx a[3],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[2]; -cx b[2],out[5]; -rz(-pi/4) out[5]; -cx b[2],out[5]; -rz(pi/4) out[5]; -cx b[2],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[5]; -rz(pi/4) out[5]; -cx a[3],out[5]; -rz(-pi/4) out[5]; -cx b[2],a[3]; -rz(pi/4) a[3]; -cx a[3],out[5]; -rz(-pi/4) out[5]; -cx a[3],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[2]; -cx b[2],out[6]; -rz(-pi/8) out[6]; -cx b[2],out[6]; -rz(pi/8) out[6]; -cx b[2],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[6]; -rz(pi/8) out[6]; -cx a[3],out[6]; -rz(-pi/8) out[6]; -cx b[2],a[3]; -rz(pi/8) a[3]; -cx a[3],out[6]; -rz(-pi/8) out[6]; -cx a[3],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[2]; -cx b[2],out[7]; -rz(-pi/16) out[7]; -cx b[2],out[7]; -rz(pi/16) out[7]; -cx b[2],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[7]; -rz(pi/16) out[7]; -cx a[3],out[7]; -rz(-pi/16) out[7]; -cx b[2],a[3]; -rz(pi/16) a[3]; -cx a[3],out[7]; -rz(-pi/16) out[7]; -cx a[3],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[2]; -cx b[2],out[8]; -rz(-pi/32) out[8]; -cx b[2],out[8]; -rz(pi/32) out[8]; -cx b[2],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[8]; -rz(pi/32) out[8]; -cx a[3],out[8]; -rz(-pi/32) out[8]; -cx b[2],a[3]; -rz(pi/32) a[3]; -cx a[3],out[8]; -rz(-pi/32) out[8]; -cx a[3],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[2]; -cx b[2],out[9]; -rz(-pi/64) out[9]; -cx b[2],out[9]; -rz(pi/64) out[9]; -cx b[2],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[9]; -rz(pi/64) out[9]; -cx a[3],out[9]; -rz(-pi/64) out[9]; -cx b[2],a[3]; -rz(pi/64) a[3]; -cx a[3],out[9]; -rz(-pi/64) out[9]; -cx a[3],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[2]; -cx b[2],out[10]; -rz(-pi/128) out[10]; -cx b[2],out[10]; -rz(pi/128) out[10]; -cx b[2],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[10]; -rz(pi/128) out[10]; -cx a[3],out[10]; -rz(-pi/128) out[10]; -cx b[2],a[3]; -rz(pi/128) a[3]; -cx a[3],out[10]; -rz(-pi/128) out[10]; -cx a[3],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[2]; -cx b[2],out[11]; -rz(-pi/256) out[11]; -cx b[2],out[11]; -rz(pi/256) out[11]; -cx b[2],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[11]; -rz(pi/256) out[11]; -cx a[3],out[11]; -rz(-pi/256) out[11]; -cx b[2],a[3]; -rz(pi/256) a[3]; -cx a[3],out[11]; -rz(-pi/256) out[11]; -cx a[3],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[2]; -cx b[2],out[12]; -rz(-pi/512) out[12]; -cx b[2],out[12]; -rz(pi/512) out[12]; -cx b[2],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[12]; -rz(pi/512) out[12]; -cx a[3],out[12]; -rz(-pi/512) out[12]; -cx b[2],a[3]; -rz(pi/512) a[3]; -cx a[3],out[12]; -rz(-pi/512) out[12]; -cx a[3],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[2]; -cx b[2],out[13]; -rz(-pi/1024) out[13]; -cx b[2],out[13]; -rz(pi/1024) out[13]; -cx b[2],a[3]; -rz(-pi/1024) a[3]; -cx a[3],out[13]; -rz(pi/1024) out[13]; -cx a[3],out[13]; -rz(-pi/1024) out[13]; -cx b[2],a[3]; -rz(pi/1024) a[3]; -cx a[3],out[13]; -rz(-pi/1024) out[13]; -cx a[3],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[2]; -cx b[2],out[14]; -rz(-pi/2048) out[14]; -cx b[2],out[14]; -rz(pi/2048) out[14]; -cx b[2],a[3]; -rz(-pi/2048) a[3]; -cx a[3],out[14]; -rz(pi/2048) out[14]; -cx a[3],out[14]; -rz(-pi/2048) out[14]; -cx b[2],a[3]; -rz(pi/2048) a[3]; -cx a[3],out[14]; -rz(-pi/2048) out[14]; -cx a[3],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[2]; -cx b[2],out[15]; -rz(-pi/4096) out[15]; -cx b[2],out[15]; -rz(pi/4096) out[15]; -cx b[2],a[3]; -rz(-pi/4096) a[3]; -cx a[3],out[15]; -rz(pi/4096) out[15]; -cx a[3],out[15]; -rz(-pi/4096) out[15]; -cx b[2],a[3]; -rz(pi/4096) a[3]; -cx a[3],out[15]; -rz(-pi/4096) out[15]; -cx a[3],out[15]; -rz(pi/4096) out[15]; -cx b[1],a[3]; -rz(-4*pi) a[3]; -cx a[3],out[0]; -rz(4*pi) out[0]; -cx a[3],out[0]; -rz(-4*pi) out[0]; -cx b[1],a[3]; -rz(4*pi) a[3]; -cx a[3],out[0]; -rz(-4*pi) out[0]; -cx a[3],out[0]; -rz(4*pi) out[0]; -cx b[0],out[0]; -rz(-2*pi) out[0]; -cx b[0],out[0]; -rz(2*pi) out[0]; -rz(2*pi) b[1]; -cx b[1],out[1]; -rz(-2*pi) out[1]; -cx b[1],out[1]; -rz(2*pi) out[1]; -cx b[1],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[1]; -rz(2*pi) out[1]; -cx a[3],out[1]; -rz(-2*pi) out[1]; -cx b[1],a[3]; -rz(2*pi) a[3]; -cx a[3],out[1]; -rz(-2*pi) out[1]; -cx a[3],out[1]; -rz(2*pi) out[1]; -rz(pi) b[1]; -cx b[1],out[2]; -rz(-pi) out[2]; -cx b[1],out[2]; -rz(pi) out[2]; -cx b[1],a[3]; -rz(-pi) a[3]; -cx a[3],out[2]; -rz(pi) out[2]; -cx a[3],out[2]; -rz(-pi) out[2]; -cx b[1],a[3]; -rz(pi) a[3]; -cx a[3],out[2]; -rz(-pi) out[2]; -cx a[3],out[2]; -rz(pi) out[2]; -rz(pi/2) b[1]; -cx b[1],out[3]; -rz(-pi/2) out[3]; -cx b[1],out[3]; -rz(pi/2) out[3]; -cx b[1],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[3]; -rz(pi/2) out[3]; -cx a[3],out[3]; -rz(-pi/2) out[3]; -cx b[1],a[3]; -rz(pi/2) a[3]; -cx a[3],out[3]; -rz(-pi/2) out[3]; -cx a[3],out[3]; -rz(pi/2) out[3]; -rz(pi/4) b[1]; -cx b[1],out[4]; -rz(-pi/4) out[4]; -cx b[1],out[4]; -rz(pi/4) out[4]; -cx b[1],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[4]; -rz(pi/4) out[4]; -cx a[3],out[4]; -rz(-pi/4) out[4]; -cx b[1],a[3]; -rz(pi/4) a[3]; -cx a[3],out[4]; -rz(-pi/4) out[4]; -cx a[3],out[4]; -rz(pi/4) out[4]; -rz(pi/8) b[1]; -cx b[1],out[5]; -rz(-pi/8) out[5]; -cx b[1],out[5]; -rz(pi/8) out[5]; -cx b[1],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[5]; -rz(pi/8) out[5]; -cx a[3],out[5]; -rz(-pi/8) out[5]; -cx b[1],a[3]; -rz(pi/8) a[3]; -cx a[3],out[5]; -rz(-pi/8) out[5]; -cx a[3],out[5]; -rz(pi/8) out[5]; -rz(pi/16) b[1]; -cx b[1],out[6]; -rz(-pi/16) out[6]; -cx b[1],out[6]; -rz(pi/16) out[6]; -cx b[1],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[6]; -rz(pi/16) out[6]; -cx a[3],out[6]; -rz(-pi/16) out[6]; -cx b[1],a[3]; -rz(pi/16) a[3]; -cx a[3],out[6]; -rz(-pi/16) out[6]; -cx a[3],out[6]; -rz(pi/16) out[6]; -rz(pi/32) b[1]; -cx b[1],out[7]; -rz(-pi/32) out[7]; -cx b[1],out[7]; -rz(pi/32) out[7]; -cx b[1],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[7]; -rz(pi/32) out[7]; -cx a[3],out[7]; -rz(-pi/32) out[7]; -cx b[1],a[3]; -rz(pi/32) a[3]; -cx a[3],out[7]; -rz(-pi/32) out[7]; -cx a[3],out[7]; -rz(pi/32) out[7]; -rz(pi/64) b[1]; -cx b[1],out[8]; -rz(-pi/64) out[8]; -cx b[1],out[8]; -rz(pi/64) out[8]; -cx b[1],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[8]; -rz(pi/64) out[8]; -cx a[3],out[8]; -rz(-pi/64) out[8]; -cx b[1],a[3]; -rz(pi/64) a[3]; -cx a[3],out[8]; -rz(-pi/64) out[8]; -cx a[3],out[8]; -rz(pi/64) out[8]; -rz(pi/128) b[1]; -cx b[1],out[9]; -rz(-pi/128) out[9]; -cx b[1],out[9]; -rz(pi/128) out[9]; -cx b[1],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[9]; -rz(pi/128) out[9]; -cx a[3],out[9]; -rz(-pi/128) out[9]; -cx b[1],a[3]; -rz(pi/128) a[3]; -cx a[3],out[9]; -rz(-pi/128) out[9]; -cx a[3],out[9]; -rz(pi/128) out[9]; -rz(pi/256) b[1]; -cx b[1],out[10]; -rz(-pi/256) out[10]; -cx b[1],out[10]; -rz(pi/256) out[10]; -cx b[1],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[10]; -rz(pi/256) out[10]; -cx a[3],out[10]; -rz(-pi/256) out[10]; -cx b[1],a[3]; -rz(pi/256) a[3]; -cx a[3],out[10]; -rz(-pi/256) out[10]; -cx a[3],out[10]; -rz(pi/256) out[10]; -rz(pi/512) b[1]; -cx b[1],out[11]; -rz(-pi/512) out[11]; -cx b[1],out[11]; -rz(pi/512) out[11]; -cx b[1],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[11]; -rz(pi/512) out[11]; -cx a[3],out[11]; -rz(-pi/512) out[11]; -cx b[1],a[3]; -rz(pi/512) a[3]; -cx a[3],out[11]; -rz(-pi/512) out[11]; -cx a[3],out[11]; -rz(pi/512) out[11]; -rz(pi/1024) b[1]; -cx b[1],out[12]; -rz(-pi/1024) out[12]; -cx b[1],out[12]; -rz(pi/1024) out[12]; -cx b[1],a[3]; -rz(-pi/1024) a[3]; -cx a[3],out[12]; -rz(pi/1024) out[12]; -cx a[3],out[12]; -rz(-pi/1024) out[12]; -cx b[1],a[3]; -rz(pi/1024) a[3]; -cx a[3],out[12]; -rz(-pi/1024) out[12]; -cx a[3],out[12]; -rz(pi/1024) out[12]; -rz(pi/2048) b[1]; -cx b[1],out[13]; -rz(-pi/2048) out[13]; -cx b[1],out[13]; -rz(pi/2048) out[13]; -cx b[1],a[3]; -rz(-pi/2048) a[3]; -cx a[3],out[13]; -rz(pi/2048) out[13]; -cx a[3],out[13]; -rz(-pi/2048) out[13]; -cx b[1],a[3]; -rz(pi/2048) a[3]; -cx a[3],out[13]; -rz(-pi/2048) out[13]; -cx a[3],out[13]; -rz(pi/2048) out[13]; -rz(pi/4096) b[1]; -cx b[1],out[14]; -rz(-pi/4096) out[14]; -cx b[1],out[14]; -rz(pi/4096) out[14]; -cx b[1],a[3]; -rz(-pi/4096) a[3]; -cx a[3],out[14]; -rz(pi/4096) out[14]; -cx a[3],out[14]; -rz(-pi/4096) out[14]; -cx b[1],a[3]; -rz(pi/4096) a[3]; -cx a[3],out[14]; -rz(-pi/4096) out[14]; -cx a[3],out[14]; -rz(pi/4096) out[14]; -rz(pi/8192) b[1]; -cx b[1],out[15]; -rz(-pi/8192) out[15]; -cx b[1],out[15]; -rz(pi/8192) out[15]; -cx b[1],a[3]; -rz(-pi/8192) a[3]; -cx a[3],out[15]; -rz(pi/8192) out[15]; -cx a[3],out[15]; -rz(-pi/8192) out[15]; -cx b[1],a[3]; -rz(pi/8192) a[3]; -cx a[3],out[15]; -rz(-pi/8192) out[15]; -cx a[3],out[15]; -rz(pi/8192) out[15]; -cx b[0],a[3]; -rz(-2*pi) a[3]; -cx a[3],out[0]; -rz(2*pi) out[0]; -cx a[3],out[0]; -rz(-2*pi) out[0]; -cx b[0],a[3]; -rz(2*pi) a[3]; -cx a[3],out[0]; -rz(-2*pi) out[0]; -cx a[3],out[0]; -rz(2*pi) out[0]; -rz(pi) b[0]; -cx b[0],out[1]; -rz(-pi) out[1]; -cx b[0],out[1]; -rz(pi) out[1]; -cx b[0],a[3]; -rz(-pi) a[3]; -cx a[3],out[1]; -rz(pi) out[1]; -cx a[3],out[1]; -rz(-pi) out[1]; -cx b[0],a[3]; -rz(pi) a[3]; -cx a[3],out[1]; -rz(-pi) out[1]; -cx a[3],out[1]; -rz(pi) out[1]; -rz(pi/2) b[0]; -cx b[0],out[2]; -rz(-pi/2) out[2]; -cx b[0],out[2]; -rz(pi/2) out[2]; -cx b[0],a[3]; -rz(-pi/2) a[3]; -cx a[3],out[2]; -rz(pi/2) out[2]; -cx a[3],out[2]; -rz(-pi/2) out[2]; -cx b[0],a[3]; -rz(pi/2) a[3]; -cx a[3],out[2]; -rz(-pi/2) out[2]; -cx a[3],out[2]; -rz(pi/2) out[2]; -rz(pi/4) b[0]; -cx b[0],out[3]; -rz(-pi/4) out[3]; -cx b[0],out[3]; -rz(pi/4) out[3]; -cx b[0],a[3]; -rz(-pi/4) a[3]; -cx a[3],out[3]; -rz(pi/4) out[3]; -cx a[3],out[3]; -rz(-pi/4) out[3]; -cx b[0],a[3]; -rz(pi/4) a[3]; -cx a[3],out[3]; -rz(-pi/4) out[3]; -cx a[3],out[3]; -rz(pi/4) out[3]; -rz(pi/8) b[0]; -cx b[0],out[4]; -rz(-pi/8) out[4]; -cx b[0],out[4]; -rz(pi/8) out[4]; -cx b[0],a[3]; -rz(-pi/8) a[3]; -cx a[3],out[4]; -rz(pi/8) out[4]; -cx a[3],out[4]; -rz(-pi/8) out[4]; -cx b[0],a[3]; -rz(pi/8) a[3]; -cx a[3],out[4]; -rz(-pi/8) out[4]; -cx a[3],out[4]; -rz(pi/8) out[4]; -rz(pi/16) b[0]; -cx b[0],out[5]; -rz(-pi/16) out[5]; -cx b[0],out[5]; -rz(pi/16) out[5]; -cx b[0],a[3]; -rz(-pi/16) a[3]; -cx a[3],out[5]; -rz(pi/16) out[5]; -cx a[3],out[5]; -rz(-pi/16) out[5]; -cx b[0],a[3]; -rz(pi/16) a[3]; -cx a[3],out[5]; -rz(-pi/16) out[5]; -cx a[3],out[5]; -rz(pi/16) out[5]; -rz(pi/32) b[0]; -cx b[0],out[6]; -rz(-pi/32) out[6]; -cx b[0],out[6]; -rz(pi/32) out[6]; -cx b[0],a[3]; -rz(-pi/32) a[3]; -cx a[3],out[6]; -rz(pi/32) out[6]; -cx a[3],out[6]; -rz(-pi/32) out[6]; -cx b[0],a[3]; -rz(pi/32) a[3]; -cx a[3],out[6]; -rz(-pi/32) out[6]; -cx a[3],out[6]; -rz(pi/32) out[6]; -rz(pi/64) b[0]; -cx b[0],out[7]; -rz(-pi/64) out[7]; -cx b[0],out[7]; -rz(pi/64) out[7]; -cx b[0],a[3]; -rz(-pi/64) a[3]; -cx a[3],out[7]; -rz(pi/64) out[7]; -cx a[3],out[7]; -rz(-pi/64) out[7]; -cx b[0],a[3]; -rz(pi/64) a[3]; -cx a[3],out[7]; -rz(-pi/64) out[7]; -cx a[3],out[7]; -rz(pi/64) out[7]; -rz(pi/128) b[0]; -cx b[0],out[8]; -rz(-pi/128) out[8]; -cx b[0],out[8]; -rz(pi/128) out[8]; -cx b[0],a[3]; -rz(-pi/128) a[3]; -cx a[3],out[8]; -rz(pi/128) out[8]; -cx a[3],out[8]; -rz(-pi/128) out[8]; -cx b[0],a[3]; -rz(pi/128) a[3]; -cx a[3],out[8]; -rz(-pi/128) out[8]; -cx a[3],out[8]; -rz(pi/128) out[8]; -rz(pi/256) b[0]; -cx b[0],out[9]; -rz(-pi/256) out[9]; -cx b[0],out[9]; -rz(pi/256) out[9]; -cx b[0],a[3]; -rz(-pi/256) a[3]; -cx a[3],out[9]; -rz(pi/256) out[9]; -cx a[3],out[9]; -rz(-pi/256) out[9]; -cx b[0],a[3]; -rz(pi/256) a[3]; -cx a[3],out[9]; -rz(-pi/256) out[9]; -cx a[3],out[9]; -rz(pi/256) out[9]; -rz(pi/512) b[0]; -cx b[0],out[10]; -rz(-pi/512) out[10]; -cx b[0],out[10]; -rz(pi/512) out[10]; -cx b[0],a[3]; -rz(-pi/512) a[3]; -cx a[3],out[10]; -rz(pi/512) out[10]; -cx a[3],out[10]; -rz(-pi/512) out[10]; -cx b[0],a[3]; -rz(pi/512) a[3]; -cx a[3],out[10]; -rz(-pi/512) out[10]; -cx a[3],out[10]; -rz(pi/512) out[10]; -rz(pi/1024) b[0]; -cx b[0],out[11]; -rz(-pi/1024) out[11]; -cx b[0],out[11]; -rz(pi/1024) out[11]; -cx b[0],a[3]; -rz(-pi/1024) a[3]; -cx a[3],out[11]; -rz(pi/1024) out[11]; -cx a[3],out[11]; -rz(-pi/1024) out[11]; -cx b[0],a[3]; -rz(pi/1024) a[3]; -cx a[3],out[11]; -rz(-pi/1024) out[11]; -cx a[3],out[11]; -rz(pi/1024) out[11]; -rz(pi/2048) b[0]; -cx b[0],out[12]; -rz(-pi/2048) out[12]; -cx b[0],out[12]; -rz(pi/2048) out[12]; -cx b[0],a[3]; -rz(-pi/2048) a[3]; -cx a[3],out[12]; -rz(pi/2048) out[12]; -cx a[3],out[12]; -rz(-pi/2048) out[12]; -cx b[0],a[3]; -rz(pi/2048) a[3]; -cx a[3],out[12]; -rz(-pi/2048) out[12]; -cx a[3],out[12]; -rz(pi/2048) out[12]; -rz(pi/4096) b[0]; -cx b[0],out[13]; -rz(-pi/4096) out[13]; -cx b[0],out[13]; -rz(pi/4096) out[13]; -cx b[0],a[3]; -rz(-pi/4096) a[3]; -cx a[3],out[13]; -rz(pi/4096) out[13]; -cx a[3],out[13]; -rz(-pi/4096) out[13]; -cx b[0],a[3]; -rz(pi/4096) a[3]; -cx a[3],out[13]; -rz(-pi/4096) out[13]; -cx a[3],out[13]; -rz(pi/4096) out[13]; -rz(pi/8192) b[0]; -cx b[0],out[14]; -rz(-pi/8192) out[14]; -cx b[0],out[14]; -rz(pi/8192) out[14]; -cx b[0],a[3]; -rz(-pi/8192) a[3]; -cx a[3],out[14]; -rz(pi/8192) out[14]; -cx a[3],out[14]; -rz(-pi/8192) out[14]; -cx b[0],a[3]; -rz(pi/8192) a[3]; -cx a[3],out[14]; -rz(-pi/8192) out[14]; -cx a[3],out[14]; -rz(pi/8192) out[14]; -rz(pi/16384) b[0]; -cx b[0],out[15]; -rz(-pi/16384) out[15]; -cx b[0],out[15]; -rz(pi/16384) out[15]; -cx b[0],a[3]; -rz(-pi/16384) a[3]; -cx a[3],out[15]; -rz(pi/16384) out[15]; -cx a[3],out[15]; -rz(-pi/16384) out[15]; -cx b[0],a[3]; -rz(pi/16384) a[3]; -cx a[3],out[15]; -rz(-pi/16384) out[15]; -cx a[3],out[15]; -rz(pi/16384) out[15]; -rz(pi) b[0]; -rz(2*pi) b[1]; -rz(4*pi) b[2]; -rz(8*pi) b[3]; -rz(16*pi) b[4]; -rz(32*pi) b[5]; -rz(64*pi) b[6]; -rz(128*pi) b[7]; -cx b[7],out[0]; -rz(-128*pi) out[0]; -cx b[7],out[0]; -rz(128*pi) out[0]; -cx b[7],a[2]; -rz(-128*pi) a[2]; -cx a[2],out[0]; -rz(128*pi) out[0]; -cx a[2],out[0]; -rz(-128*pi) out[0]; -cx b[7],a[2]; -rz(128*pi) a[2]; -cx a[2],out[0]; -rz(-128*pi) out[0]; -cx a[2],out[0]; -rz(128*pi) out[0]; -cx b[6],out[0]; -rz(-64*pi) out[0]; -cx b[6],out[0]; -rz(64*pi) out[0]; -rz(64*pi) b[7]; -cx b[7],out[1]; -rz(-64*pi) out[1]; -cx b[7],out[1]; -rz(64*pi) out[1]; -cx b[7],a[2]; -rz(-64*pi) a[2]; -cx a[2],out[1]; -rz(64*pi) out[1]; -cx a[2],out[1]; -rz(-64*pi) out[1]; -cx b[7],a[2]; -rz(64*pi) a[2]; -cx a[2],out[1]; -rz(-64*pi) out[1]; -cx a[2],out[1]; -rz(64*pi) out[1]; -rz(32*pi) b[7]; -cx b[7],out[2]; -rz(-32*pi) out[2]; -cx b[7],out[2]; -rz(32*pi) out[2]; -cx b[7],a[2]; -rz(-32*pi) a[2]; -cx a[2],out[2]; -rz(32*pi) out[2]; -cx a[2],out[2]; -rz(-32*pi) out[2]; -cx b[7],a[2]; -rz(32*pi) a[2]; -cx a[2],out[2]; -rz(-32*pi) out[2]; -cx a[2],out[2]; -rz(32*pi) out[2]; -rz(16*pi) b[7]; -cx b[7],out[3]; -rz(-16*pi) out[3]; -cx b[7],out[3]; -rz(16*pi) out[3]; -cx b[7],a[2]; -rz(-16*pi) a[2]; -cx a[2],out[3]; -rz(16*pi) out[3]; -cx a[2],out[3]; -rz(-16*pi) out[3]; -cx b[7],a[2]; -rz(16*pi) a[2]; -cx a[2],out[3]; -rz(-16*pi) out[3]; -cx a[2],out[3]; -rz(16*pi) out[3]; -rz(8*pi) b[7]; -cx b[7],out[4]; -rz(-8*pi) out[4]; -cx b[7],out[4]; -rz(8*pi) out[4]; -cx b[7],a[2]; -rz(-8*pi) a[2]; -cx a[2],out[4]; -rz(8*pi) out[4]; -cx a[2],out[4]; -rz(-8*pi) out[4]; -cx b[7],a[2]; -rz(8*pi) a[2]; -cx a[2],out[4]; -rz(-8*pi) out[4]; -cx a[2],out[4]; -rz(8*pi) out[4]; -rz(4*pi) b[7]; -cx b[7],out[5]; -rz(-4*pi) out[5]; -cx b[7],out[5]; -rz(4*pi) out[5]; -cx b[7],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[5]; -rz(4*pi) out[5]; -cx a[2],out[5]; -rz(-4*pi) out[5]; -cx b[7],a[2]; -rz(4*pi) a[2]; -cx a[2],out[5]; -rz(-4*pi) out[5]; -cx a[2],out[5]; -rz(4*pi) out[5]; -rz(2*pi) b[7]; -cx b[7],out[6]; -rz(-2*pi) out[6]; -cx b[7],out[6]; -rz(2*pi) out[6]; -cx b[7],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[6]; -rz(2*pi) out[6]; -cx a[2],out[6]; -rz(-2*pi) out[6]; -cx b[7],a[2]; -rz(2*pi) a[2]; -cx a[2],out[6]; -rz(-2*pi) out[6]; -cx a[2],out[6]; -rz(2*pi) out[6]; -rz(pi) b[7]; -cx b[7],out[7]; -rz(-pi) out[7]; -cx b[7],out[7]; -rz(pi) out[7]; -cx b[7],a[2]; -rz(-pi) a[2]; -cx a[2],out[7]; -rz(pi) out[7]; -cx a[2],out[7]; -rz(-pi) out[7]; -cx b[7],a[2]; -rz(pi) a[2]; -cx a[2],out[7]; -rz(-pi) out[7]; -cx a[2],out[7]; -rz(pi) out[7]; -rz(pi/2) b[7]; -cx b[7],out[8]; -rz(-pi/2) out[8]; -cx b[7],out[8]; -rz(pi/2) out[8]; -cx b[7],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[8]; -rz(pi/2) out[8]; -cx a[2],out[8]; -rz(-pi/2) out[8]; -cx b[7],a[2]; -rz(pi/2) a[2]; -cx a[2],out[8]; -rz(-pi/2) out[8]; -cx a[2],out[8]; -rz(pi/2) out[8]; -rz(pi/4) b[7]; -cx b[7],out[9]; -rz(-pi/4) out[9]; -cx b[7],out[9]; -rz(pi/4) out[9]; -cx b[7],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[9]; -rz(pi/4) out[9]; -cx a[2],out[9]; -rz(-pi/4) out[9]; -cx b[7],a[2]; -rz(pi/4) a[2]; -cx a[2],out[9]; -rz(-pi/4) out[9]; -cx a[2],out[9]; -rz(pi/4) out[9]; -rz(pi/8) b[7]; -cx b[7],out[10]; -rz(-pi/8) out[10]; -cx b[7],out[10]; -rz(pi/8) out[10]; -cx b[7],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[10]; -rz(pi/8) out[10]; -cx a[2],out[10]; -rz(-pi/8) out[10]; -cx b[7],a[2]; -rz(pi/8) a[2]; -cx a[2],out[10]; -rz(-pi/8) out[10]; -cx a[2],out[10]; -rz(pi/8) out[10]; -rz(pi/16) b[7]; -cx b[7],out[11]; -rz(-pi/16) out[11]; -cx b[7],out[11]; -rz(pi/16) out[11]; -cx b[7],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[11]; -rz(pi/16) out[11]; -cx a[2],out[11]; -rz(-pi/16) out[11]; -cx b[7],a[2]; -rz(pi/16) a[2]; -cx a[2],out[11]; -rz(-pi/16) out[11]; -cx a[2],out[11]; -rz(pi/16) out[11]; -rz(pi/32) b[7]; -cx b[7],out[12]; -rz(-pi/32) out[12]; -cx b[7],out[12]; -rz(pi/32) out[12]; -cx b[7],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[12]; -rz(pi/32) out[12]; -cx a[2],out[12]; -rz(-pi/32) out[12]; -cx b[7],a[2]; -rz(pi/32) a[2]; -cx a[2],out[12]; -rz(-pi/32) out[12]; -cx a[2],out[12]; -rz(pi/32) out[12]; -rz(pi/64) b[7]; -cx b[7],out[13]; -rz(-pi/64) out[13]; -cx b[7],out[13]; -rz(pi/64) out[13]; -cx b[7],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[13]; -rz(pi/64) out[13]; -cx a[2],out[13]; -rz(-pi/64) out[13]; -cx b[7],a[2]; -rz(pi/64) a[2]; -cx a[2],out[13]; -rz(-pi/64) out[13]; -cx a[2],out[13]; -rz(pi/64) out[13]; -rz(pi/128) b[7]; -cx b[7],out[14]; -rz(-pi/128) out[14]; -cx b[7],out[14]; -rz(pi/128) out[14]; -cx b[7],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[14]; -rz(pi/128) out[14]; -cx a[2],out[14]; -rz(-pi/128) out[14]; -cx b[7],a[2]; -rz(pi/128) a[2]; -cx a[2],out[14]; -rz(-pi/128) out[14]; -cx a[2],out[14]; -rz(pi/128) out[14]; -rz(pi/256) b[7]; -cx b[7],out[15]; -rz(-pi/256) out[15]; -cx b[7],out[15]; -rz(pi/256) out[15]; -cx b[7],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[15]; -rz(pi/256) out[15]; -cx a[2],out[15]; -rz(-pi/256) out[15]; -cx b[7],a[2]; -rz(pi/256) a[2]; -cx a[2],out[15]; -rz(-pi/256) out[15]; -cx a[2],out[15]; -rz(pi/256) out[15]; -cx b[6],a[2]; -rz(-64*pi) a[2]; -cx a[2],out[0]; -rz(64*pi) out[0]; -cx a[2],out[0]; -rz(-64*pi) out[0]; -cx b[6],a[2]; -rz(64*pi) a[2]; -cx a[2],out[0]; -rz(-64*pi) out[0]; -cx a[2],out[0]; -rz(64*pi) out[0]; -cx b[5],out[0]; -rz(-32*pi) out[0]; -cx b[5],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[6]; -cx b[6],out[1]; -rz(-32*pi) out[1]; -cx b[6],out[1]; -rz(32*pi) out[1]; -cx b[6],a[2]; -rz(-32*pi) a[2]; -cx a[2],out[1]; -rz(32*pi) out[1]; -cx a[2],out[1]; -rz(-32*pi) out[1]; -cx b[6],a[2]; -rz(32*pi) a[2]; -cx a[2],out[1]; -rz(-32*pi) out[1]; -cx a[2],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[6]; -cx b[6],out[2]; -rz(-16*pi) out[2]; -cx b[6],out[2]; -rz(16*pi) out[2]; -cx b[6],a[2]; -rz(-16*pi) a[2]; -cx a[2],out[2]; -rz(16*pi) out[2]; -cx a[2],out[2]; -rz(-16*pi) out[2]; -cx b[6],a[2]; -rz(16*pi) a[2]; -cx a[2],out[2]; -rz(-16*pi) out[2]; -cx a[2],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[6]; -cx b[6],out[3]; -rz(-8*pi) out[3]; -cx b[6],out[3]; -rz(8*pi) out[3]; -cx b[6],a[2]; -rz(-8*pi) a[2]; -cx a[2],out[3]; -rz(8*pi) out[3]; -cx a[2],out[3]; -rz(-8*pi) out[3]; -cx b[6],a[2]; -rz(8*pi) a[2]; -cx a[2],out[3]; -rz(-8*pi) out[3]; -cx a[2],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[6]; -cx b[6],out[4]; -rz(-4*pi) out[4]; -cx b[6],out[4]; -rz(4*pi) out[4]; -cx b[6],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[4]; -rz(4*pi) out[4]; -cx a[2],out[4]; -rz(-4*pi) out[4]; -cx b[6],a[2]; -rz(4*pi) a[2]; -cx a[2],out[4]; -rz(-4*pi) out[4]; -cx a[2],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[6]; -cx b[6],out[5]; -rz(-2*pi) out[5]; -cx b[6],out[5]; -rz(2*pi) out[5]; -cx b[6],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[5]; -rz(2*pi) out[5]; -cx a[2],out[5]; -rz(-2*pi) out[5]; -cx b[6],a[2]; -rz(2*pi) a[2]; -cx a[2],out[5]; -rz(-2*pi) out[5]; -cx a[2],out[5]; -rz(2*pi) out[5]; -rz(pi) b[6]; -cx b[6],out[6]; -rz(-pi) out[6]; -cx b[6],out[6]; -rz(pi) out[6]; -cx b[6],a[2]; -rz(-pi) a[2]; -cx a[2],out[6]; -rz(pi) out[6]; -cx a[2],out[6]; -rz(-pi) out[6]; -cx b[6],a[2]; -rz(pi) a[2]; -cx a[2],out[6]; -rz(-pi) out[6]; -cx a[2],out[6]; -rz(pi) out[6]; -rz(pi/2) b[6]; -cx b[6],out[7]; -rz(-pi/2) out[7]; -cx b[6],out[7]; -rz(pi/2) out[7]; -cx b[6],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[7]; -rz(pi/2) out[7]; -cx a[2],out[7]; -rz(-pi/2) out[7]; -cx b[6],a[2]; -rz(pi/2) a[2]; -cx a[2],out[7]; -rz(-pi/2) out[7]; -cx a[2],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[6]; -cx b[6],out[8]; -rz(-pi/4) out[8]; -cx b[6],out[8]; -rz(pi/4) out[8]; -cx b[6],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[8]; -rz(pi/4) out[8]; -cx a[2],out[8]; -rz(-pi/4) out[8]; -cx b[6],a[2]; -rz(pi/4) a[2]; -cx a[2],out[8]; -rz(-pi/4) out[8]; -cx a[2],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[6]; -cx b[6],out[9]; -rz(-pi/8) out[9]; -cx b[6],out[9]; -rz(pi/8) out[9]; -cx b[6],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[9]; -rz(pi/8) out[9]; -cx a[2],out[9]; -rz(-pi/8) out[9]; -cx b[6],a[2]; -rz(pi/8) a[2]; -cx a[2],out[9]; -rz(-pi/8) out[9]; -cx a[2],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[6]; -cx b[6],out[10]; -rz(-pi/16) out[10]; -cx b[6],out[10]; -rz(pi/16) out[10]; -cx b[6],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[10]; -rz(pi/16) out[10]; -cx a[2],out[10]; -rz(-pi/16) out[10]; -cx b[6],a[2]; -rz(pi/16) a[2]; -cx a[2],out[10]; -rz(-pi/16) out[10]; -cx a[2],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[6]; -cx b[6],out[11]; -rz(-pi/32) out[11]; -cx b[6],out[11]; -rz(pi/32) out[11]; -cx b[6],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[11]; -rz(pi/32) out[11]; -cx a[2],out[11]; -rz(-pi/32) out[11]; -cx b[6],a[2]; -rz(pi/32) a[2]; -cx a[2],out[11]; -rz(-pi/32) out[11]; -cx a[2],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[6]; -cx b[6],out[12]; -rz(-pi/64) out[12]; -cx b[6],out[12]; -rz(pi/64) out[12]; -cx b[6],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[12]; -rz(pi/64) out[12]; -cx a[2],out[12]; -rz(-pi/64) out[12]; -cx b[6],a[2]; -rz(pi/64) a[2]; -cx a[2],out[12]; -rz(-pi/64) out[12]; -cx a[2],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[6]; -cx b[6],out[13]; -rz(-pi/128) out[13]; -cx b[6],out[13]; -rz(pi/128) out[13]; -cx b[6],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[13]; -rz(pi/128) out[13]; -cx a[2],out[13]; -rz(-pi/128) out[13]; -cx b[6],a[2]; -rz(pi/128) a[2]; -cx a[2],out[13]; -rz(-pi/128) out[13]; -cx a[2],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[6]; -cx b[6],out[14]; -rz(-pi/256) out[14]; -cx b[6],out[14]; -rz(pi/256) out[14]; -cx b[6],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[14]; -rz(pi/256) out[14]; -cx a[2],out[14]; -rz(-pi/256) out[14]; -cx b[6],a[2]; -rz(pi/256) a[2]; -cx a[2],out[14]; -rz(-pi/256) out[14]; -cx a[2],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[6]; -cx b[6],out[15]; -rz(-pi/512) out[15]; -cx b[6],out[15]; -rz(pi/512) out[15]; -cx b[6],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[15]; -rz(pi/512) out[15]; -cx a[2],out[15]; -rz(-pi/512) out[15]; -cx b[6],a[2]; -rz(pi/512) a[2]; -cx a[2],out[15]; -rz(-pi/512) out[15]; -cx a[2],out[15]; -rz(pi/512) out[15]; -cx b[5],a[2]; -rz(-32*pi) a[2]; -cx a[2],out[0]; -rz(32*pi) out[0]; -cx a[2],out[0]; -rz(-32*pi) out[0]; -cx b[5],a[2]; -rz(32*pi) a[2]; -cx a[2],out[0]; -rz(-32*pi) out[0]; -cx a[2],out[0]; -rz(32*pi) out[0]; -cx b[4],out[0]; -rz(-16*pi) out[0]; -cx b[4],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[5]; -cx b[5],out[1]; -rz(-16*pi) out[1]; -cx b[5],out[1]; -rz(16*pi) out[1]; -cx b[5],a[2]; -rz(-16*pi) a[2]; -cx a[2],out[1]; -rz(16*pi) out[1]; -cx a[2],out[1]; -rz(-16*pi) out[1]; -cx b[5],a[2]; -rz(16*pi) a[2]; -cx a[2],out[1]; -rz(-16*pi) out[1]; -cx a[2],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[5]; -cx b[5],out[2]; -rz(-8*pi) out[2]; -cx b[5],out[2]; -rz(8*pi) out[2]; -cx b[5],a[2]; -rz(-8*pi) a[2]; -cx a[2],out[2]; -rz(8*pi) out[2]; -cx a[2],out[2]; -rz(-8*pi) out[2]; -cx b[5],a[2]; -rz(8*pi) a[2]; -cx a[2],out[2]; -rz(-8*pi) out[2]; -cx a[2],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[5]; -cx b[5],out[3]; -rz(-4*pi) out[3]; -cx b[5],out[3]; -rz(4*pi) out[3]; -cx b[5],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[3]; -rz(4*pi) out[3]; -cx a[2],out[3]; -rz(-4*pi) out[3]; -cx b[5],a[2]; -rz(4*pi) a[2]; -cx a[2],out[3]; -rz(-4*pi) out[3]; -cx a[2],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[5]; -cx b[5],out[4]; -rz(-2*pi) out[4]; -cx b[5],out[4]; -rz(2*pi) out[4]; -cx b[5],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[4]; -rz(2*pi) out[4]; -cx a[2],out[4]; -rz(-2*pi) out[4]; -cx b[5],a[2]; -rz(2*pi) a[2]; -cx a[2],out[4]; -rz(-2*pi) out[4]; -cx a[2],out[4]; -rz(2*pi) out[4]; -rz(pi) b[5]; -cx b[5],out[5]; -rz(-pi) out[5]; -cx b[5],out[5]; -rz(pi) out[5]; -cx b[5],a[2]; -rz(-pi) a[2]; -cx a[2],out[5]; -rz(pi) out[5]; -cx a[2],out[5]; -rz(-pi) out[5]; -cx b[5],a[2]; -rz(pi) a[2]; -cx a[2],out[5]; -rz(-pi) out[5]; -cx a[2],out[5]; -rz(pi) out[5]; -rz(pi/2) b[5]; -cx b[5],out[6]; -rz(-pi/2) out[6]; -cx b[5],out[6]; -rz(pi/2) out[6]; -cx b[5],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[6]; -rz(pi/2) out[6]; -cx a[2],out[6]; -rz(-pi/2) out[6]; -cx b[5],a[2]; -rz(pi/2) a[2]; -cx a[2],out[6]; -rz(-pi/2) out[6]; -cx a[2],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[5]; -cx b[5],out[7]; -rz(-pi/4) out[7]; -cx b[5],out[7]; -rz(pi/4) out[7]; -cx b[5],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[7]; -rz(pi/4) out[7]; -cx a[2],out[7]; -rz(-pi/4) out[7]; -cx b[5],a[2]; -rz(pi/4) a[2]; -cx a[2],out[7]; -rz(-pi/4) out[7]; -cx a[2],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[5]; -cx b[5],out[8]; -rz(-pi/8) out[8]; -cx b[5],out[8]; -rz(pi/8) out[8]; -cx b[5],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[8]; -rz(pi/8) out[8]; -cx a[2],out[8]; -rz(-pi/8) out[8]; -cx b[5],a[2]; -rz(pi/8) a[2]; -cx a[2],out[8]; -rz(-pi/8) out[8]; -cx a[2],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[5]; -cx b[5],out[9]; -rz(-pi/16) out[9]; -cx b[5],out[9]; -rz(pi/16) out[9]; -cx b[5],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[9]; -rz(pi/16) out[9]; -cx a[2],out[9]; -rz(-pi/16) out[9]; -cx b[5],a[2]; -rz(pi/16) a[2]; -cx a[2],out[9]; -rz(-pi/16) out[9]; -cx a[2],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[5]; -cx b[5],out[10]; -rz(-pi/32) out[10]; -cx b[5],out[10]; -rz(pi/32) out[10]; -cx b[5],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[10]; -rz(pi/32) out[10]; -cx a[2],out[10]; -rz(-pi/32) out[10]; -cx b[5],a[2]; -rz(pi/32) a[2]; -cx a[2],out[10]; -rz(-pi/32) out[10]; -cx a[2],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[5]; -cx b[5],out[11]; -rz(-pi/64) out[11]; -cx b[5],out[11]; -rz(pi/64) out[11]; -cx b[5],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[11]; -rz(pi/64) out[11]; -cx a[2],out[11]; -rz(-pi/64) out[11]; -cx b[5],a[2]; -rz(pi/64) a[2]; -cx a[2],out[11]; -rz(-pi/64) out[11]; -cx a[2],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[5]; -cx b[5],out[12]; -rz(-pi/128) out[12]; -cx b[5],out[12]; -rz(pi/128) out[12]; -cx b[5],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[12]; -rz(pi/128) out[12]; -cx a[2],out[12]; -rz(-pi/128) out[12]; -cx b[5],a[2]; -rz(pi/128) a[2]; -cx a[2],out[12]; -rz(-pi/128) out[12]; -cx a[2],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[5]; -cx b[5],out[13]; -rz(-pi/256) out[13]; -cx b[5],out[13]; -rz(pi/256) out[13]; -cx b[5],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[13]; -rz(pi/256) out[13]; -cx a[2],out[13]; -rz(-pi/256) out[13]; -cx b[5],a[2]; -rz(pi/256) a[2]; -cx a[2],out[13]; -rz(-pi/256) out[13]; -cx a[2],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[5]; -cx b[5],out[14]; -rz(-pi/512) out[14]; -cx b[5],out[14]; -rz(pi/512) out[14]; -cx b[5],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[14]; -rz(pi/512) out[14]; -cx a[2],out[14]; -rz(-pi/512) out[14]; -cx b[5],a[2]; -rz(pi/512) a[2]; -cx a[2],out[14]; -rz(-pi/512) out[14]; -cx a[2],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[5]; -cx b[5],out[15]; -rz(-pi/1024) out[15]; -cx b[5],out[15]; -rz(pi/1024) out[15]; -cx b[5],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[15]; -rz(pi/1024) out[15]; -cx a[2],out[15]; -rz(-pi/1024) out[15]; -cx b[5],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[15]; -rz(-pi/1024) out[15]; -cx a[2],out[15]; -rz(pi/1024) out[15]; -cx b[4],a[2]; -rz(-16*pi) a[2]; -cx a[2],out[0]; -rz(16*pi) out[0]; -cx a[2],out[0]; -rz(-16*pi) out[0]; -cx b[4],a[2]; -rz(16*pi) a[2]; -cx a[2],out[0]; -rz(-16*pi) out[0]; -cx a[2],out[0]; -rz(16*pi) out[0]; -cx b[3],out[0]; -rz(-8*pi) out[0]; -cx b[3],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[4]; -cx b[4],out[1]; -rz(-8*pi) out[1]; -cx b[4],out[1]; -rz(8*pi) out[1]; -cx b[4],a[2]; -rz(-8*pi) a[2]; -cx a[2],out[1]; -rz(8*pi) out[1]; -cx a[2],out[1]; -rz(-8*pi) out[1]; -cx b[4],a[2]; -rz(8*pi) a[2]; -cx a[2],out[1]; -rz(-8*pi) out[1]; -cx a[2],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[4]; -cx b[4],out[2]; -rz(-4*pi) out[2]; -cx b[4],out[2]; -rz(4*pi) out[2]; -cx b[4],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[2]; -rz(4*pi) out[2]; -cx a[2],out[2]; -rz(-4*pi) out[2]; -cx b[4],a[2]; -rz(4*pi) a[2]; -cx a[2],out[2]; -rz(-4*pi) out[2]; -cx a[2],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[4]; -cx b[4],out[3]; -rz(-2*pi) out[3]; -cx b[4],out[3]; -rz(2*pi) out[3]; -cx b[4],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[3]; -rz(2*pi) out[3]; -cx a[2],out[3]; -rz(-2*pi) out[3]; -cx b[4],a[2]; -rz(2*pi) a[2]; -cx a[2],out[3]; -rz(-2*pi) out[3]; -cx a[2],out[3]; -rz(2*pi) out[3]; -rz(pi) b[4]; -cx b[4],out[4]; -rz(-pi) out[4]; -cx b[4],out[4]; -rz(pi) out[4]; -cx b[4],a[2]; -rz(-pi) a[2]; -cx a[2],out[4]; -rz(pi) out[4]; -cx a[2],out[4]; -rz(-pi) out[4]; -cx b[4],a[2]; -rz(pi) a[2]; -cx a[2],out[4]; -rz(-pi) out[4]; -cx a[2],out[4]; -rz(pi) out[4]; -rz(pi/2) b[4]; -cx b[4],out[5]; -rz(-pi/2) out[5]; -cx b[4],out[5]; -rz(pi/2) out[5]; -cx b[4],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[5]; -rz(pi/2) out[5]; -cx a[2],out[5]; -rz(-pi/2) out[5]; -cx b[4],a[2]; -rz(pi/2) a[2]; -cx a[2],out[5]; -rz(-pi/2) out[5]; -cx a[2],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[4]; -cx b[4],out[6]; -rz(-pi/4) out[6]; -cx b[4],out[6]; -rz(pi/4) out[6]; -cx b[4],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[6]; -rz(pi/4) out[6]; -cx a[2],out[6]; -rz(-pi/4) out[6]; -cx b[4],a[2]; -rz(pi/4) a[2]; -cx a[2],out[6]; -rz(-pi/4) out[6]; -cx a[2],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[4]; -cx b[4],out[7]; -rz(-pi/8) out[7]; -cx b[4],out[7]; -rz(pi/8) out[7]; -cx b[4],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[7]; -rz(pi/8) out[7]; -cx a[2],out[7]; -rz(-pi/8) out[7]; -cx b[4],a[2]; -rz(pi/8) a[2]; -cx a[2],out[7]; -rz(-pi/8) out[7]; -cx a[2],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[4]; -cx b[4],out[8]; -rz(-pi/16) out[8]; -cx b[4],out[8]; -rz(pi/16) out[8]; -cx b[4],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[8]; -rz(pi/16) out[8]; -cx a[2],out[8]; -rz(-pi/16) out[8]; -cx b[4],a[2]; -rz(pi/16) a[2]; -cx a[2],out[8]; -rz(-pi/16) out[8]; -cx a[2],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[4]; -cx b[4],out[9]; -rz(-pi/32) out[9]; -cx b[4],out[9]; -rz(pi/32) out[9]; -cx b[4],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[9]; -rz(pi/32) out[9]; -cx a[2],out[9]; -rz(-pi/32) out[9]; -cx b[4],a[2]; -rz(pi/32) a[2]; -cx a[2],out[9]; -rz(-pi/32) out[9]; -cx a[2],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[4]; -cx b[4],out[10]; -rz(-pi/64) out[10]; -cx b[4],out[10]; -rz(pi/64) out[10]; -cx b[4],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[10]; -rz(pi/64) out[10]; -cx a[2],out[10]; -rz(-pi/64) out[10]; -cx b[4],a[2]; -rz(pi/64) a[2]; -cx a[2],out[10]; -rz(-pi/64) out[10]; -cx a[2],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[4]; -cx b[4],out[11]; -rz(-pi/128) out[11]; -cx b[4],out[11]; -rz(pi/128) out[11]; -cx b[4],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[11]; -rz(pi/128) out[11]; -cx a[2],out[11]; -rz(-pi/128) out[11]; -cx b[4],a[2]; -rz(pi/128) a[2]; -cx a[2],out[11]; -rz(-pi/128) out[11]; -cx a[2],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[4]; -cx b[4],out[12]; -rz(-pi/256) out[12]; -cx b[4],out[12]; -rz(pi/256) out[12]; -cx b[4],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[12]; -rz(pi/256) out[12]; -cx a[2],out[12]; -rz(-pi/256) out[12]; -cx b[4],a[2]; -rz(pi/256) a[2]; -cx a[2],out[12]; -rz(-pi/256) out[12]; -cx a[2],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[4]; -cx b[4],out[13]; -rz(-pi/512) out[13]; -cx b[4],out[13]; -rz(pi/512) out[13]; -cx b[4],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[13]; -rz(pi/512) out[13]; -cx a[2],out[13]; -rz(-pi/512) out[13]; -cx b[4],a[2]; -rz(pi/512) a[2]; -cx a[2],out[13]; -rz(-pi/512) out[13]; -cx a[2],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[4]; -cx b[4],out[14]; -rz(-pi/1024) out[14]; -cx b[4],out[14]; -rz(pi/1024) out[14]; -cx b[4],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[14]; -rz(pi/1024) out[14]; -cx a[2],out[14]; -rz(-pi/1024) out[14]; -cx b[4],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[14]; -rz(-pi/1024) out[14]; -cx a[2],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[4]; -cx b[4],out[15]; -rz(-pi/2048) out[15]; -cx b[4],out[15]; -rz(pi/2048) out[15]; -cx b[4],a[2]; -rz(-pi/2048) a[2]; -cx a[2],out[15]; -rz(pi/2048) out[15]; -cx a[2],out[15]; -rz(-pi/2048) out[15]; -cx b[4],a[2]; -rz(pi/2048) a[2]; -cx a[2],out[15]; -rz(-pi/2048) out[15]; -cx a[2],out[15]; -rz(pi/2048) out[15]; -cx b[3],a[2]; -rz(-8*pi) a[2]; -cx a[2],out[0]; -rz(8*pi) out[0]; -cx a[2],out[0]; -rz(-8*pi) out[0]; -cx b[3],a[2]; -rz(8*pi) a[2]; -cx a[2],out[0]; -rz(-8*pi) out[0]; -cx a[2],out[0]; -rz(8*pi) out[0]; -cx b[2],out[0]; -rz(-4*pi) out[0]; -cx b[2],out[0]; -rz(4*pi) out[0]; -rz(4*pi) b[3]; -cx b[3],out[1]; -rz(-4*pi) out[1]; -cx b[3],out[1]; -rz(4*pi) out[1]; -cx b[3],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[1]; -rz(4*pi) out[1]; -cx a[2],out[1]; -rz(-4*pi) out[1]; -cx b[3],a[2]; -rz(4*pi) a[2]; -cx a[2],out[1]; -rz(-4*pi) out[1]; -cx a[2],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[3]; -cx b[3],out[2]; -rz(-2*pi) out[2]; -cx b[3],out[2]; -rz(2*pi) out[2]; -cx b[3],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[2]; -rz(2*pi) out[2]; -cx a[2],out[2]; -rz(-2*pi) out[2]; -cx b[3],a[2]; -rz(2*pi) a[2]; -cx a[2],out[2]; -rz(-2*pi) out[2]; -cx a[2],out[2]; -rz(2*pi) out[2]; -rz(pi) b[3]; -cx b[3],out[3]; -rz(-pi) out[3]; -cx b[3],out[3]; -rz(pi) out[3]; -cx b[3],a[2]; -rz(-pi) a[2]; -cx a[2],out[3]; -rz(pi) out[3]; -cx a[2],out[3]; -rz(-pi) out[3]; -cx b[3],a[2]; -rz(pi) a[2]; -cx a[2],out[3]; -rz(-pi) out[3]; -cx a[2],out[3]; -rz(pi) out[3]; -rz(pi/2) b[3]; -cx b[3],out[4]; -rz(-pi/2) out[4]; -cx b[3],out[4]; -rz(pi/2) out[4]; -cx b[3],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[4]; -rz(pi/2) out[4]; -cx a[2],out[4]; -rz(-pi/2) out[4]; -cx b[3],a[2]; -rz(pi/2) a[2]; -cx a[2],out[4]; -rz(-pi/2) out[4]; -cx a[2],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[3]; -cx b[3],out[5]; -rz(-pi/4) out[5]; -cx b[3],out[5]; -rz(pi/4) out[5]; -cx b[3],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[5]; -rz(pi/4) out[5]; -cx a[2],out[5]; -rz(-pi/4) out[5]; -cx b[3],a[2]; -rz(pi/4) a[2]; -cx a[2],out[5]; -rz(-pi/4) out[5]; -cx a[2],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[3]; -cx b[3],out[6]; -rz(-pi/8) out[6]; -cx b[3],out[6]; -rz(pi/8) out[6]; -cx b[3],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[6]; -rz(pi/8) out[6]; -cx a[2],out[6]; -rz(-pi/8) out[6]; -cx b[3],a[2]; -rz(pi/8) a[2]; -cx a[2],out[6]; -rz(-pi/8) out[6]; -cx a[2],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[3]; -cx b[3],out[7]; -rz(-pi/16) out[7]; -cx b[3],out[7]; -rz(pi/16) out[7]; -cx b[3],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[7]; -rz(pi/16) out[7]; -cx a[2],out[7]; -rz(-pi/16) out[7]; -cx b[3],a[2]; -rz(pi/16) a[2]; -cx a[2],out[7]; -rz(-pi/16) out[7]; -cx a[2],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[3]; -cx b[3],out[8]; -rz(-pi/32) out[8]; -cx b[3],out[8]; -rz(pi/32) out[8]; -cx b[3],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[8]; -rz(pi/32) out[8]; -cx a[2],out[8]; -rz(-pi/32) out[8]; -cx b[3],a[2]; -rz(pi/32) a[2]; -cx a[2],out[8]; -rz(-pi/32) out[8]; -cx a[2],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[3]; -cx b[3],out[9]; -rz(-pi/64) out[9]; -cx b[3],out[9]; -rz(pi/64) out[9]; -cx b[3],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[9]; -rz(pi/64) out[9]; -cx a[2],out[9]; -rz(-pi/64) out[9]; -cx b[3],a[2]; -rz(pi/64) a[2]; -cx a[2],out[9]; -rz(-pi/64) out[9]; -cx a[2],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[3]; -cx b[3],out[10]; -rz(-pi/128) out[10]; -cx b[3],out[10]; -rz(pi/128) out[10]; -cx b[3],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[10]; -rz(pi/128) out[10]; -cx a[2],out[10]; -rz(-pi/128) out[10]; -cx b[3],a[2]; -rz(pi/128) a[2]; -cx a[2],out[10]; -rz(-pi/128) out[10]; -cx a[2],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[3]; -cx b[3],out[11]; -rz(-pi/256) out[11]; -cx b[3],out[11]; -rz(pi/256) out[11]; -cx b[3],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[11]; -rz(pi/256) out[11]; -cx a[2],out[11]; -rz(-pi/256) out[11]; -cx b[3],a[2]; -rz(pi/256) a[2]; -cx a[2],out[11]; -rz(-pi/256) out[11]; -cx a[2],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[3]; -cx b[3],out[12]; -rz(-pi/512) out[12]; -cx b[3],out[12]; -rz(pi/512) out[12]; -cx b[3],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[12]; -rz(pi/512) out[12]; -cx a[2],out[12]; -rz(-pi/512) out[12]; -cx b[3],a[2]; -rz(pi/512) a[2]; -cx a[2],out[12]; -rz(-pi/512) out[12]; -cx a[2],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[3]; -cx b[3],out[13]; -rz(-pi/1024) out[13]; -cx b[3],out[13]; -rz(pi/1024) out[13]; -cx b[3],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[13]; -rz(pi/1024) out[13]; -cx a[2],out[13]; -rz(-pi/1024) out[13]; -cx b[3],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[13]; -rz(-pi/1024) out[13]; -cx a[2],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[3]; -cx b[3],out[14]; -rz(-pi/2048) out[14]; -cx b[3],out[14]; -rz(pi/2048) out[14]; -cx b[3],a[2]; -rz(-pi/2048) a[2]; -cx a[2],out[14]; -rz(pi/2048) out[14]; -cx a[2],out[14]; -rz(-pi/2048) out[14]; -cx b[3],a[2]; -rz(pi/2048) a[2]; -cx a[2],out[14]; -rz(-pi/2048) out[14]; -cx a[2],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[3]; -cx b[3],out[15]; -rz(-pi/4096) out[15]; -cx b[3],out[15]; -rz(pi/4096) out[15]; -cx b[3],a[2]; -rz(-pi/4096) a[2]; -cx a[2],out[15]; -rz(pi/4096) out[15]; -cx a[2],out[15]; -rz(-pi/4096) out[15]; -cx b[3],a[2]; -rz(pi/4096) a[2]; -cx a[2],out[15]; -rz(-pi/4096) out[15]; -cx a[2],out[15]; -rz(pi/4096) out[15]; -cx b[2],a[2]; -rz(-4*pi) a[2]; -cx a[2],out[0]; -rz(4*pi) out[0]; -cx a[2],out[0]; -rz(-4*pi) out[0]; -cx b[2],a[2]; -rz(4*pi) a[2]; -cx a[2],out[0]; -rz(-4*pi) out[0]; -cx a[2],out[0]; -rz(4*pi) out[0]; -cx b[1],out[0]; -rz(-2*pi) out[0]; -cx b[1],out[0]; -rz(2*pi) out[0]; -rz(2*pi) b[2]; -cx b[2],out[1]; -rz(-2*pi) out[1]; -cx b[2],out[1]; -rz(2*pi) out[1]; -cx b[2],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[1]; -rz(2*pi) out[1]; -cx a[2],out[1]; -rz(-2*pi) out[1]; -cx b[2],a[2]; -rz(2*pi) a[2]; -cx a[2],out[1]; -rz(-2*pi) out[1]; -cx a[2],out[1]; -rz(2*pi) out[1]; -rz(pi) b[2]; -cx b[2],out[2]; -rz(-pi) out[2]; -cx b[2],out[2]; -rz(pi) out[2]; -cx b[2],a[2]; -rz(-pi) a[2]; -cx a[2],out[2]; -rz(pi) out[2]; -cx a[2],out[2]; -rz(-pi) out[2]; -cx b[2],a[2]; -rz(pi) a[2]; -cx a[2],out[2]; -rz(-pi) out[2]; -cx a[2],out[2]; -rz(pi) out[2]; -rz(pi/2) b[2]; -cx b[2],out[3]; -rz(-pi/2) out[3]; -cx b[2],out[3]; -rz(pi/2) out[3]; -cx b[2],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[3]; -rz(pi/2) out[3]; -cx a[2],out[3]; -rz(-pi/2) out[3]; -cx b[2],a[2]; -rz(pi/2) a[2]; -cx a[2],out[3]; -rz(-pi/2) out[3]; -cx a[2],out[3]; -rz(pi/2) out[3]; -rz(pi/4) b[2]; -cx b[2],out[4]; -rz(-pi/4) out[4]; -cx b[2],out[4]; -rz(pi/4) out[4]; -cx b[2],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[4]; -rz(pi/4) out[4]; -cx a[2],out[4]; -rz(-pi/4) out[4]; -cx b[2],a[2]; -rz(pi/4) a[2]; -cx a[2],out[4]; -rz(-pi/4) out[4]; -cx a[2],out[4]; -rz(pi/4) out[4]; -rz(pi/8) b[2]; -cx b[2],out[5]; -rz(-pi/8) out[5]; -cx b[2],out[5]; -rz(pi/8) out[5]; -cx b[2],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[5]; -rz(pi/8) out[5]; -cx a[2],out[5]; -rz(-pi/8) out[5]; -cx b[2],a[2]; -rz(pi/8) a[2]; -cx a[2],out[5]; -rz(-pi/8) out[5]; -cx a[2],out[5]; -rz(pi/8) out[5]; -rz(pi/16) b[2]; -cx b[2],out[6]; -rz(-pi/16) out[6]; -cx b[2],out[6]; -rz(pi/16) out[6]; -cx b[2],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[6]; -rz(pi/16) out[6]; -cx a[2],out[6]; -rz(-pi/16) out[6]; -cx b[2],a[2]; -rz(pi/16) a[2]; -cx a[2],out[6]; -rz(-pi/16) out[6]; -cx a[2],out[6]; -rz(pi/16) out[6]; -rz(pi/32) b[2]; -cx b[2],out[7]; -rz(-pi/32) out[7]; -cx b[2],out[7]; -rz(pi/32) out[7]; -cx b[2],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[7]; -rz(pi/32) out[7]; -cx a[2],out[7]; -rz(-pi/32) out[7]; -cx b[2],a[2]; -rz(pi/32) a[2]; -cx a[2],out[7]; -rz(-pi/32) out[7]; -cx a[2],out[7]; -rz(pi/32) out[7]; -rz(pi/64) b[2]; -cx b[2],out[8]; -rz(-pi/64) out[8]; -cx b[2],out[8]; -rz(pi/64) out[8]; -cx b[2],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[8]; -rz(pi/64) out[8]; -cx a[2],out[8]; -rz(-pi/64) out[8]; -cx b[2],a[2]; -rz(pi/64) a[2]; -cx a[2],out[8]; -rz(-pi/64) out[8]; -cx a[2],out[8]; -rz(pi/64) out[8]; -rz(pi/128) b[2]; -cx b[2],out[9]; -rz(-pi/128) out[9]; -cx b[2],out[9]; -rz(pi/128) out[9]; -cx b[2],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[9]; -rz(pi/128) out[9]; -cx a[2],out[9]; -rz(-pi/128) out[9]; -cx b[2],a[2]; -rz(pi/128) a[2]; -cx a[2],out[9]; -rz(-pi/128) out[9]; -cx a[2],out[9]; -rz(pi/128) out[9]; -rz(pi/256) b[2]; -cx b[2],out[10]; -rz(-pi/256) out[10]; -cx b[2],out[10]; -rz(pi/256) out[10]; -cx b[2],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[10]; -rz(pi/256) out[10]; -cx a[2],out[10]; -rz(-pi/256) out[10]; -cx b[2],a[2]; -rz(pi/256) a[2]; -cx a[2],out[10]; -rz(-pi/256) out[10]; -cx a[2],out[10]; -rz(pi/256) out[10]; -rz(pi/512) b[2]; -cx b[2],out[11]; -rz(-pi/512) out[11]; -cx b[2],out[11]; -rz(pi/512) out[11]; -cx b[2],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[11]; -rz(pi/512) out[11]; -cx a[2],out[11]; -rz(-pi/512) out[11]; -cx b[2],a[2]; -rz(pi/512) a[2]; -cx a[2],out[11]; -rz(-pi/512) out[11]; -cx a[2],out[11]; -rz(pi/512) out[11]; -rz(pi/1024) b[2]; -cx b[2],out[12]; -rz(-pi/1024) out[12]; -cx b[2],out[12]; -rz(pi/1024) out[12]; -cx b[2],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[12]; -rz(pi/1024) out[12]; -cx a[2],out[12]; -rz(-pi/1024) out[12]; -cx b[2],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[12]; -rz(-pi/1024) out[12]; -cx a[2],out[12]; -rz(pi/1024) out[12]; -rz(pi/2048) b[2]; -cx b[2],out[13]; -rz(-pi/2048) out[13]; -cx b[2],out[13]; -rz(pi/2048) out[13]; -cx b[2],a[2]; -rz(-pi/2048) a[2]; -cx a[2],out[13]; -rz(pi/2048) out[13]; -cx a[2],out[13]; -rz(-pi/2048) out[13]; -cx b[2],a[2]; -rz(pi/2048) a[2]; -cx a[2],out[13]; -rz(-pi/2048) out[13]; -cx a[2],out[13]; -rz(pi/2048) out[13]; -rz(pi/4096) b[2]; -cx b[2],out[14]; -rz(-pi/4096) out[14]; -cx b[2],out[14]; -rz(pi/4096) out[14]; -cx b[2],a[2]; -rz(-pi/4096) a[2]; -cx a[2],out[14]; -rz(pi/4096) out[14]; -cx a[2],out[14]; -rz(-pi/4096) out[14]; -cx b[2],a[2]; -rz(pi/4096) a[2]; -cx a[2],out[14]; -rz(-pi/4096) out[14]; -cx a[2],out[14]; -rz(pi/4096) out[14]; -rz(pi/8192) b[2]; -cx b[2],out[15]; -rz(-pi/8192) out[15]; -cx b[2],out[15]; -rz(pi/8192) out[15]; -cx b[2],a[2]; -rz(-pi/8192) a[2]; -cx a[2],out[15]; -rz(pi/8192) out[15]; -cx a[2],out[15]; -rz(-pi/8192) out[15]; -cx b[2],a[2]; -rz(pi/8192) a[2]; -cx a[2],out[15]; -rz(-pi/8192) out[15]; -cx a[2],out[15]; -rz(pi/8192) out[15]; -cx b[1],a[2]; -rz(-2*pi) a[2]; -cx a[2],out[0]; -rz(2*pi) out[0]; -cx a[2],out[0]; -rz(-2*pi) out[0]; -cx b[1],a[2]; -rz(2*pi) a[2]; -cx a[2],out[0]; -rz(-2*pi) out[0]; -cx a[2],out[0]; -rz(2*pi) out[0]; -cx b[0],out[0]; -rz(-pi) out[0]; -cx b[0],out[0]; -rz(pi) out[0]; -rz(pi) b[1]; -cx b[1],out[1]; -rz(-pi) out[1]; -cx b[1],out[1]; -rz(pi) out[1]; -cx b[1],a[2]; -rz(-pi) a[2]; -cx a[2],out[1]; -rz(pi) out[1]; -cx a[2],out[1]; -rz(-pi) out[1]; -cx b[1],a[2]; -rz(pi) a[2]; -cx a[2],out[1]; -rz(-pi) out[1]; -cx a[2],out[1]; -rz(pi) out[1]; -rz(pi/2) b[1]; -cx b[1],out[2]; -rz(-pi/2) out[2]; -cx b[1],out[2]; -rz(pi/2) out[2]; -cx b[1],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[2]; -rz(pi/2) out[2]; -cx a[2],out[2]; -rz(-pi/2) out[2]; -cx b[1],a[2]; -rz(pi/2) a[2]; -cx a[2],out[2]; -rz(-pi/2) out[2]; -cx a[2],out[2]; -rz(pi/2) out[2]; -rz(pi/4) b[1]; -cx b[1],out[3]; -rz(-pi/4) out[3]; -cx b[1],out[3]; -rz(pi/4) out[3]; -cx b[1],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[3]; -rz(pi/4) out[3]; -cx a[2],out[3]; -rz(-pi/4) out[3]; -cx b[1],a[2]; -rz(pi/4) a[2]; -cx a[2],out[3]; -rz(-pi/4) out[3]; -cx a[2],out[3]; -rz(pi/4) out[3]; -rz(pi/8) b[1]; -cx b[1],out[4]; -rz(-pi/8) out[4]; -cx b[1],out[4]; -rz(pi/8) out[4]; -cx b[1],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[4]; -rz(pi/8) out[4]; -cx a[2],out[4]; -rz(-pi/8) out[4]; -cx b[1],a[2]; -rz(pi/8) a[2]; -cx a[2],out[4]; -rz(-pi/8) out[4]; -cx a[2],out[4]; -rz(pi/8) out[4]; -rz(pi/16) b[1]; -cx b[1],out[5]; -rz(-pi/16) out[5]; -cx b[1],out[5]; -rz(pi/16) out[5]; -cx b[1],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[5]; -rz(pi/16) out[5]; -cx a[2],out[5]; -rz(-pi/16) out[5]; -cx b[1],a[2]; -rz(pi/16) a[2]; -cx a[2],out[5]; -rz(-pi/16) out[5]; -cx a[2],out[5]; -rz(pi/16) out[5]; -rz(pi/32) b[1]; -cx b[1],out[6]; -rz(-pi/32) out[6]; -cx b[1],out[6]; -rz(pi/32) out[6]; -cx b[1],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[6]; -rz(pi/32) out[6]; -cx a[2],out[6]; -rz(-pi/32) out[6]; -cx b[1],a[2]; -rz(pi/32) a[2]; -cx a[2],out[6]; -rz(-pi/32) out[6]; -cx a[2],out[6]; -rz(pi/32) out[6]; -rz(pi/64) b[1]; -cx b[1],out[7]; -rz(-pi/64) out[7]; -cx b[1],out[7]; -rz(pi/64) out[7]; -cx b[1],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[7]; -rz(pi/64) out[7]; -cx a[2],out[7]; -rz(-pi/64) out[7]; -cx b[1],a[2]; -rz(pi/64) a[2]; -cx a[2],out[7]; -rz(-pi/64) out[7]; -cx a[2],out[7]; -rz(pi/64) out[7]; -rz(pi/128) b[1]; -cx b[1],out[8]; -rz(-pi/128) out[8]; -cx b[1],out[8]; -rz(pi/128) out[8]; -cx b[1],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[8]; -rz(pi/128) out[8]; -cx a[2],out[8]; -rz(-pi/128) out[8]; -cx b[1],a[2]; -rz(pi/128) a[2]; -cx a[2],out[8]; -rz(-pi/128) out[8]; -cx a[2],out[8]; -rz(pi/128) out[8]; -rz(pi/256) b[1]; -cx b[1],out[9]; -rz(-pi/256) out[9]; -cx b[1],out[9]; -rz(pi/256) out[9]; -cx b[1],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[9]; -rz(pi/256) out[9]; -cx a[2],out[9]; -rz(-pi/256) out[9]; -cx b[1],a[2]; -rz(pi/256) a[2]; -cx a[2],out[9]; -rz(-pi/256) out[9]; -cx a[2],out[9]; -rz(pi/256) out[9]; -rz(pi/512) b[1]; -cx b[1],out[10]; -rz(-pi/512) out[10]; -cx b[1],out[10]; -rz(pi/512) out[10]; -cx b[1],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[10]; -rz(pi/512) out[10]; -cx a[2],out[10]; -rz(-pi/512) out[10]; -cx b[1],a[2]; -rz(pi/512) a[2]; -cx a[2],out[10]; -rz(-pi/512) out[10]; -cx a[2],out[10]; -rz(pi/512) out[10]; -rz(pi/1024) b[1]; -cx b[1],out[11]; -rz(-pi/1024) out[11]; -cx b[1],out[11]; -rz(pi/1024) out[11]; -cx b[1],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[11]; -rz(pi/1024) out[11]; -cx a[2],out[11]; -rz(-pi/1024) out[11]; -cx b[1],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[11]; -rz(-pi/1024) out[11]; -cx a[2],out[11]; -rz(pi/1024) out[11]; -rz(pi/2048) b[1]; -cx b[1],out[12]; -rz(-pi/2048) out[12]; -cx b[1],out[12]; -rz(pi/2048) out[12]; -cx b[1],a[2]; -rz(-pi/2048) a[2]; -cx a[2],out[12]; -rz(pi/2048) out[12]; -cx a[2],out[12]; -rz(-pi/2048) out[12]; -cx b[1],a[2]; -rz(pi/2048) a[2]; -cx a[2],out[12]; -rz(-pi/2048) out[12]; -cx a[2],out[12]; -rz(pi/2048) out[12]; -rz(pi/4096) b[1]; -cx b[1],out[13]; -rz(-pi/4096) out[13]; -cx b[1],out[13]; -rz(pi/4096) out[13]; -cx b[1],a[2]; -rz(-pi/4096) a[2]; -cx a[2],out[13]; -rz(pi/4096) out[13]; -cx a[2],out[13]; -rz(-pi/4096) out[13]; -cx b[1],a[2]; -rz(pi/4096) a[2]; -cx a[2],out[13]; -rz(-pi/4096) out[13]; -cx a[2],out[13]; -rz(pi/4096) out[13]; -rz(pi/8192) b[1]; -cx b[1],out[14]; -rz(-pi/8192) out[14]; -cx b[1],out[14]; -rz(pi/8192) out[14]; -cx b[1],a[2]; -rz(-pi/8192) a[2]; -cx a[2],out[14]; -rz(pi/8192) out[14]; -cx a[2],out[14]; -rz(-pi/8192) out[14]; -cx b[1],a[2]; -rz(pi/8192) a[2]; -cx a[2],out[14]; -rz(-pi/8192) out[14]; -cx a[2],out[14]; -rz(pi/8192) out[14]; -rz(pi/16384) b[1]; -cx b[1],out[15]; -rz(-pi/16384) out[15]; -cx b[1],out[15]; -rz(pi/16384) out[15]; -cx b[1],a[2]; -rz(-pi/16384) a[2]; -cx a[2],out[15]; -rz(pi/16384) out[15]; -cx a[2],out[15]; -rz(-pi/16384) out[15]; -cx b[1],a[2]; -rz(pi/16384) a[2]; -cx a[2],out[15]; -rz(-pi/16384) out[15]; -cx a[2],out[15]; -rz(pi/16384) out[15]; -cx b[0],a[2]; -rz(-pi) a[2]; -cx a[2],out[0]; -rz(pi) out[0]; -cx a[2],out[0]; -rz(-pi) out[0]; -cx b[0],a[2]; -rz(pi) a[2]; -cx a[2],out[0]; -rz(-pi) out[0]; -cx a[2],out[0]; -rz(pi) out[0]; -rz(pi/2) b[0]; -cx b[0],out[1]; -rz(-pi/2) out[1]; -cx b[0],out[1]; -rz(pi/2) out[1]; -cx b[0],a[2]; -rz(-pi/2) a[2]; -cx a[2],out[1]; -rz(pi/2) out[1]; -cx a[2],out[1]; -rz(-pi/2) out[1]; -cx b[0],a[2]; -rz(pi/2) a[2]; -cx a[2],out[1]; -rz(-pi/2) out[1]; -cx a[2],out[1]; -rz(pi/2) out[1]; -rz(pi/4) b[0]; -cx b[0],out[2]; -rz(-pi/4) out[2]; -cx b[0],out[2]; -rz(pi/4) out[2]; -cx b[0],a[2]; -rz(-pi/4) a[2]; -cx a[2],out[2]; -rz(pi/4) out[2]; -cx a[2],out[2]; -rz(-pi/4) out[2]; -cx b[0],a[2]; -rz(pi/4) a[2]; -cx a[2],out[2]; -rz(-pi/4) out[2]; -cx a[2],out[2]; -rz(pi/4) out[2]; -rz(pi/8) b[0]; -cx b[0],out[3]; -rz(-pi/8) out[3]; -cx b[0],out[3]; -rz(pi/8) out[3]; -cx b[0],a[2]; -rz(-pi/8) a[2]; -cx a[2],out[3]; -rz(pi/8) out[3]; -cx a[2],out[3]; -rz(-pi/8) out[3]; -cx b[0],a[2]; -rz(pi/8) a[2]; -cx a[2],out[3]; -rz(-pi/8) out[3]; -cx a[2],out[3]; -rz(pi/8) out[3]; -rz(pi/16) b[0]; -cx b[0],out[4]; -rz(-pi/16) out[4]; -cx b[0],out[4]; -rz(pi/16) out[4]; -cx b[0],a[2]; -rz(-pi/16) a[2]; -cx a[2],out[4]; -rz(pi/16) out[4]; -cx a[2],out[4]; -rz(-pi/16) out[4]; -cx b[0],a[2]; -rz(pi/16) a[2]; -cx a[2],out[4]; -rz(-pi/16) out[4]; -cx a[2],out[4]; -rz(pi/16) out[4]; -rz(pi/32) b[0]; -cx b[0],out[5]; -rz(-pi/32) out[5]; -cx b[0],out[5]; -rz(pi/32) out[5]; -cx b[0],a[2]; -rz(-pi/32) a[2]; -cx a[2],out[5]; -rz(pi/32) out[5]; -cx a[2],out[5]; -rz(-pi/32) out[5]; -cx b[0],a[2]; -rz(pi/32) a[2]; -cx a[2],out[5]; -rz(-pi/32) out[5]; -cx a[2],out[5]; -rz(pi/32) out[5]; -rz(pi/64) b[0]; -cx b[0],out[6]; -rz(-pi/64) out[6]; -cx b[0],out[6]; -rz(pi/64) out[6]; -cx b[0],a[2]; -rz(-pi/64) a[2]; -cx a[2],out[6]; -rz(pi/64) out[6]; -cx a[2],out[6]; -rz(-pi/64) out[6]; -cx b[0],a[2]; -rz(pi/64) a[2]; -cx a[2],out[6]; -rz(-pi/64) out[6]; -cx a[2],out[6]; -rz(pi/64) out[6]; -rz(pi/128) b[0]; -cx b[0],out[7]; -rz(-pi/128) out[7]; -cx b[0],out[7]; -rz(pi/128) out[7]; -cx b[0],a[2]; -rz(-pi/128) a[2]; -cx a[2],out[7]; -rz(pi/128) out[7]; -cx a[2],out[7]; -rz(-pi/128) out[7]; -cx b[0],a[2]; -rz(pi/128) a[2]; -cx a[2],out[7]; -rz(-pi/128) out[7]; -cx a[2],out[7]; -rz(pi/128) out[7]; -rz(pi/256) b[0]; -cx b[0],out[8]; -rz(-pi/256) out[8]; -cx b[0],out[8]; -rz(pi/256) out[8]; -cx b[0],a[2]; -rz(-pi/256) a[2]; -cx a[2],out[8]; -rz(pi/256) out[8]; -cx a[2],out[8]; -rz(-pi/256) out[8]; -cx b[0],a[2]; -rz(pi/256) a[2]; -cx a[2],out[8]; -rz(-pi/256) out[8]; -cx a[2],out[8]; -rz(pi/256) out[8]; -rz(pi/512) b[0]; -cx b[0],out[9]; -rz(-pi/512) out[9]; -cx b[0],out[9]; -rz(pi/512) out[9]; -cx b[0],a[2]; -rz(-pi/512) a[2]; -cx a[2],out[9]; -rz(pi/512) out[9]; -cx a[2],out[9]; -rz(-pi/512) out[9]; -cx b[0],a[2]; -rz(pi/512) a[2]; -cx a[2],out[9]; -rz(-pi/512) out[9]; -cx a[2],out[9]; -rz(pi/512) out[9]; -rz(pi/1024) b[0]; -cx b[0],out[10]; -rz(-pi/1024) out[10]; -cx b[0],out[10]; -rz(pi/1024) out[10]; -cx b[0],a[2]; -rz(-pi/1024) a[2]; -cx a[2],out[10]; -rz(pi/1024) out[10]; -cx a[2],out[10]; -rz(-pi/1024) out[10]; -cx b[0],a[2]; -rz(pi/1024) a[2]; -cx a[2],out[10]; -rz(-pi/1024) out[10]; -cx a[2],out[10]; -rz(pi/1024) out[10]; -rz(pi/2048) b[0]; -cx b[0],out[11]; -rz(-pi/2048) out[11]; -cx b[0],out[11]; -rz(pi/2048) out[11]; -cx b[0],a[2]; -rz(-pi/2048) a[2]; -cx a[2],out[11]; -rz(pi/2048) out[11]; -cx a[2],out[11]; -rz(-pi/2048) out[11]; -cx b[0],a[2]; -rz(pi/2048) a[2]; -cx a[2],out[11]; -rz(-pi/2048) out[11]; -cx a[2],out[11]; -rz(pi/2048) out[11]; -rz(pi/4096) b[0]; -cx b[0],out[12]; -rz(-pi/4096) out[12]; -cx b[0],out[12]; -rz(pi/4096) out[12]; -cx b[0],a[2]; -rz(-pi/4096) a[2]; -cx a[2],out[12]; -rz(pi/4096) out[12]; -cx a[2],out[12]; -rz(-pi/4096) out[12]; -cx b[0],a[2]; -rz(pi/4096) a[2]; -cx a[2],out[12]; -rz(-pi/4096) out[12]; -cx a[2],out[12]; -rz(pi/4096) out[12]; -rz(pi/8192) b[0]; -cx b[0],out[13]; -rz(-pi/8192) out[13]; -cx b[0],out[13]; -rz(pi/8192) out[13]; -cx b[0],a[2]; -rz(-pi/8192) a[2]; -cx a[2],out[13]; -rz(pi/8192) out[13]; -cx a[2],out[13]; -rz(-pi/8192) out[13]; -cx b[0],a[2]; -rz(pi/8192) a[2]; -cx a[2],out[13]; -rz(-pi/8192) out[13]; -cx a[2],out[13]; -rz(pi/8192) out[13]; -rz(pi/16384) b[0]; -cx b[0],out[14]; -rz(-pi/16384) out[14]; -cx b[0],out[14]; -rz(pi/16384) out[14]; -cx b[0],a[2]; -rz(-pi/16384) a[2]; -cx a[2],out[14]; -rz(pi/16384) out[14]; -cx a[2],out[14]; -rz(-pi/16384) out[14]; -cx b[0],a[2]; -rz(pi/16384) a[2]; -cx a[2],out[14]; -rz(-pi/16384) out[14]; -cx a[2],out[14]; -rz(pi/16384) out[14]; -rz(pi/32768) b[0]; -cx b[0],out[15]; -rz(-pi/32768) out[15]; -cx b[0],out[15]; -rz(pi/32768) out[15]; -cx b[0],a[2]; -rz(-pi/32768) a[2]; -cx a[2],out[15]; -rz(pi/32768) out[15]; -cx a[2],out[15]; -rz(-pi/32768) out[15]; -cx b[0],a[2]; -rz(pi/32768) a[2]; -cx a[2],out[15]; -rz(-pi/32768) out[15]; -cx a[2],out[15]; -rz(pi/32768) out[15]; -rz(pi/2) b[0]; -rz(pi) b[1]; -rz(2*pi) b[2]; -rz(4*pi) b[3]; -rz(8*pi) b[4]; -rz(16*pi) b[5]; -rz(32*pi) b[6]; -rz(64*pi) b[7]; -cx b[7],out[0]; -rz(-64*pi) out[0]; -cx b[7],out[0]; -rz(64*pi) out[0]; -cx b[7],a[1]; -rz(-64*pi) a[1]; -cx a[1],out[0]; -rz(64*pi) out[0]; -cx a[1],out[0]; -rz(-64*pi) out[0]; -cx b[7],a[1]; -rz(64*pi) a[1]; -cx a[1],out[0]; -rz(-64*pi) out[0]; -cx a[1],out[0]; -rz(64*pi) out[0]; -cx b[6],out[0]; -rz(-32*pi) out[0]; -cx b[6],out[0]; -rz(32*pi) out[0]; -rz(32*pi) b[7]; -cx b[7],out[1]; -rz(-32*pi) out[1]; -cx b[7],out[1]; -rz(32*pi) out[1]; -cx b[7],a[1]; -rz(-32*pi) a[1]; -cx a[1],out[1]; -rz(32*pi) out[1]; -cx a[1],out[1]; -rz(-32*pi) out[1]; -cx b[7],a[1]; -rz(32*pi) a[1]; -cx a[1],out[1]; -rz(-32*pi) out[1]; -cx a[1],out[1]; -rz(32*pi) out[1]; -rz(16*pi) b[7]; -cx b[7],out[2]; -rz(-16*pi) out[2]; -cx b[7],out[2]; -rz(16*pi) out[2]; -cx b[7],a[1]; -rz(-16*pi) a[1]; -cx a[1],out[2]; -rz(16*pi) out[2]; -cx a[1],out[2]; -rz(-16*pi) out[2]; -cx b[7],a[1]; -rz(16*pi) a[1]; -cx a[1],out[2]; -rz(-16*pi) out[2]; -cx a[1],out[2]; -rz(16*pi) out[2]; -rz(8*pi) b[7]; -cx b[7],out[3]; -rz(-8*pi) out[3]; -cx b[7],out[3]; -rz(8*pi) out[3]; -cx b[7],a[1]; -rz(-8*pi) a[1]; -cx a[1],out[3]; -rz(8*pi) out[3]; -cx a[1],out[3]; -rz(-8*pi) out[3]; -cx b[7],a[1]; -rz(8*pi) a[1]; -cx a[1],out[3]; -rz(-8*pi) out[3]; -cx a[1],out[3]; -rz(8*pi) out[3]; -rz(4*pi) b[7]; -cx b[7],out[4]; -rz(-4*pi) out[4]; -cx b[7],out[4]; -rz(4*pi) out[4]; -cx b[7],a[1]; -rz(-4*pi) a[1]; -cx a[1],out[4]; -rz(4*pi) out[4]; -cx a[1],out[4]; -rz(-4*pi) out[4]; -cx b[7],a[1]; -rz(4*pi) a[1]; -cx a[1],out[4]; -rz(-4*pi) out[4]; -cx a[1],out[4]; -rz(4*pi) out[4]; -rz(2*pi) b[7]; -cx b[7],out[5]; -rz(-2*pi) out[5]; -cx b[7],out[5]; -rz(2*pi) out[5]; -cx b[7],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[5]; -rz(2*pi) out[5]; -cx a[1],out[5]; -rz(-2*pi) out[5]; -cx b[7],a[1]; -rz(2*pi) a[1]; -cx a[1],out[5]; -rz(-2*pi) out[5]; -cx a[1],out[5]; -rz(2*pi) out[5]; -rz(pi) b[7]; -cx b[7],out[6]; -rz(-pi) out[6]; -cx b[7],out[6]; -rz(pi) out[6]; -cx b[7],a[1]; -rz(-pi) a[1]; -cx a[1],out[6]; -rz(pi) out[6]; -cx a[1],out[6]; -rz(-pi) out[6]; -cx b[7],a[1]; -rz(pi) a[1]; -cx a[1],out[6]; -rz(-pi) out[6]; -cx a[1],out[6]; -rz(pi) out[6]; -rz(pi/2) b[7]; -cx b[7],out[7]; -rz(-pi/2) out[7]; -cx b[7],out[7]; -rz(pi/2) out[7]; -cx b[7],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[7]; -rz(pi/2) out[7]; -cx a[1],out[7]; -rz(-pi/2) out[7]; -cx b[7],a[1]; -rz(pi/2) a[1]; -cx a[1],out[7]; -rz(-pi/2) out[7]; -cx a[1],out[7]; -rz(pi/2) out[7]; -rz(pi/4) b[7]; -cx b[7],out[8]; -rz(-pi/4) out[8]; -cx b[7],out[8]; -rz(pi/4) out[8]; -cx b[7],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[8]; -rz(pi/4) out[8]; -cx a[1],out[8]; -rz(-pi/4) out[8]; -cx b[7],a[1]; -rz(pi/4) a[1]; -cx a[1],out[8]; -rz(-pi/4) out[8]; -cx a[1],out[8]; -rz(pi/4) out[8]; -rz(pi/8) b[7]; -cx b[7],out[9]; -rz(-pi/8) out[9]; -cx b[7],out[9]; -rz(pi/8) out[9]; -cx b[7],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[9]; -rz(pi/8) out[9]; -cx a[1],out[9]; -rz(-pi/8) out[9]; -cx b[7],a[1]; -rz(pi/8) a[1]; -cx a[1],out[9]; -rz(-pi/8) out[9]; -cx a[1],out[9]; -rz(pi/8) out[9]; -rz(pi/16) b[7]; -cx b[7],out[10]; -rz(-pi/16) out[10]; -cx b[7],out[10]; -rz(pi/16) out[10]; -cx b[7],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[10]; -rz(pi/16) out[10]; -cx a[1],out[10]; -rz(-pi/16) out[10]; -cx b[7],a[1]; -rz(pi/16) a[1]; -cx a[1],out[10]; -rz(-pi/16) out[10]; -cx a[1],out[10]; -rz(pi/16) out[10]; -rz(pi/32) b[7]; -cx b[7],out[11]; -rz(-pi/32) out[11]; -cx b[7],out[11]; -rz(pi/32) out[11]; -cx b[7],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[11]; -rz(pi/32) out[11]; -cx a[1],out[11]; -rz(-pi/32) out[11]; -cx b[7],a[1]; -rz(pi/32) a[1]; -cx a[1],out[11]; -rz(-pi/32) out[11]; -cx a[1],out[11]; -rz(pi/32) out[11]; -rz(pi/64) b[7]; -cx b[7],out[12]; -rz(-pi/64) out[12]; -cx b[7],out[12]; -rz(pi/64) out[12]; -cx b[7],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[12]; -rz(pi/64) out[12]; -cx a[1],out[12]; -rz(-pi/64) out[12]; -cx b[7],a[1]; -rz(pi/64) a[1]; -cx a[1],out[12]; -rz(-pi/64) out[12]; -cx a[1],out[12]; -rz(pi/64) out[12]; -rz(pi/128) b[7]; -cx b[7],out[13]; -rz(-pi/128) out[13]; -cx b[7],out[13]; -rz(pi/128) out[13]; -cx b[7],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[13]; -rz(pi/128) out[13]; -cx a[1],out[13]; -rz(-pi/128) out[13]; -cx b[7],a[1]; -rz(pi/128) a[1]; -cx a[1],out[13]; -rz(-pi/128) out[13]; -cx a[1],out[13]; -rz(pi/128) out[13]; -rz(pi/256) b[7]; -cx b[7],out[14]; -rz(-pi/256) out[14]; -cx b[7],out[14]; -rz(pi/256) out[14]; -cx b[7],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[14]; -rz(pi/256) out[14]; -cx a[1],out[14]; -rz(-pi/256) out[14]; -cx b[7],a[1]; -rz(pi/256) a[1]; -cx a[1],out[14]; -rz(-pi/256) out[14]; -cx a[1],out[14]; -rz(pi/256) out[14]; -rz(pi/512) b[7]; -cx b[7],out[15]; -rz(-pi/512) out[15]; -cx b[7],out[15]; -rz(pi/512) out[15]; -cx b[7],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[15]; -rz(pi/512) out[15]; -cx a[1],out[15]; -rz(-pi/512) out[15]; -cx b[7],a[1]; -rz(pi/512) a[1]; -cx a[1],out[15]; -rz(-pi/512) out[15]; -cx a[1],out[15]; -rz(pi/512) out[15]; -cx b[6],a[1]; -rz(-32*pi) a[1]; -cx a[1],out[0]; -rz(32*pi) out[0]; -cx a[1],out[0]; -rz(-32*pi) out[0]; -cx b[6],a[1]; -rz(32*pi) a[1]; -cx a[1],out[0]; -rz(-32*pi) out[0]; -cx a[1],out[0]; -rz(32*pi) out[0]; -cx b[5],out[0]; -rz(-16*pi) out[0]; -cx b[5],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[6]; -cx b[6],out[1]; -rz(-16*pi) out[1]; -cx b[6],out[1]; -rz(16*pi) out[1]; -cx b[6],a[1]; -rz(-16*pi) a[1]; -cx a[1],out[1]; -rz(16*pi) out[1]; -cx a[1],out[1]; -rz(-16*pi) out[1]; -cx b[6],a[1]; -rz(16*pi) a[1]; -cx a[1],out[1]; -rz(-16*pi) out[1]; -cx a[1],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[6]; -cx b[6],out[2]; -rz(-8*pi) out[2]; -cx b[6],out[2]; -rz(8*pi) out[2]; -cx b[6],a[1]; -rz(-8*pi) a[1]; -cx a[1],out[2]; -rz(8*pi) out[2]; -cx a[1],out[2]; -rz(-8*pi) out[2]; -cx b[6],a[1]; -rz(8*pi) a[1]; -cx a[1],out[2]; -rz(-8*pi) out[2]; -cx a[1],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[6]; -cx b[6],out[3]; -rz(-4*pi) out[3]; -cx b[6],out[3]; -rz(4*pi) out[3]; -cx b[6],a[1]; -rz(-4*pi) a[1]; -cx a[1],out[3]; -rz(4*pi) out[3]; -cx a[1],out[3]; -rz(-4*pi) out[3]; -cx b[6],a[1]; -rz(4*pi) a[1]; -cx a[1],out[3]; -rz(-4*pi) out[3]; -cx a[1],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[6]; -cx b[6],out[4]; -rz(-2*pi) out[4]; -cx b[6],out[4]; -rz(2*pi) out[4]; -cx b[6],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[4]; -rz(2*pi) out[4]; -cx a[1],out[4]; -rz(-2*pi) out[4]; -cx b[6],a[1]; -rz(2*pi) a[1]; -cx a[1],out[4]; -rz(-2*pi) out[4]; -cx a[1],out[4]; -rz(2*pi) out[4]; -rz(pi) b[6]; -cx b[6],out[5]; -rz(-pi) out[5]; -cx b[6],out[5]; -rz(pi) out[5]; -cx b[6],a[1]; -rz(-pi) a[1]; -cx a[1],out[5]; -rz(pi) out[5]; -cx a[1],out[5]; -rz(-pi) out[5]; -cx b[6],a[1]; -rz(pi) a[1]; -cx a[1],out[5]; -rz(-pi) out[5]; -cx a[1],out[5]; -rz(pi) out[5]; -rz(pi/2) b[6]; -cx b[6],out[6]; -rz(-pi/2) out[6]; -cx b[6],out[6]; -rz(pi/2) out[6]; -cx b[6],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[6]; -rz(pi/2) out[6]; -cx a[1],out[6]; -rz(-pi/2) out[6]; -cx b[6],a[1]; -rz(pi/2) a[1]; -cx a[1],out[6]; -rz(-pi/2) out[6]; -cx a[1],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[6]; -cx b[6],out[7]; -rz(-pi/4) out[7]; -cx b[6],out[7]; -rz(pi/4) out[7]; -cx b[6],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[7]; -rz(pi/4) out[7]; -cx a[1],out[7]; -rz(-pi/4) out[7]; -cx b[6],a[1]; -rz(pi/4) a[1]; -cx a[1],out[7]; -rz(-pi/4) out[7]; -cx a[1],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[6]; -cx b[6],out[8]; -rz(-pi/8) out[8]; -cx b[6],out[8]; -rz(pi/8) out[8]; -cx b[6],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[8]; -rz(pi/8) out[8]; -cx a[1],out[8]; -rz(-pi/8) out[8]; -cx b[6],a[1]; -rz(pi/8) a[1]; -cx a[1],out[8]; -rz(-pi/8) out[8]; -cx a[1],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[6]; -cx b[6],out[9]; -rz(-pi/16) out[9]; -cx b[6],out[9]; -rz(pi/16) out[9]; -cx b[6],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[9]; -rz(pi/16) out[9]; -cx a[1],out[9]; -rz(-pi/16) out[9]; -cx b[6],a[1]; -rz(pi/16) a[1]; -cx a[1],out[9]; -rz(-pi/16) out[9]; -cx a[1],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[6]; -cx b[6],out[10]; -rz(-pi/32) out[10]; -cx b[6],out[10]; -rz(pi/32) out[10]; -cx b[6],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[10]; -rz(pi/32) out[10]; -cx a[1],out[10]; -rz(-pi/32) out[10]; -cx b[6],a[1]; -rz(pi/32) a[1]; -cx a[1],out[10]; -rz(-pi/32) out[10]; -cx a[1],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[6]; -cx b[6],out[11]; -rz(-pi/64) out[11]; -cx b[6],out[11]; -rz(pi/64) out[11]; -cx b[6],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[11]; -rz(pi/64) out[11]; -cx a[1],out[11]; -rz(-pi/64) out[11]; -cx b[6],a[1]; -rz(pi/64) a[1]; -cx a[1],out[11]; -rz(-pi/64) out[11]; -cx a[1],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[6]; -cx b[6],out[12]; -rz(-pi/128) out[12]; -cx b[6],out[12]; -rz(pi/128) out[12]; -cx b[6],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[12]; -rz(pi/128) out[12]; -cx a[1],out[12]; -rz(-pi/128) out[12]; -cx b[6],a[1]; -rz(pi/128) a[1]; -cx a[1],out[12]; -rz(-pi/128) out[12]; -cx a[1],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[6]; -cx b[6],out[13]; -rz(-pi/256) out[13]; -cx b[6],out[13]; -rz(pi/256) out[13]; -cx b[6],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[13]; -rz(pi/256) out[13]; -cx a[1],out[13]; -rz(-pi/256) out[13]; -cx b[6],a[1]; -rz(pi/256) a[1]; -cx a[1],out[13]; -rz(-pi/256) out[13]; -cx a[1],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[6]; -cx b[6],out[14]; -rz(-pi/512) out[14]; -cx b[6],out[14]; -rz(pi/512) out[14]; -cx b[6],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[14]; -rz(pi/512) out[14]; -cx a[1],out[14]; -rz(-pi/512) out[14]; -cx b[6],a[1]; -rz(pi/512) a[1]; -cx a[1],out[14]; -rz(-pi/512) out[14]; -cx a[1],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[6]; -cx b[6],out[15]; -rz(-pi/1024) out[15]; -cx b[6],out[15]; -rz(pi/1024) out[15]; -cx b[6],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[15]; -rz(pi/1024) out[15]; -cx a[1],out[15]; -rz(-pi/1024) out[15]; -cx b[6],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[15]; -rz(-pi/1024) out[15]; -cx a[1],out[15]; -rz(pi/1024) out[15]; -cx b[5],a[1]; -rz(-16*pi) a[1]; -cx a[1],out[0]; -rz(16*pi) out[0]; -cx a[1],out[0]; -rz(-16*pi) out[0]; -cx b[5],a[1]; -rz(16*pi) a[1]; -cx a[1],out[0]; -rz(-16*pi) out[0]; -cx a[1],out[0]; -rz(16*pi) out[0]; -cx b[4],out[0]; -rz(-8*pi) out[0]; -cx b[4],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[5]; -cx b[5],out[1]; -rz(-8*pi) out[1]; -cx b[5],out[1]; -rz(8*pi) out[1]; -cx b[5],a[1]; -rz(-8*pi) a[1]; -cx a[1],out[1]; -rz(8*pi) out[1]; -cx a[1],out[1]; -rz(-8*pi) out[1]; -cx b[5],a[1]; -rz(8*pi) a[1]; -cx a[1],out[1]; -rz(-8*pi) out[1]; -cx a[1],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[5]; -cx b[5],out[2]; -rz(-4*pi) out[2]; -cx b[5],out[2]; -rz(4*pi) out[2]; -cx b[5],a[1]; -rz(-4*pi) a[1]; -cx a[1],out[2]; -rz(4*pi) out[2]; -cx a[1],out[2]; -rz(-4*pi) out[2]; -cx b[5],a[1]; -rz(4*pi) a[1]; -cx a[1],out[2]; -rz(-4*pi) out[2]; -cx a[1],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[5]; -cx b[5],out[3]; -rz(-2*pi) out[3]; -cx b[5],out[3]; -rz(2*pi) out[3]; -cx b[5],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[3]; -rz(2*pi) out[3]; -cx a[1],out[3]; -rz(-2*pi) out[3]; -cx b[5],a[1]; -rz(2*pi) a[1]; -cx a[1],out[3]; -rz(-2*pi) out[3]; -cx a[1],out[3]; -rz(2*pi) out[3]; -rz(pi) b[5]; -cx b[5],out[4]; -rz(-pi) out[4]; -cx b[5],out[4]; -rz(pi) out[4]; -cx b[5],a[1]; -rz(-pi) a[1]; -cx a[1],out[4]; -rz(pi) out[4]; -cx a[1],out[4]; -rz(-pi) out[4]; -cx b[5],a[1]; -rz(pi) a[1]; -cx a[1],out[4]; -rz(-pi) out[4]; -cx a[1],out[4]; -rz(pi) out[4]; -rz(pi/2) b[5]; -cx b[5],out[5]; -rz(-pi/2) out[5]; -cx b[5],out[5]; -rz(pi/2) out[5]; -cx b[5],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[5]; -rz(pi/2) out[5]; -cx a[1],out[5]; -rz(-pi/2) out[5]; -cx b[5],a[1]; -rz(pi/2) a[1]; -cx a[1],out[5]; -rz(-pi/2) out[5]; -cx a[1],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[5]; -cx b[5],out[6]; -rz(-pi/4) out[6]; -cx b[5],out[6]; -rz(pi/4) out[6]; -cx b[5],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[6]; -rz(pi/4) out[6]; -cx a[1],out[6]; -rz(-pi/4) out[6]; -cx b[5],a[1]; -rz(pi/4) a[1]; -cx a[1],out[6]; -rz(-pi/4) out[6]; -cx a[1],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[5]; -cx b[5],out[7]; -rz(-pi/8) out[7]; -cx b[5],out[7]; -rz(pi/8) out[7]; -cx b[5],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[7]; -rz(pi/8) out[7]; -cx a[1],out[7]; -rz(-pi/8) out[7]; -cx b[5],a[1]; -rz(pi/8) a[1]; -cx a[1],out[7]; -rz(-pi/8) out[7]; -cx a[1],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[5]; -cx b[5],out[8]; -rz(-pi/16) out[8]; -cx b[5],out[8]; -rz(pi/16) out[8]; -cx b[5],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[8]; -rz(pi/16) out[8]; -cx a[1],out[8]; -rz(-pi/16) out[8]; -cx b[5],a[1]; -rz(pi/16) a[1]; -cx a[1],out[8]; -rz(-pi/16) out[8]; -cx a[1],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[5]; -cx b[5],out[9]; -rz(-pi/32) out[9]; -cx b[5],out[9]; -rz(pi/32) out[9]; -cx b[5],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[9]; -rz(pi/32) out[9]; -cx a[1],out[9]; -rz(-pi/32) out[9]; -cx b[5],a[1]; -rz(pi/32) a[1]; -cx a[1],out[9]; -rz(-pi/32) out[9]; -cx a[1],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[5]; -cx b[5],out[10]; -rz(-pi/64) out[10]; -cx b[5],out[10]; -rz(pi/64) out[10]; -cx b[5],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[10]; -rz(pi/64) out[10]; -cx a[1],out[10]; -rz(-pi/64) out[10]; -cx b[5],a[1]; -rz(pi/64) a[1]; -cx a[1],out[10]; -rz(-pi/64) out[10]; -cx a[1],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[5]; -cx b[5],out[11]; -rz(-pi/128) out[11]; -cx b[5],out[11]; -rz(pi/128) out[11]; -cx b[5],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[11]; -rz(pi/128) out[11]; -cx a[1],out[11]; -rz(-pi/128) out[11]; -cx b[5],a[1]; -rz(pi/128) a[1]; -cx a[1],out[11]; -rz(-pi/128) out[11]; -cx a[1],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[5]; -cx b[5],out[12]; -rz(-pi/256) out[12]; -cx b[5],out[12]; -rz(pi/256) out[12]; -cx b[5],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[12]; -rz(pi/256) out[12]; -cx a[1],out[12]; -rz(-pi/256) out[12]; -cx b[5],a[1]; -rz(pi/256) a[1]; -cx a[1],out[12]; -rz(-pi/256) out[12]; -cx a[1],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[5]; -cx b[5],out[13]; -rz(-pi/512) out[13]; -cx b[5],out[13]; -rz(pi/512) out[13]; -cx b[5],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[13]; -rz(pi/512) out[13]; -cx a[1],out[13]; -rz(-pi/512) out[13]; -cx b[5],a[1]; -rz(pi/512) a[1]; -cx a[1],out[13]; -rz(-pi/512) out[13]; -cx a[1],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[5]; -cx b[5],out[14]; -rz(-pi/1024) out[14]; -cx b[5],out[14]; -rz(pi/1024) out[14]; -cx b[5],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[14]; -rz(pi/1024) out[14]; -cx a[1],out[14]; -rz(-pi/1024) out[14]; -cx b[5],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[14]; -rz(-pi/1024) out[14]; -cx a[1],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[5]; -cx b[5],out[15]; -rz(-pi/2048) out[15]; -cx b[5],out[15]; -rz(pi/2048) out[15]; -cx b[5],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[15]; -rz(pi/2048) out[15]; -cx a[1],out[15]; -rz(-pi/2048) out[15]; -cx b[5],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[15]; -rz(-pi/2048) out[15]; -cx a[1],out[15]; -rz(pi/2048) out[15]; -cx b[4],a[1]; -rz(-8*pi) a[1]; -cx a[1],out[0]; -rz(8*pi) out[0]; -cx a[1],out[0]; -rz(-8*pi) out[0]; -cx b[4],a[1]; -rz(8*pi) a[1]; -cx a[1],out[0]; -rz(-8*pi) out[0]; -cx a[1],out[0]; -rz(8*pi) out[0]; -cx b[3],out[0]; -rz(-4*pi) out[0]; -cx b[3],out[0]; -rz(4*pi) out[0]; -rz(4*pi) b[4]; -cx b[4],out[1]; -rz(-4*pi) out[1]; -cx b[4],out[1]; -rz(4*pi) out[1]; -cx b[4],a[1]; -rz(-4*pi) a[1]; -cx a[1],out[1]; -rz(4*pi) out[1]; -cx a[1],out[1]; -rz(-4*pi) out[1]; -cx b[4],a[1]; -rz(4*pi) a[1]; -cx a[1],out[1]; -rz(-4*pi) out[1]; -cx a[1],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[4]; -cx b[4],out[2]; -rz(-2*pi) out[2]; -cx b[4],out[2]; -rz(2*pi) out[2]; -cx b[4],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[2]; -rz(2*pi) out[2]; -cx a[1],out[2]; -rz(-2*pi) out[2]; -cx b[4],a[1]; -rz(2*pi) a[1]; -cx a[1],out[2]; -rz(-2*pi) out[2]; -cx a[1],out[2]; -rz(2*pi) out[2]; -rz(pi) b[4]; -cx b[4],out[3]; -rz(-pi) out[3]; -cx b[4],out[3]; -rz(pi) out[3]; -cx b[4],a[1]; -rz(-pi) a[1]; -cx a[1],out[3]; -rz(pi) out[3]; -cx a[1],out[3]; -rz(-pi) out[3]; -cx b[4],a[1]; -rz(pi) a[1]; -cx a[1],out[3]; -rz(-pi) out[3]; -cx a[1],out[3]; -rz(pi) out[3]; -rz(pi/2) b[4]; -cx b[4],out[4]; -rz(-pi/2) out[4]; -cx b[4],out[4]; -rz(pi/2) out[4]; -cx b[4],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[4]; -rz(pi/2) out[4]; -cx a[1],out[4]; -rz(-pi/2) out[4]; -cx b[4],a[1]; -rz(pi/2) a[1]; -cx a[1],out[4]; -rz(-pi/2) out[4]; -cx a[1],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[4]; -cx b[4],out[5]; -rz(-pi/4) out[5]; -cx b[4],out[5]; -rz(pi/4) out[5]; -cx b[4],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[5]; -rz(pi/4) out[5]; -cx a[1],out[5]; -rz(-pi/4) out[5]; -cx b[4],a[1]; -rz(pi/4) a[1]; -cx a[1],out[5]; -rz(-pi/4) out[5]; -cx a[1],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[4]; -cx b[4],out[6]; -rz(-pi/8) out[6]; -cx b[4],out[6]; -rz(pi/8) out[6]; -cx b[4],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[6]; -rz(pi/8) out[6]; -cx a[1],out[6]; -rz(-pi/8) out[6]; -cx b[4],a[1]; -rz(pi/8) a[1]; -cx a[1],out[6]; -rz(-pi/8) out[6]; -cx a[1],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[4]; -cx b[4],out[7]; -rz(-pi/16) out[7]; -cx b[4],out[7]; -rz(pi/16) out[7]; -cx b[4],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[7]; -rz(pi/16) out[7]; -cx a[1],out[7]; -rz(-pi/16) out[7]; -cx b[4],a[1]; -rz(pi/16) a[1]; -cx a[1],out[7]; -rz(-pi/16) out[7]; -cx a[1],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[4]; -cx b[4],out[8]; -rz(-pi/32) out[8]; -cx b[4],out[8]; -rz(pi/32) out[8]; -cx b[4],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[8]; -rz(pi/32) out[8]; -cx a[1],out[8]; -rz(-pi/32) out[8]; -cx b[4],a[1]; -rz(pi/32) a[1]; -cx a[1],out[8]; -rz(-pi/32) out[8]; -cx a[1],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[4]; -cx b[4],out[9]; -rz(-pi/64) out[9]; -cx b[4],out[9]; -rz(pi/64) out[9]; -cx b[4],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[9]; -rz(pi/64) out[9]; -cx a[1],out[9]; -rz(-pi/64) out[9]; -cx b[4],a[1]; -rz(pi/64) a[1]; -cx a[1],out[9]; -rz(-pi/64) out[9]; -cx a[1],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[4]; -cx b[4],out[10]; -rz(-pi/128) out[10]; -cx b[4],out[10]; -rz(pi/128) out[10]; -cx b[4],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[10]; -rz(pi/128) out[10]; -cx a[1],out[10]; -rz(-pi/128) out[10]; -cx b[4],a[1]; -rz(pi/128) a[1]; -cx a[1],out[10]; -rz(-pi/128) out[10]; -cx a[1],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[4]; -cx b[4],out[11]; -rz(-pi/256) out[11]; -cx b[4],out[11]; -rz(pi/256) out[11]; -cx b[4],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[11]; -rz(pi/256) out[11]; -cx a[1],out[11]; -rz(-pi/256) out[11]; -cx b[4],a[1]; -rz(pi/256) a[1]; -cx a[1],out[11]; -rz(-pi/256) out[11]; -cx a[1],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[4]; -cx b[4],out[12]; -rz(-pi/512) out[12]; -cx b[4],out[12]; -rz(pi/512) out[12]; -cx b[4],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[12]; -rz(pi/512) out[12]; -cx a[1],out[12]; -rz(-pi/512) out[12]; -cx b[4],a[1]; -rz(pi/512) a[1]; -cx a[1],out[12]; -rz(-pi/512) out[12]; -cx a[1],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[4]; -cx b[4],out[13]; -rz(-pi/1024) out[13]; -cx b[4],out[13]; -rz(pi/1024) out[13]; -cx b[4],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[13]; -rz(pi/1024) out[13]; -cx a[1],out[13]; -rz(-pi/1024) out[13]; -cx b[4],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[13]; -rz(-pi/1024) out[13]; -cx a[1],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[4]; -cx b[4],out[14]; -rz(-pi/2048) out[14]; -cx b[4],out[14]; -rz(pi/2048) out[14]; -cx b[4],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[14]; -rz(pi/2048) out[14]; -cx a[1],out[14]; -rz(-pi/2048) out[14]; -cx b[4],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[14]; -rz(-pi/2048) out[14]; -cx a[1],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[4]; -cx b[4],out[15]; -rz(-pi/4096) out[15]; -cx b[4],out[15]; -rz(pi/4096) out[15]; -cx b[4],a[1]; -rz(-pi/4096) a[1]; -cx a[1],out[15]; -rz(pi/4096) out[15]; -cx a[1],out[15]; -rz(-pi/4096) out[15]; -cx b[4],a[1]; -rz(pi/4096) a[1]; -cx a[1],out[15]; -rz(-pi/4096) out[15]; -cx a[1],out[15]; -rz(pi/4096) out[15]; -cx b[3],a[1]; -rz(-4*pi) a[1]; -cx a[1],out[0]; -rz(4*pi) out[0]; -cx a[1],out[0]; -rz(-4*pi) out[0]; -cx b[3],a[1]; -rz(4*pi) a[1]; -cx a[1],out[0]; -rz(-4*pi) out[0]; -cx a[1],out[0]; -rz(4*pi) out[0]; -cx b[2],out[0]; -rz(-2*pi) out[0]; -cx b[2],out[0]; -rz(2*pi) out[0]; -rz(2*pi) b[3]; -cx b[3],out[1]; -rz(-2*pi) out[1]; -cx b[3],out[1]; -rz(2*pi) out[1]; -cx b[3],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[1]; -rz(2*pi) out[1]; -cx a[1],out[1]; -rz(-2*pi) out[1]; -cx b[3],a[1]; -rz(2*pi) a[1]; -cx a[1],out[1]; -rz(-2*pi) out[1]; -cx a[1],out[1]; -rz(2*pi) out[1]; -rz(pi) b[3]; -cx b[3],out[2]; -rz(-pi) out[2]; -cx b[3],out[2]; -rz(pi) out[2]; -cx b[3],a[1]; -rz(-pi) a[1]; -cx a[1],out[2]; -rz(pi) out[2]; -cx a[1],out[2]; -rz(-pi) out[2]; -cx b[3],a[1]; -rz(pi) a[1]; -cx a[1],out[2]; -rz(-pi) out[2]; -cx a[1],out[2]; -rz(pi) out[2]; -rz(pi/2) b[3]; -cx b[3],out[3]; -rz(-pi/2) out[3]; -cx b[3],out[3]; -rz(pi/2) out[3]; -cx b[3],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[3]; -rz(pi/2) out[3]; -cx a[1],out[3]; -rz(-pi/2) out[3]; -cx b[3],a[1]; -rz(pi/2) a[1]; -cx a[1],out[3]; -rz(-pi/2) out[3]; -cx a[1],out[3]; -rz(pi/2) out[3]; -rz(pi/4) b[3]; -cx b[3],out[4]; -rz(-pi/4) out[4]; -cx b[3],out[4]; -rz(pi/4) out[4]; -cx b[3],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[4]; -rz(pi/4) out[4]; -cx a[1],out[4]; -rz(-pi/4) out[4]; -cx b[3],a[1]; -rz(pi/4) a[1]; -cx a[1],out[4]; -rz(-pi/4) out[4]; -cx a[1],out[4]; -rz(pi/4) out[4]; -rz(pi/8) b[3]; -cx b[3],out[5]; -rz(-pi/8) out[5]; -cx b[3],out[5]; -rz(pi/8) out[5]; -cx b[3],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[5]; -rz(pi/8) out[5]; -cx a[1],out[5]; -rz(-pi/8) out[5]; -cx b[3],a[1]; -rz(pi/8) a[1]; -cx a[1],out[5]; -rz(-pi/8) out[5]; -cx a[1],out[5]; -rz(pi/8) out[5]; -rz(pi/16) b[3]; -cx b[3],out[6]; -rz(-pi/16) out[6]; -cx b[3],out[6]; -rz(pi/16) out[6]; -cx b[3],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[6]; -rz(pi/16) out[6]; -cx a[1],out[6]; -rz(-pi/16) out[6]; -cx b[3],a[1]; -rz(pi/16) a[1]; -cx a[1],out[6]; -rz(-pi/16) out[6]; -cx a[1],out[6]; -rz(pi/16) out[6]; -rz(pi/32) b[3]; -cx b[3],out[7]; -rz(-pi/32) out[7]; -cx b[3],out[7]; -rz(pi/32) out[7]; -cx b[3],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[7]; -rz(pi/32) out[7]; -cx a[1],out[7]; -rz(-pi/32) out[7]; -cx b[3],a[1]; -rz(pi/32) a[1]; -cx a[1],out[7]; -rz(-pi/32) out[7]; -cx a[1],out[7]; -rz(pi/32) out[7]; -rz(pi/64) b[3]; -cx b[3],out[8]; -rz(-pi/64) out[8]; -cx b[3],out[8]; -rz(pi/64) out[8]; -cx b[3],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[8]; -rz(pi/64) out[8]; -cx a[1],out[8]; -rz(-pi/64) out[8]; -cx b[3],a[1]; -rz(pi/64) a[1]; -cx a[1],out[8]; -rz(-pi/64) out[8]; -cx a[1],out[8]; -rz(pi/64) out[8]; -rz(pi/128) b[3]; -cx b[3],out[9]; -rz(-pi/128) out[9]; -cx b[3],out[9]; -rz(pi/128) out[9]; -cx b[3],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[9]; -rz(pi/128) out[9]; -cx a[1],out[9]; -rz(-pi/128) out[9]; -cx b[3],a[1]; -rz(pi/128) a[1]; -cx a[1],out[9]; -rz(-pi/128) out[9]; -cx a[1],out[9]; -rz(pi/128) out[9]; -rz(pi/256) b[3]; -cx b[3],out[10]; -rz(-pi/256) out[10]; -cx b[3],out[10]; -rz(pi/256) out[10]; -cx b[3],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[10]; -rz(pi/256) out[10]; -cx a[1],out[10]; -rz(-pi/256) out[10]; -cx b[3],a[1]; -rz(pi/256) a[1]; -cx a[1],out[10]; -rz(-pi/256) out[10]; -cx a[1],out[10]; -rz(pi/256) out[10]; -rz(pi/512) b[3]; -cx b[3],out[11]; -rz(-pi/512) out[11]; -cx b[3],out[11]; -rz(pi/512) out[11]; -cx b[3],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[11]; -rz(pi/512) out[11]; -cx a[1],out[11]; -rz(-pi/512) out[11]; -cx b[3],a[1]; -rz(pi/512) a[1]; -cx a[1],out[11]; -rz(-pi/512) out[11]; -cx a[1],out[11]; -rz(pi/512) out[11]; -rz(pi/1024) b[3]; -cx b[3],out[12]; -rz(-pi/1024) out[12]; -cx b[3],out[12]; -rz(pi/1024) out[12]; -cx b[3],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[12]; -rz(pi/1024) out[12]; -cx a[1],out[12]; -rz(-pi/1024) out[12]; -cx b[3],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[12]; -rz(-pi/1024) out[12]; -cx a[1],out[12]; -rz(pi/1024) out[12]; -rz(pi/2048) b[3]; -cx b[3],out[13]; -rz(-pi/2048) out[13]; -cx b[3],out[13]; -rz(pi/2048) out[13]; -cx b[3],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[13]; -rz(pi/2048) out[13]; -cx a[1],out[13]; -rz(-pi/2048) out[13]; -cx b[3],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[13]; -rz(-pi/2048) out[13]; -cx a[1],out[13]; -rz(pi/2048) out[13]; -rz(pi/4096) b[3]; -cx b[3],out[14]; -rz(-pi/4096) out[14]; -cx b[3],out[14]; -rz(pi/4096) out[14]; -cx b[3],a[1]; -rz(-pi/4096) a[1]; -cx a[1],out[14]; -rz(pi/4096) out[14]; -cx a[1],out[14]; -rz(-pi/4096) out[14]; -cx b[3],a[1]; -rz(pi/4096) a[1]; -cx a[1],out[14]; -rz(-pi/4096) out[14]; -cx a[1],out[14]; -rz(pi/4096) out[14]; -rz(pi/8192) b[3]; -cx b[3],out[15]; -rz(-pi/8192) out[15]; -cx b[3],out[15]; -rz(pi/8192) out[15]; -cx b[3],a[1]; -rz(-pi/8192) a[1]; -cx a[1],out[15]; -rz(pi/8192) out[15]; -cx a[1],out[15]; -rz(-pi/8192) out[15]; -cx b[3],a[1]; -rz(pi/8192) a[1]; -cx a[1],out[15]; -rz(-pi/8192) out[15]; -cx a[1],out[15]; -rz(pi/8192) out[15]; -cx b[2],a[1]; -rz(-2*pi) a[1]; -cx a[1],out[0]; -rz(2*pi) out[0]; -cx a[1],out[0]; -rz(-2*pi) out[0]; -cx b[2],a[1]; -rz(2*pi) a[1]; -cx a[1],out[0]; -rz(-2*pi) out[0]; -cx a[1],out[0]; -rz(2*pi) out[0]; -cx b[1],out[0]; -rz(-pi) out[0]; -cx b[1],out[0]; -rz(pi) out[0]; -rz(pi) b[2]; -cx b[2],out[1]; -rz(-pi) out[1]; -cx b[2],out[1]; -rz(pi) out[1]; -cx b[2],a[1]; -rz(-pi) a[1]; -cx a[1],out[1]; -rz(pi) out[1]; -cx a[1],out[1]; -rz(-pi) out[1]; -cx b[2],a[1]; -rz(pi) a[1]; -cx a[1],out[1]; -rz(-pi) out[1]; -cx a[1],out[1]; -rz(pi) out[1]; -rz(pi/2) b[2]; -cx b[2],out[2]; -rz(-pi/2) out[2]; -cx b[2],out[2]; -rz(pi/2) out[2]; -cx b[2],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[2]; -rz(pi/2) out[2]; -cx a[1],out[2]; -rz(-pi/2) out[2]; -cx b[2],a[1]; -rz(pi/2) a[1]; -cx a[1],out[2]; -rz(-pi/2) out[2]; -cx a[1],out[2]; -rz(pi/2) out[2]; -rz(pi/4) b[2]; -cx b[2],out[3]; -rz(-pi/4) out[3]; -cx b[2],out[3]; -rz(pi/4) out[3]; -cx b[2],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[3]; -rz(pi/4) out[3]; -cx a[1],out[3]; -rz(-pi/4) out[3]; -cx b[2],a[1]; -rz(pi/4) a[1]; -cx a[1],out[3]; -rz(-pi/4) out[3]; -cx a[1],out[3]; -rz(pi/4) out[3]; -rz(pi/8) b[2]; -cx b[2],out[4]; -rz(-pi/8) out[4]; -cx b[2],out[4]; -rz(pi/8) out[4]; -cx b[2],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[4]; -rz(pi/8) out[4]; -cx a[1],out[4]; -rz(-pi/8) out[4]; -cx b[2],a[1]; -rz(pi/8) a[1]; -cx a[1],out[4]; -rz(-pi/8) out[4]; -cx a[1],out[4]; -rz(pi/8) out[4]; -rz(pi/16) b[2]; -cx b[2],out[5]; -rz(-pi/16) out[5]; -cx b[2],out[5]; -rz(pi/16) out[5]; -cx b[2],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[5]; -rz(pi/16) out[5]; -cx a[1],out[5]; -rz(-pi/16) out[5]; -cx b[2],a[1]; -rz(pi/16) a[1]; -cx a[1],out[5]; -rz(-pi/16) out[5]; -cx a[1],out[5]; -rz(pi/16) out[5]; -rz(pi/32) b[2]; -cx b[2],out[6]; -rz(-pi/32) out[6]; -cx b[2],out[6]; -rz(pi/32) out[6]; -cx b[2],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[6]; -rz(pi/32) out[6]; -cx a[1],out[6]; -rz(-pi/32) out[6]; -cx b[2],a[1]; -rz(pi/32) a[1]; -cx a[1],out[6]; -rz(-pi/32) out[6]; -cx a[1],out[6]; -rz(pi/32) out[6]; -rz(pi/64) b[2]; -cx b[2],out[7]; -rz(-pi/64) out[7]; -cx b[2],out[7]; -rz(pi/64) out[7]; -cx b[2],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[7]; -rz(pi/64) out[7]; -cx a[1],out[7]; -rz(-pi/64) out[7]; -cx b[2],a[1]; -rz(pi/64) a[1]; -cx a[1],out[7]; -rz(-pi/64) out[7]; -cx a[1],out[7]; -rz(pi/64) out[7]; -rz(pi/128) b[2]; -cx b[2],out[8]; -rz(-pi/128) out[8]; -cx b[2],out[8]; -rz(pi/128) out[8]; -cx b[2],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[8]; -rz(pi/128) out[8]; -cx a[1],out[8]; -rz(-pi/128) out[8]; -cx b[2],a[1]; -rz(pi/128) a[1]; -cx a[1],out[8]; -rz(-pi/128) out[8]; -cx a[1],out[8]; -rz(pi/128) out[8]; -rz(pi/256) b[2]; -cx b[2],out[9]; -rz(-pi/256) out[9]; -cx b[2],out[9]; -rz(pi/256) out[9]; -cx b[2],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[9]; -rz(pi/256) out[9]; -cx a[1],out[9]; -rz(-pi/256) out[9]; -cx b[2],a[1]; -rz(pi/256) a[1]; -cx a[1],out[9]; -rz(-pi/256) out[9]; -cx a[1],out[9]; -rz(pi/256) out[9]; -rz(pi/512) b[2]; -cx b[2],out[10]; -rz(-pi/512) out[10]; -cx b[2],out[10]; -rz(pi/512) out[10]; -cx b[2],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[10]; -rz(pi/512) out[10]; -cx a[1],out[10]; -rz(-pi/512) out[10]; -cx b[2],a[1]; -rz(pi/512) a[1]; -cx a[1],out[10]; -rz(-pi/512) out[10]; -cx a[1],out[10]; -rz(pi/512) out[10]; -rz(pi/1024) b[2]; -cx b[2],out[11]; -rz(-pi/1024) out[11]; -cx b[2],out[11]; -rz(pi/1024) out[11]; -cx b[2],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[11]; -rz(pi/1024) out[11]; -cx a[1],out[11]; -rz(-pi/1024) out[11]; -cx b[2],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[11]; -rz(-pi/1024) out[11]; -cx a[1],out[11]; -rz(pi/1024) out[11]; -rz(pi/2048) b[2]; -cx b[2],out[12]; -rz(-pi/2048) out[12]; -cx b[2],out[12]; -rz(pi/2048) out[12]; -cx b[2],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[12]; -rz(pi/2048) out[12]; -cx a[1],out[12]; -rz(-pi/2048) out[12]; -cx b[2],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[12]; -rz(-pi/2048) out[12]; -cx a[1],out[12]; -rz(pi/2048) out[12]; -rz(pi/4096) b[2]; -cx b[2],out[13]; -rz(-pi/4096) out[13]; -cx b[2],out[13]; -rz(pi/4096) out[13]; -cx b[2],a[1]; -rz(-pi/4096) a[1]; -cx a[1],out[13]; -rz(pi/4096) out[13]; -cx a[1],out[13]; -rz(-pi/4096) out[13]; -cx b[2],a[1]; -rz(pi/4096) a[1]; -cx a[1],out[13]; -rz(-pi/4096) out[13]; -cx a[1],out[13]; -rz(pi/4096) out[13]; -rz(pi/8192) b[2]; -cx b[2],out[14]; -rz(-pi/8192) out[14]; -cx b[2],out[14]; -rz(pi/8192) out[14]; -cx b[2],a[1]; -rz(-pi/8192) a[1]; -cx a[1],out[14]; -rz(pi/8192) out[14]; -cx a[1],out[14]; -rz(-pi/8192) out[14]; -cx b[2],a[1]; -rz(pi/8192) a[1]; -cx a[1],out[14]; -rz(-pi/8192) out[14]; -cx a[1],out[14]; -rz(pi/8192) out[14]; -rz(pi/16384) b[2]; -cx b[2],out[15]; -rz(-pi/16384) out[15]; -cx b[2],out[15]; -rz(pi/16384) out[15]; -cx b[2],a[1]; -rz(-pi/16384) a[1]; -cx a[1],out[15]; -rz(pi/16384) out[15]; -cx a[1],out[15]; -rz(-pi/16384) out[15]; -cx b[2],a[1]; -rz(pi/16384) a[1]; -cx a[1],out[15]; -rz(-pi/16384) out[15]; -cx a[1],out[15]; -rz(pi/16384) out[15]; -cx b[1],a[1]; -rz(-pi) a[1]; -cx a[1],out[0]; -rz(pi) out[0]; -cx a[1],out[0]; -rz(-pi) out[0]; -cx b[1],a[1]; -rz(pi) a[1]; -cx a[1],out[0]; -rz(-pi) out[0]; -cx a[1],out[0]; -rz(pi) out[0]; -cx b[0],out[0]; -rz(-pi/2) out[0]; -cx b[0],out[0]; -rz(pi/2) out[0]; -rz(pi/2) b[1]; -cx b[1],out[1]; -rz(-pi/2) out[1]; -cx b[1],out[1]; -rz(pi/2) out[1]; -cx b[1],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[1]; -rz(pi/2) out[1]; -cx a[1],out[1]; -rz(-pi/2) out[1]; -cx b[1],a[1]; -rz(pi/2) a[1]; -cx a[1],out[1]; -rz(-pi/2) out[1]; -cx a[1],out[1]; -rz(pi/2) out[1]; -rz(pi/4) b[1]; -cx b[1],out[2]; -rz(-pi/4) out[2]; -cx b[1],out[2]; -rz(pi/4) out[2]; -cx b[1],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[2]; -rz(pi/4) out[2]; -cx a[1],out[2]; -rz(-pi/4) out[2]; -cx b[1],a[1]; -rz(pi/4) a[1]; -cx a[1],out[2]; -rz(-pi/4) out[2]; -cx a[1],out[2]; -rz(pi/4) out[2]; -rz(pi/8) b[1]; -cx b[1],out[3]; -rz(-pi/8) out[3]; -cx b[1],out[3]; -rz(pi/8) out[3]; -cx b[1],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[3]; -rz(pi/8) out[3]; -cx a[1],out[3]; -rz(-pi/8) out[3]; -cx b[1],a[1]; -rz(pi/8) a[1]; -cx a[1],out[3]; -rz(-pi/8) out[3]; -cx a[1],out[3]; -rz(pi/8) out[3]; -rz(pi/16) b[1]; -cx b[1],out[4]; -rz(-pi/16) out[4]; -cx b[1],out[4]; -rz(pi/16) out[4]; -cx b[1],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[4]; -rz(pi/16) out[4]; -cx a[1],out[4]; -rz(-pi/16) out[4]; -cx b[1],a[1]; -rz(pi/16) a[1]; -cx a[1],out[4]; -rz(-pi/16) out[4]; -cx a[1],out[4]; -rz(pi/16) out[4]; -rz(pi/32) b[1]; -cx b[1],out[5]; -rz(-pi/32) out[5]; -cx b[1],out[5]; -rz(pi/32) out[5]; -cx b[1],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[5]; -rz(pi/32) out[5]; -cx a[1],out[5]; -rz(-pi/32) out[5]; -cx b[1],a[1]; -rz(pi/32) a[1]; -cx a[1],out[5]; -rz(-pi/32) out[5]; -cx a[1],out[5]; -rz(pi/32) out[5]; -rz(pi/64) b[1]; -cx b[1],out[6]; -rz(-pi/64) out[6]; -cx b[1],out[6]; -rz(pi/64) out[6]; -cx b[1],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[6]; -rz(pi/64) out[6]; -cx a[1],out[6]; -rz(-pi/64) out[6]; -cx b[1],a[1]; -rz(pi/64) a[1]; -cx a[1],out[6]; -rz(-pi/64) out[6]; -cx a[1],out[6]; -rz(pi/64) out[6]; -rz(pi/128) b[1]; -cx b[1],out[7]; -rz(-pi/128) out[7]; -cx b[1],out[7]; -rz(pi/128) out[7]; -cx b[1],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[7]; -rz(pi/128) out[7]; -cx a[1],out[7]; -rz(-pi/128) out[7]; -cx b[1],a[1]; -rz(pi/128) a[1]; -cx a[1],out[7]; -rz(-pi/128) out[7]; -cx a[1],out[7]; -rz(pi/128) out[7]; -rz(pi/256) b[1]; -cx b[1],out[8]; -rz(-pi/256) out[8]; -cx b[1],out[8]; -rz(pi/256) out[8]; -cx b[1],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[8]; -rz(pi/256) out[8]; -cx a[1],out[8]; -rz(-pi/256) out[8]; -cx b[1],a[1]; -rz(pi/256) a[1]; -cx a[1],out[8]; -rz(-pi/256) out[8]; -cx a[1],out[8]; -rz(pi/256) out[8]; -rz(pi/512) b[1]; -cx b[1],out[9]; -rz(-pi/512) out[9]; -cx b[1],out[9]; -rz(pi/512) out[9]; -cx b[1],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[9]; -rz(pi/512) out[9]; -cx a[1],out[9]; -rz(-pi/512) out[9]; -cx b[1],a[1]; -rz(pi/512) a[1]; -cx a[1],out[9]; -rz(-pi/512) out[9]; -cx a[1],out[9]; -rz(pi/512) out[9]; -rz(pi/1024) b[1]; -cx b[1],out[10]; -rz(-pi/1024) out[10]; -cx b[1],out[10]; -rz(pi/1024) out[10]; -cx b[1],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[10]; -rz(pi/1024) out[10]; -cx a[1],out[10]; -rz(-pi/1024) out[10]; -cx b[1],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[10]; -rz(-pi/1024) out[10]; -cx a[1],out[10]; -rz(pi/1024) out[10]; -rz(pi/2048) b[1]; -cx b[1],out[11]; -rz(-pi/2048) out[11]; -cx b[1],out[11]; -rz(pi/2048) out[11]; -cx b[1],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[11]; -rz(pi/2048) out[11]; -cx a[1],out[11]; -rz(-pi/2048) out[11]; -cx b[1],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[11]; -rz(-pi/2048) out[11]; -cx a[1],out[11]; -rz(pi/2048) out[11]; -rz(pi/4096) b[1]; -cx b[1],out[12]; -rz(-pi/4096) out[12]; -cx b[1],out[12]; -rz(pi/4096) out[12]; -cx b[1],a[1]; -rz(-pi/4096) a[1]; -cx a[1],out[12]; -rz(pi/4096) out[12]; -cx a[1],out[12]; -rz(-pi/4096) out[12]; -cx b[1],a[1]; -rz(pi/4096) a[1]; -cx a[1],out[12]; -rz(-pi/4096) out[12]; -cx a[1],out[12]; -rz(pi/4096) out[12]; -rz(pi/8192) b[1]; -cx b[1],out[13]; -rz(-pi/8192) out[13]; -cx b[1],out[13]; -rz(pi/8192) out[13]; -cx b[1],a[1]; -rz(-pi/8192) a[1]; -cx a[1],out[13]; -rz(pi/8192) out[13]; -cx a[1],out[13]; -rz(-pi/8192) out[13]; -cx b[1],a[1]; -rz(pi/8192) a[1]; -cx a[1],out[13]; -rz(-pi/8192) out[13]; -cx a[1],out[13]; -rz(pi/8192) out[13]; -rz(pi/16384) b[1]; -cx b[1],out[14]; -rz(-pi/16384) out[14]; -cx b[1],out[14]; -rz(pi/16384) out[14]; -cx b[1],a[1]; -rz(-pi/16384) a[1]; -cx a[1],out[14]; -rz(pi/16384) out[14]; -cx a[1],out[14]; -rz(-pi/16384) out[14]; -cx b[1],a[1]; -rz(pi/16384) a[1]; -cx a[1],out[14]; -rz(-pi/16384) out[14]; -cx a[1],out[14]; -rz(pi/16384) out[14]; -rz(pi/32768) b[1]; -cx b[1],out[15]; -rz(-pi/32768) out[15]; -cx b[1],out[15]; -rz(pi/32768) out[15]; -cx b[1],a[1]; -rz(-pi/32768) a[1]; -cx a[1],out[15]; -rz(pi/32768) out[15]; -cx a[1],out[15]; -rz(-pi/32768) out[15]; -cx b[1],a[1]; -rz(pi/32768) a[1]; -cx a[1],out[15]; -rz(-pi/32768) out[15]; -cx a[1],out[15]; -rz(pi/32768) out[15]; -cx b[0],a[1]; -rz(-pi/2) a[1]; -cx a[1],out[0]; -rz(pi/2) out[0]; -cx a[1],out[0]; -rz(-pi/2) out[0]; -cx b[0],a[1]; -rz(pi/2) a[1]; -cx a[1],out[0]; -rz(-pi/2) out[0]; -cx a[1],out[0]; -rz(pi/2) out[0]; -rz(pi/4) b[0]; -cx b[0],out[1]; -rz(-pi/4) out[1]; -cx b[0],out[1]; -rz(pi/4) out[1]; -cx b[0],a[1]; -rz(-pi/4) a[1]; -cx a[1],out[1]; -rz(pi/4) out[1]; -cx a[1],out[1]; -rz(-pi/4) out[1]; -cx b[0],a[1]; -rz(pi/4) a[1]; -cx a[1],out[1]; -rz(-pi/4) out[1]; -cx a[1],out[1]; -rz(pi/4) out[1]; -rz(pi/8) b[0]; -cx b[0],out[2]; -rz(-pi/8) out[2]; -cx b[0],out[2]; -rz(pi/8) out[2]; -cx b[0],a[1]; -rz(-pi/8) a[1]; -cx a[1],out[2]; -rz(pi/8) out[2]; -cx a[1],out[2]; -rz(-pi/8) out[2]; -cx b[0],a[1]; -rz(pi/8) a[1]; -cx a[1],out[2]; -rz(-pi/8) out[2]; -cx a[1],out[2]; -rz(pi/8) out[2]; -rz(pi/16) b[0]; -cx b[0],out[3]; -rz(-pi/16) out[3]; -cx b[0],out[3]; -rz(pi/16) out[3]; -cx b[0],a[1]; -rz(-pi/16) a[1]; -cx a[1],out[3]; -rz(pi/16) out[3]; -cx a[1],out[3]; -rz(-pi/16) out[3]; -cx b[0],a[1]; -rz(pi/16) a[1]; -cx a[1],out[3]; -rz(-pi/16) out[3]; -cx a[1],out[3]; -rz(pi/16) out[3]; -rz(pi/32) b[0]; -cx b[0],out[4]; -rz(-pi/32) out[4]; -cx b[0],out[4]; -rz(pi/32) out[4]; -cx b[0],a[1]; -rz(-pi/32) a[1]; -cx a[1],out[4]; -rz(pi/32) out[4]; -cx a[1],out[4]; -rz(-pi/32) out[4]; -cx b[0],a[1]; -rz(pi/32) a[1]; -cx a[1],out[4]; -rz(-pi/32) out[4]; -cx a[1],out[4]; -rz(pi/32) out[4]; -rz(pi/64) b[0]; -cx b[0],out[5]; -rz(-pi/64) out[5]; -cx b[0],out[5]; -rz(pi/64) out[5]; -cx b[0],a[1]; -rz(-pi/64) a[1]; -cx a[1],out[5]; -rz(pi/64) out[5]; -cx a[1],out[5]; -rz(-pi/64) out[5]; -cx b[0],a[1]; -rz(pi/64) a[1]; -cx a[1],out[5]; -rz(-pi/64) out[5]; -cx a[1],out[5]; -rz(pi/64) out[5]; -rz(pi/128) b[0]; -cx b[0],out[6]; -rz(-pi/128) out[6]; -cx b[0],out[6]; -rz(pi/128) out[6]; -cx b[0],a[1]; -rz(-pi/128) a[1]; -cx a[1],out[6]; -rz(pi/128) out[6]; -cx a[1],out[6]; -rz(-pi/128) out[6]; -cx b[0],a[1]; -rz(pi/128) a[1]; -cx a[1],out[6]; -rz(-pi/128) out[6]; -cx a[1],out[6]; -rz(pi/128) out[6]; -rz(pi/256) b[0]; -cx b[0],out[7]; -rz(-pi/256) out[7]; -cx b[0],out[7]; -rz(pi/256) out[7]; -cx b[0],a[1]; -rz(-pi/256) a[1]; -cx a[1],out[7]; -rz(pi/256) out[7]; -cx a[1],out[7]; -rz(-pi/256) out[7]; -cx b[0],a[1]; -rz(pi/256) a[1]; -cx a[1],out[7]; -rz(-pi/256) out[7]; -cx a[1],out[7]; -rz(pi/256) out[7]; -rz(pi/512) b[0]; -cx b[0],out[8]; -rz(-pi/512) out[8]; -cx b[0],out[8]; -rz(pi/512) out[8]; -cx b[0],a[1]; -rz(-pi/512) a[1]; -cx a[1],out[8]; -rz(pi/512) out[8]; -cx a[1],out[8]; -rz(-pi/512) out[8]; -cx b[0],a[1]; -rz(pi/512) a[1]; -cx a[1],out[8]; -rz(-pi/512) out[8]; -cx a[1],out[8]; -rz(pi/512) out[8]; -rz(pi/1024) b[0]; -cx b[0],out[9]; -rz(-pi/1024) out[9]; -cx b[0],out[9]; -rz(pi/1024) out[9]; -cx b[0],a[1]; -rz(-pi/1024) a[1]; -cx a[1],out[9]; -rz(pi/1024) out[9]; -cx a[1],out[9]; -rz(-pi/1024) out[9]; -cx b[0],a[1]; -rz(pi/1024) a[1]; -cx a[1],out[9]; -rz(-pi/1024) out[9]; -cx a[1],out[9]; -rz(pi/1024) out[9]; -rz(pi/2048) b[0]; -cx b[0],out[10]; -rz(-pi/2048) out[10]; -cx b[0],out[10]; -rz(pi/2048) out[10]; -cx b[0],a[1]; -rz(-pi/2048) a[1]; -cx a[1],out[10]; -rz(pi/2048) out[10]; -cx a[1],out[10]; -rz(-pi/2048) out[10]; -cx b[0],a[1]; -rz(pi/2048) a[1]; -cx a[1],out[10]; -rz(-pi/2048) out[10]; -cx a[1],out[10]; -rz(pi/2048) out[10]; -rz(pi/4096) b[0]; -cx b[0],out[11]; -rz(-pi/4096) out[11]; -cx b[0],out[11]; -rz(pi/4096) out[11]; -cx b[0],a[1]; -rz(-pi/4096) a[1]; -cx a[1],out[11]; -rz(pi/4096) out[11]; -cx a[1],out[11]; -rz(-pi/4096) out[11]; -cx b[0],a[1]; -rz(pi/4096) a[1]; -cx a[1],out[11]; -rz(-pi/4096) out[11]; -cx a[1],out[11]; -rz(pi/4096) out[11]; -rz(pi/8192) b[0]; -cx b[0],out[12]; -rz(-pi/8192) out[12]; -cx b[0],out[12]; -rz(pi/8192) out[12]; -cx b[0],a[1]; -rz(-pi/8192) a[1]; -cx a[1],out[12]; -rz(pi/8192) out[12]; -cx a[1],out[12]; -rz(-pi/8192) out[12]; -cx b[0],a[1]; -rz(pi/8192) a[1]; -cx a[1],out[12]; -rz(-pi/8192) out[12]; -cx a[1],out[12]; -rz(pi/8192) out[12]; -rz(pi/16384) b[0]; -cx b[0],out[13]; -rz(-pi/16384) out[13]; -cx b[0],out[13]; -rz(pi/16384) out[13]; -cx b[0],a[1]; -rz(-pi/16384) a[1]; -cx a[1],out[13]; -rz(pi/16384) out[13]; -cx a[1],out[13]; -rz(-pi/16384) out[13]; -cx b[0],a[1]; -rz(pi/16384) a[1]; -cx a[1],out[13]; -rz(-pi/16384) out[13]; -cx a[1],out[13]; -rz(pi/16384) out[13]; -rz(pi/32768) b[0]; -cx b[0],out[14]; -rz(-pi/32768) out[14]; -cx b[0],out[14]; -rz(pi/32768) out[14]; -cx b[0],a[1]; -rz(-pi/32768) a[1]; -cx a[1],out[14]; -rz(pi/32768) out[14]; -cx a[1],out[14]; -rz(-pi/32768) out[14]; -cx b[0],a[1]; -rz(pi/32768) a[1]; -cx a[1],out[14]; -rz(-pi/32768) out[14]; -cx a[1],out[14]; -rz(pi/32768) out[14]; -rz(pi/65536) b[0]; -cx b[0],out[15]; -rz(-pi/65536) out[15]; -cx b[0],out[15]; -rz(pi/65536) out[15]; -cx b[0],a[1]; -rz(-pi/65536) a[1]; -cx a[1],out[15]; -rz(pi/65536) out[15]; -cx a[1],out[15]; -rz(-pi/65536) out[15]; -cx b[0],a[1]; -rz(pi/65536) a[1]; -cx a[1],out[15]; -rz(-pi/65536) out[15]; -cx a[1],out[15]; -rz(pi/65536) out[15]; -rz(pi/4) b[0]; -rz(pi/2) b[1]; -rz(pi) b[2]; -rz(2*pi) b[3]; -rz(4*pi) b[4]; -rz(8*pi) b[5]; -rz(16*pi) b[6]; -rz(32*pi) b[7]; -cx b[7],out[0]; -rz(-32*pi) out[0]; -cx b[7],out[0]; -rz(32*pi) out[0]; -cx b[7],a[0]; -rz(-32*pi) a[0]; -cx a[0],out[0]; -rz(32*pi) out[0]; -cx a[0],out[0]; -rz(-32*pi) out[0]; -cx b[7],a[0]; -rz(32*pi) a[0]; -cx a[0],out[0]; -rz(-32*pi) out[0]; -cx a[0],out[0]; -rz(32*pi) out[0]; -cx b[6],out[0]; -rz(-16*pi) out[0]; -cx b[6],out[0]; -rz(16*pi) out[0]; -rz(16*pi) b[7]; -cx b[7],out[1]; -rz(-16*pi) out[1]; -cx b[7],out[1]; -rz(16*pi) out[1]; -cx b[7],a[0]; -rz(-16*pi) a[0]; -cx a[0],out[1]; -rz(16*pi) out[1]; -cx a[0],out[1]; -rz(-16*pi) out[1]; -cx b[7],a[0]; -rz(16*pi) a[0]; -cx a[0],out[1]; -rz(-16*pi) out[1]; -cx a[0],out[1]; -rz(16*pi) out[1]; -rz(8*pi) b[7]; -cx b[7],out[2]; -rz(-8*pi) out[2]; -cx b[7],out[2]; -rz(8*pi) out[2]; -cx b[7],a[0]; -rz(-8*pi) a[0]; -cx a[0],out[2]; -rz(8*pi) out[2]; -cx a[0],out[2]; -rz(-8*pi) out[2]; -cx b[7],a[0]; -rz(8*pi) a[0]; -cx a[0],out[2]; -rz(-8*pi) out[2]; -cx a[0],out[2]; -rz(8*pi) out[2]; -rz(4*pi) b[7]; -cx b[7],out[3]; -rz(-4*pi) out[3]; -cx b[7],out[3]; -rz(4*pi) out[3]; -cx b[7],a[0]; -rz(-4*pi) a[0]; -cx a[0],out[3]; -rz(4*pi) out[3]; -cx a[0],out[3]; -rz(-4*pi) out[3]; -cx b[7],a[0]; -rz(4*pi) a[0]; -cx a[0],out[3]; -rz(-4*pi) out[3]; -cx a[0],out[3]; -rz(4*pi) out[3]; -rz(2*pi) b[7]; -cx b[7],out[4]; -rz(-2*pi) out[4]; -cx b[7],out[4]; -rz(2*pi) out[4]; -cx b[7],a[0]; -rz(-2*pi) a[0]; -cx a[0],out[4]; -rz(2*pi) out[4]; -cx a[0],out[4]; -rz(-2*pi) out[4]; -cx b[7],a[0]; -rz(2*pi) a[0]; -cx a[0],out[4]; -rz(-2*pi) out[4]; -cx a[0],out[4]; -rz(2*pi) out[4]; -rz(pi) b[7]; -cx b[7],out[5]; -rz(-pi) out[5]; -cx b[7],out[5]; -rz(pi) out[5]; -cx b[7],a[0]; -rz(-pi) a[0]; -cx a[0],out[5]; -rz(pi) out[5]; -cx a[0],out[5]; -rz(-pi) out[5]; -cx b[7],a[0]; -rz(pi) a[0]; -cx a[0],out[5]; -rz(-pi) out[5]; -cx a[0],out[5]; -rz(pi) out[5]; -rz(pi/2) b[7]; -cx b[7],out[6]; -rz(-pi/2) out[6]; -cx b[7],out[6]; -rz(pi/2) out[6]; -cx b[7],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[6]; -rz(pi/2) out[6]; -cx a[0],out[6]; -rz(-pi/2) out[6]; -cx b[7],a[0]; -rz(pi/2) a[0]; -cx a[0],out[6]; -rz(-pi/2) out[6]; -cx a[0],out[6]; -rz(pi/2) out[6]; -rz(pi/4) b[7]; -cx b[7],out[7]; -rz(-pi/4) out[7]; -cx b[7],out[7]; -rz(pi/4) out[7]; -cx b[7],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[7]; -rz(pi/4) out[7]; -cx a[0],out[7]; -rz(-pi/4) out[7]; -cx b[7],a[0]; -rz(pi/4) a[0]; -cx a[0],out[7]; -rz(-pi/4) out[7]; -cx a[0],out[7]; -rz(pi/4) out[7]; -rz(pi/8) b[7]; -cx b[7],out[8]; -rz(-pi/8) out[8]; -cx b[7],out[8]; -rz(pi/8) out[8]; -cx b[7],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[8]; -rz(pi/8) out[8]; -cx a[0],out[8]; -rz(-pi/8) out[8]; -cx b[7],a[0]; -rz(pi/8) a[0]; -cx a[0],out[8]; -rz(-pi/8) out[8]; -cx a[0],out[8]; -rz(pi/8) out[8]; -rz(pi/16) b[7]; -cx b[7],out[9]; -rz(-pi/16) out[9]; -cx b[7],out[9]; -rz(pi/16) out[9]; -cx b[7],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[9]; -rz(pi/16) out[9]; -cx a[0],out[9]; -rz(-pi/16) out[9]; -cx b[7],a[0]; -rz(pi/16) a[0]; -cx a[0],out[9]; -rz(-pi/16) out[9]; -cx a[0],out[9]; -rz(pi/16) out[9]; -rz(pi/32) b[7]; -cx b[7],out[10]; -rz(-pi/32) out[10]; -cx b[7],out[10]; -rz(pi/32) out[10]; -cx b[7],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[10]; -rz(pi/32) out[10]; -cx a[0],out[10]; -rz(-pi/32) out[10]; -cx b[7],a[0]; -rz(pi/32) a[0]; -cx a[0],out[10]; -rz(-pi/32) out[10]; -cx a[0],out[10]; -rz(pi/32) out[10]; -rz(pi/64) b[7]; -cx b[7],out[11]; -rz(-pi/64) out[11]; -cx b[7],out[11]; -rz(pi/64) out[11]; -cx b[7],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[11]; -rz(pi/64) out[11]; -cx a[0],out[11]; -rz(-pi/64) out[11]; -cx b[7],a[0]; -rz(pi/64) a[0]; -cx a[0],out[11]; -rz(-pi/64) out[11]; -cx a[0],out[11]; -rz(pi/64) out[11]; -rz(pi/128) b[7]; -cx b[7],out[12]; -rz(-pi/128) out[12]; -cx b[7],out[12]; -rz(pi/128) out[12]; -cx b[7],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[12]; -rz(pi/128) out[12]; -cx a[0],out[12]; -rz(-pi/128) out[12]; -cx b[7],a[0]; -rz(pi/128) a[0]; -cx a[0],out[12]; -rz(-pi/128) out[12]; -cx a[0],out[12]; -rz(pi/128) out[12]; -rz(pi/256) b[7]; -cx b[7],out[13]; -rz(-pi/256) out[13]; -cx b[7],out[13]; -rz(pi/256) out[13]; -cx b[7],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[13]; -rz(pi/256) out[13]; -cx a[0],out[13]; -rz(-pi/256) out[13]; -cx b[7],a[0]; -rz(pi/256) a[0]; -cx a[0],out[13]; -rz(-pi/256) out[13]; -cx a[0],out[13]; -rz(pi/256) out[13]; -rz(pi/512) b[7]; -cx b[7],out[14]; -rz(-pi/512) out[14]; -cx b[7],out[14]; -rz(pi/512) out[14]; -cx b[7],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[14]; -rz(pi/512) out[14]; -cx a[0],out[14]; -rz(-pi/512) out[14]; -cx b[7],a[0]; -rz(pi/512) a[0]; -cx a[0],out[14]; -rz(-pi/512) out[14]; -cx a[0],out[14]; -rz(pi/512) out[14]; -rz(pi/1024) b[7]; -cx b[7],out[15]; -rz(-pi/1024) out[15]; -cx b[7],out[15]; -rz(pi/1024) out[15]; -cx b[7],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[15]; -rz(pi/1024) out[15]; -cx a[0],out[15]; -rz(-pi/1024) out[15]; -cx b[7],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[15]; -rz(-pi/1024) out[15]; -cx a[0],out[15]; -rz(pi/1024) out[15]; -cx b[6],a[0]; -rz(-16*pi) a[0]; -cx a[0],out[0]; -rz(16*pi) out[0]; -cx a[0],out[0]; -rz(-16*pi) out[0]; -cx b[6],a[0]; -rz(16*pi) a[0]; -cx a[0],out[0]; -rz(-16*pi) out[0]; -cx a[0],out[0]; -rz(16*pi) out[0]; -cx b[5],out[0]; -rz(-8*pi) out[0]; -cx b[5],out[0]; -rz(8*pi) out[0]; -rz(8*pi) b[6]; -cx b[6],out[1]; -rz(-8*pi) out[1]; -cx b[6],out[1]; -rz(8*pi) out[1]; -cx b[6],a[0]; -rz(-8*pi) a[0]; -cx a[0],out[1]; -rz(8*pi) out[1]; -cx a[0],out[1]; -rz(-8*pi) out[1]; -cx b[6],a[0]; -rz(8*pi) a[0]; -cx a[0],out[1]; -rz(-8*pi) out[1]; -cx a[0],out[1]; -rz(8*pi) out[1]; -rz(4*pi) b[6]; -cx b[6],out[2]; -rz(-4*pi) out[2]; -cx b[6],out[2]; -rz(4*pi) out[2]; -cx b[6],a[0]; -rz(-4*pi) a[0]; -cx a[0],out[2]; -rz(4*pi) out[2]; -cx a[0],out[2]; -rz(-4*pi) out[2]; -cx b[6],a[0]; -rz(4*pi) a[0]; -cx a[0],out[2]; -rz(-4*pi) out[2]; -cx a[0],out[2]; -rz(4*pi) out[2]; -rz(2*pi) b[6]; -cx b[6],out[3]; -rz(-2*pi) out[3]; -cx b[6],out[3]; -rz(2*pi) out[3]; -cx b[6],a[0]; -rz(-2*pi) a[0]; -cx a[0],out[3]; -rz(2*pi) out[3]; -cx a[0],out[3]; -rz(-2*pi) out[3]; -cx b[6],a[0]; -rz(2*pi) a[0]; -cx a[0],out[3]; -rz(-2*pi) out[3]; -cx a[0],out[3]; -rz(2*pi) out[3]; -rz(pi) b[6]; -cx b[6],out[4]; -rz(-pi) out[4]; -cx b[6],out[4]; -rz(pi) out[4]; -cx b[6],a[0]; -rz(-pi) a[0]; -cx a[0],out[4]; -rz(pi) out[4]; -cx a[0],out[4]; -rz(-pi) out[4]; -cx b[6],a[0]; -rz(pi) a[0]; -cx a[0],out[4]; -rz(-pi) out[4]; -cx a[0],out[4]; -rz(pi) out[4]; -rz(pi/2) b[6]; -cx b[6],out[5]; -rz(-pi/2) out[5]; -cx b[6],out[5]; -rz(pi/2) out[5]; -cx b[6],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[5]; -rz(pi/2) out[5]; -cx a[0],out[5]; -rz(-pi/2) out[5]; -cx b[6],a[0]; -rz(pi/2) a[0]; -cx a[0],out[5]; -rz(-pi/2) out[5]; -cx a[0],out[5]; -rz(pi/2) out[5]; -rz(pi/4) b[6]; -cx b[6],out[6]; -rz(-pi/4) out[6]; -cx b[6],out[6]; -rz(pi/4) out[6]; -cx b[6],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[6]; -rz(pi/4) out[6]; -cx a[0],out[6]; -rz(-pi/4) out[6]; -cx b[6],a[0]; -rz(pi/4) a[0]; -cx a[0],out[6]; -rz(-pi/4) out[6]; -cx a[0],out[6]; -rz(pi/4) out[6]; -rz(pi/8) b[6]; -cx b[6],out[7]; -rz(-pi/8) out[7]; -cx b[6],out[7]; -rz(pi/8) out[7]; -cx b[6],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[7]; -rz(pi/8) out[7]; -cx a[0],out[7]; -rz(-pi/8) out[7]; -cx b[6],a[0]; -rz(pi/8) a[0]; -cx a[0],out[7]; -rz(-pi/8) out[7]; -cx a[0],out[7]; -rz(pi/8) out[7]; -rz(pi/16) b[6]; -cx b[6],out[8]; -rz(-pi/16) out[8]; -cx b[6],out[8]; -rz(pi/16) out[8]; -cx b[6],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[8]; -rz(pi/16) out[8]; -cx a[0],out[8]; -rz(-pi/16) out[8]; -cx b[6],a[0]; -rz(pi/16) a[0]; -cx a[0],out[8]; -rz(-pi/16) out[8]; -cx a[0],out[8]; -rz(pi/16) out[8]; -rz(pi/32) b[6]; -cx b[6],out[9]; -rz(-pi/32) out[9]; -cx b[6],out[9]; -rz(pi/32) out[9]; -cx b[6],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[9]; -rz(pi/32) out[9]; -cx a[0],out[9]; -rz(-pi/32) out[9]; -cx b[6],a[0]; -rz(pi/32) a[0]; -cx a[0],out[9]; -rz(-pi/32) out[9]; -cx a[0],out[9]; -rz(pi/32) out[9]; -rz(pi/64) b[6]; -cx b[6],out[10]; -rz(-pi/64) out[10]; -cx b[6],out[10]; -rz(pi/64) out[10]; -cx b[6],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[10]; -rz(pi/64) out[10]; -cx a[0],out[10]; -rz(-pi/64) out[10]; -cx b[6],a[0]; -rz(pi/64) a[0]; -cx a[0],out[10]; -rz(-pi/64) out[10]; -cx a[0],out[10]; -rz(pi/64) out[10]; -rz(pi/128) b[6]; -cx b[6],out[11]; -rz(-pi/128) out[11]; -cx b[6],out[11]; -rz(pi/128) out[11]; -cx b[6],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[11]; -rz(pi/128) out[11]; -cx a[0],out[11]; -rz(-pi/128) out[11]; -cx b[6],a[0]; -rz(pi/128) a[0]; -cx a[0],out[11]; -rz(-pi/128) out[11]; -cx a[0],out[11]; -rz(pi/128) out[11]; -rz(pi/256) b[6]; -cx b[6],out[12]; -rz(-pi/256) out[12]; -cx b[6],out[12]; -rz(pi/256) out[12]; -cx b[6],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[12]; -rz(pi/256) out[12]; -cx a[0],out[12]; -rz(-pi/256) out[12]; -cx b[6],a[0]; -rz(pi/256) a[0]; -cx a[0],out[12]; -rz(-pi/256) out[12]; -cx a[0],out[12]; -rz(pi/256) out[12]; -rz(pi/512) b[6]; -cx b[6],out[13]; -rz(-pi/512) out[13]; -cx b[6],out[13]; -rz(pi/512) out[13]; -cx b[6],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[13]; -rz(pi/512) out[13]; -cx a[0],out[13]; -rz(-pi/512) out[13]; -cx b[6],a[0]; -rz(pi/512) a[0]; -cx a[0],out[13]; -rz(-pi/512) out[13]; -cx a[0],out[13]; -rz(pi/512) out[13]; -rz(pi/1024) b[6]; -cx b[6],out[14]; -rz(-pi/1024) out[14]; -cx b[6],out[14]; -rz(pi/1024) out[14]; -cx b[6],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[14]; -rz(pi/1024) out[14]; -cx a[0],out[14]; -rz(-pi/1024) out[14]; -cx b[6],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[14]; -rz(-pi/1024) out[14]; -cx a[0],out[14]; -rz(pi/1024) out[14]; -rz(pi/2048) b[6]; -cx b[6],out[15]; -rz(-pi/2048) out[15]; -cx b[6],out[15]; -rz(pi/2048) out[15]; -cx b[6],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[15]; -rz(pi/2048) out[15]; -cx a[0],out[15]; -rz(-pi/2048) out[15]; -cx b[6],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[15]; -rz(-pi/2048) out[15]; -cx a[0],out[15]; -rz(pi/2048) out[15]; -cx b[5],a[0]; -rz(-8*pi) a[0]; -cx a[0],out[0]; -rz(8*pi) out[0]; -cx a[0],out[0]; -rz(-8*pi) out[0]; -cx b[5],a[0]; -rz(8*pi) a[0]; -cx a[0],out[0]; -rz(-8*pi) out[0]; -cx a[0],out[0]; -rz(8*pi) out[0]; -cx b[4],out[0]; -rz(-4*pi) out[0]; -cx b[4],out[0]; -rz(4*pi) out[0]; -rz(4*pi) b[5]; -cx b[5],out[1]; -rz(-4*pi) out[1]; -cx b[5],out[1]; -rz(4*pi) out[1]; -cx b[5],a[0]; -rz(-4*pi) a[0]; -cx a[0],out[1]; -rz(4*pi) out[1]; -cx a[0],out[1]; -rz(-4*pi) out[1]; -cx b[5],a[0]; -rz(4*pi) a[0]; -cx a[0],out[1]; -rz(-4*pi) out[1]; -cx a[0],out[1]; -rz(4*pi) out[1]; -rz(2*pi) b[5]; -cx b[5],out[2]; -rz(-2*pi) out[2]; -cx b[5],out[2]; -rz(2*pi) out[2]; -cx b[5],a[0]; -rz(-2*pi) a[0]; -cx a[0],out[2]; -rz(2*pi) out[2]; -cx a[0],out[2]; -rz(-2*pi) out[2]; -cx b[5],a[0]; -rz(2*pi) a[0]; -cx a[0],out[2]; -rz(-2*pi) out[2]; -cx a[0],out[2]; -rz(2*pi) out[2]; -rz(pi) b[5]; -cx b[5],out[3]; -rz(-pi) out[3]; -cx b[5],out[3]; -rz(pi) out[3]; -cx b[5],a[0]; -rz(-pi) a[0]; -cx a[0],out[3]; -rz(pi) out[3]; -cx a[0],out[3]; -rz(-pi) out[3]; -cx b[5],a[0]; -rz(pi) a[0]; -cx a[0],out[3]; -rz(-pi) out[3]; -cx a[0],out[3]; -rz(pi) out[3]; -rz(pi/2) b[5]; -cx b[5],out[4]; -rz(-pi/2) out[4]; -cx b[5],out[4]; -rz(pi/2) out[4]; -cx b[5],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[4]; -rz(pi/2) out[4]; -cx a[0],out[4]; -rz(-pi/2) out[4]; -cx b[5],a[0]; -rz(pi/2) a[0]; -cx a[0],out[4]; -rz(-pi/2) out[4]; -cx a[0],out[4]; -rz(pi/2) out[4]; -rz(pi/4) b[5]; -cx b[5],out[5]; -rz(-pi/4) out[5]; -cx b[5],out[5]; -rz(pi/4) out[5]; -cx b[5],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[5]; -rz(pi/4) out[5]; -cx a[0],out[5]; -rz(-pi/4) out[5]; -cx b[5],a[0]; -rz(pi/4) a[0]; -cx a[0],out[5]; -rz(-pi/4) out[5]; -cx a[0],out[5]; -rz(pi/4) out[5]; -rz(pi/8) b[5]; -cx b[5],out[6]; -rz(-pi/8) out[6]; -cx b[5],out[6]; -rz(pi/8) out[6]; -cx b[5],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[6]; -rz(pi/8) out[6]; -cx a[0],out[6]; -rz(-pi/8) out[6]; -cx b[5],a[0]; -rz(pi/8) a[0]; -cx a[0],out[6]; -rz(-pi/8) out[6]; -cx a[0],out[6]; -rz(pi/8) out[6]; -rz(pi/16) b[5]; -cx b[5],out[7]; -rz(-pi/16) out[7]; -cx b[5],out[7]; -rz(pi/16) out[7]; -cx b[5],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[7]; -rz(pi/16) out[7]; -cx a[0],out[7]; -rz(-pi/16) out[7]; -cx b[5],a[0]; -rz(pi/16) a[0]; -cx a[0],out[7]; -rz(-pi/16) out[7]; -cx a[0],out[7]; -rz(pi/16) out[7]; -rz(pi/32) b[5]; -cx b[5],out[8]; -rz(-pi/32) out[8]; -cx b[5],out[8]; -rz(pi/32) out[8]; -cx b[5],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[8]; -rz(pi/32) out[8]; -cx a[0],out[8]; -rz(-pi/32) out[8]; -cx b[5],a[0]; -rz(pi/32) a[0]; -cx a[0],out[8]; -rz(-pi/32) out[8]; -cx a[0],out[8]; -rz(pi/32) out[8]; -rz(pi/64) b[5]; -cx b[5],out[9]; -rz(-pi/64) out[9]; -cx b[5],out[9]; -rz(pi/64) out[9]; -cx b[5],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[9]; -rz(pi/64) out[9]; -cx a[0],out[9]; -rz(-pi/64) out[9]; -cx b[5],a[0]; -rz(pi/64) a[0]; -cx a[0],out[9]; -rz(-pi/64) out[9]; -cx a[0],out[9]; -rz(pi/64) out[9]; -rz(pi/128) b[5]; -cx b[5],out[10]; -rz(-pi/128) out[10]; -cx b[5],out[10]; -rz(pi/128) out[10]; -cx b[5],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[10]; -rz(pi/128) out[10]; -cx a[0],out[10]; -rz(-pi/128) out[10]; -cx b[5],a[0]; -rz(pi/128) a[0]; -cx a[0],out[10]; -rz(-pi/128) out[10]; -cx a[0],out[10]; -rz(pi/128) out[10]; -rz(pi/256) b[5]; -cx b[5],out[11]; -rz(-pi/256) out[11]; -cx b[5],out[11]; -rz(pi/256) out[11]; -cx b[5],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[11]; -rz(pi/256) out[11]; -cx a[0],out[11]; -rz(-pi/256) out[11]; -cx b[5],a[0]; -rz(pi/256) a[0]; -cx a[0],out[11]; -rz(-pi/256) out[11]; -cx a[0],out[11]; -rz(pi/256) out[11]; -rz(pi/512) b[5]; -cx b[5],out[12]; -rz(-pi/512) out[12]; -cx b[5],out[12]; -rz(pi/512) out[12]; -cx b[5],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[12]; -rz(pi/512) out[12]; -cx a[0],out[12]; -rz(-pi/512) out[12]; -cx b[5],a[0]; -rz(pi/512) a[0]; -cx a[0],out[12]; -rz(-pi/512) out[12]; -cx a[0],out[12]; -rz(pi/512) out[12]; -rz(pi/1024) b[5]; -cx b[5],out[13]; -rz(-pi/1024) out[13]; -cx b[5],out[13]; -rz(pi/1024) out[13]; -cx b[5],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[13]; -rz(pi/1024) out[13]; -cx a[0],out[13]; -rz(-pi/1024) out[13]; -cx b[5],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[13]; -rz(-pi/1024) out[13]; -cx a[0],out[13]; -rz(pi/1024) out[13]; -rz(pi/2048) b[5]; -cx b[5],out[14]; -rz(-pi/2048) out[14]; -cx b[5],out[14]; -rz(pi/2048) out[14]; -cx b[5],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[14]; -rz(pi/2048) out[14]; -cx a[0],out[14]; -rz(-pi/2048) out[14]; -cx b[5],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[14]; -rz(-pi/2048) out[14]; -cx a[0],out[14]; -rz(pi/2048) out[14]; -rz(pi/4096) b[5]; -cx b[5],out[15]; -rz(-pi/4096) out[15]; -cx b[5],out[15]; -rz(pi/4096) out[15]; -cx b[5],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[15]; -rz(pi/4096) out[15]; -cx a[0],out[15]; -rz(-pi/4096) out[15]; -cx b[5],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[15]; -rz(-pi/4096) out[15]; -cx a[0],out[15]; -rz(pi/4096) out[15]; -cx b[4],a[0]; -rz(-4*pi) a[0]; -cx a[0],out[0]; -rz(4*pi) out[0]; -cx a[0],out[0]; -rz(-4*pi) out[0]; -cx b[4],a[0]; -rz(4*pi) a[0]; -cx a[0],out[0]; -rz(-4*pi) out[0]; -cx a[0],out[0]; -rz(4*pi) out[0]; -cx b[3],out[0]; -rz(-2*pi) out[0]; -cx b[3],out[0]; -rz(2*pi) out[0]; -rz(2*pi) b[4]; -cx b[4],out[1]; -rz(-2*pi) out[1]; -cx b[4],out[1]; -rz(2*pi) out[1]; -cx b[4],a[0]; -rz(-2*pi) a[0]; -cx a[0],out[1]; -rz(2*pi) out[1]; -cx a[0],out[1]; -rz(-2*pi) out[1]; -cx b[4],a[0]; -rz(2*pi) a[0]; -cx a[0],out[1]; -rz(-2*pi) out[1]; -cx a[0],out[1]; -rz(2*pi) out[1]; -rz(pi) b[4]; -cx b[4],out[2]; -rz(-pi) out[2]; -cx b[4],out[2]; -rz(pi) out[2]; -cx b[4],a[0]; -rz(-pi) a[0]; -cx a[0],out[2]; -rz(pi) out[2]; -cx a[0],out[2]; -rz(-pi) out[2]; -cx b[4],a[0]; -rz(pi) a[0]; -cx a[0],out[2]; -rz(-pi) out[2]; -cx a[0],out[2]; -rz(pi) out[2]; -rz(pi/2) b[4]; -cx b[4],out[3]; -rz(-pi/2) out[3]; -cx b[4],out[3]; -rz(pi/2) out[3]; -cx b[4],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[3]; -rz(pi/2) out[3]; -cx a[0],out[3]; -rz(-pi/2) out[3]; -cx b[4],a[0]; -rz(pi/2) a[0]; -cx a[0],out[3]; -rz(-pi/2) out[3]; -cx a[0],out[3]; -rz(pi/2) out[3]; -rz(pi/4) b[4]; -cx b[4],out[4]; -rz(-pi/4) out[4]; -cx b[4],out[4]; -rz(pi/4) out[4]; -cx b[4],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[4]; -rz(pi/4) out[4]; -cx a[0],out[4]; -rz(-pi/4) out[4]; -cx b[4],a[0]; -rz(pi/4) a[0]; -cx a[0],out[4]; -rz(-pi/4) out[4]; -cx a[0],out[4]; -rz(pi/4) out[4]; -rz(pi/8) b[4]; -cx b[4],out[5]; -rz(-pi/8) out[5]; -cx b[4],out[5]; -rz(pi/8) out[5]; -cx b[4],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[5]; -rz(pi/8) out[5]; -cx a[0],out[5]; -rz(-pi/8) out[5]; -cx b[4],a[0]; -rz(pi/8) a[0]; -cx a[0],out[5]; -rz(-pi/8) out[5]; -cx a[0],out[5]; -rz(pi/8) out[5]; -rz(pi/16) b[4]; -cx b[4],out[6]; -rz(-pi/16) out[6]; -cx b[4],out[6]; -rz(pi/16) out[6]; -cx b[4],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[6]; -rz(pi/16) out[6]; -cx a[0],out[6]; -rz(-pi/16) out[6]; -cx b[4],a[0]; -rz(pi/16) a[0]; -cx a[0],out[6]; -rz(-pi/16) out[6]; -cx a[0],out[6]; -rz(pi/16) out[6]; -rz(pi/32) b[4]; -cx b[4],out[7]; -rz(-pi/32) out[7]; -cx b[4],out[7]; -rz(pi/32) out[7]; -cx b[4],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[7]; -rz(pi/32) out[7]; -cx a[0],out[7]; -rz(-pi/32) out[7]; -cx b[4],a[0]; -rz(pi/32) a[0]; -cx a[0],out[7]; -rz(-pi/32) out[7]; -cx a[0],out[7]; -rz(pi/32) out[7]; -rz(pi/64) b[4]; -cx b[4],out[8]; -rz(-pi/64) out[8]; -cx b[4],out[8]; -rz(pi/64) out[8]; -cx b[4],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[8]; -rz(pi/64) out[8]; -cx a[0],out[8]; -rz(-pi/64) out[8]; -cx b[4],a[0]; -rz(pi/64) a[0]; -cx a[0],out[8]; -rz(-pi/64) out[8]; -cx a[0],out[8]; -rz(pi/64) out[8]; -rz(pi/128) b[4]; -cx b[4],out[9]; -rz(-pi/128) out[9]; -cx b[4],out[9]; -rz(pi/128) out[9]; -cx b[4],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[9]; -rz(pi/128) out[9]; -cx a[0],out[9]; -rz(-pi/128) out[9]; -cx b[4],a[0]; -rz(pi/128) a[0]; -cx a[0],out[9]; -rz(-pi/128) out[9]; -cx a[0],out[9]; -rz(pi/128) out[9]; -rz(pi/256) b[4]; -cx b[4],out[10]; -rz(-pi/256) out[10]; -cx b[4],out[10]; -rz(pi/256) out[10]; -cx b[4],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[10]; -rz(pi/256) out[10]; -cx a[0],out[10]; -rz(-pi/256) out[10]; -cx b[4],a[0]; -rz(pi/256) a[0]; -cx a[0],out[10]; -rz(-pi/256) out[10]; -cx a[0],out[10]; -rz(pi/256) out[10]; -rz(pi/512) b[4]; -cx b[4],out[11]; -rz(-pi/512) out[11]; -cx b[4],out[11]; -rz(pi/512) out[11]; -cx b[4],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[11]; -rz(pi/512) out[11]; -cx a[0],out[11]; -rz(-pi/512) out[11]; -cx b[4],a[0]; -rz(pi/512) a[0]; -cx a[0],out[11]; -rz(-pi/512) out[11]; -cx a[0],out[11]; -rz(pi/512) out[11]; -rz(pi/1024) b[4]; -cx b[4],out[12]; -rz(-pi/1024) out[12]; -cx b[4],out[12]; -rz(pi/1024) out[12]; -cx b[4],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[12]; -rz(pi/1024) out[12]; -cx a[0],out[12]; -rz(-pi/1024) out[12]; -cx b[4],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[12]; -rz(-pi/1024) out[12]; -cx a[0],out[12]; -rz(pi/1024) out[12]; -rz(pi/2048) b[4]; -cx b[4],out[13]; -rz(-pi/2048) out[13]; -cx b[4],out[13]; -rz(pi/2048) out[13]; -cx b[4],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[13]; -rz(pi/2048) out[13]; -cx a[0],out[13]; -rz(-pi/2048) out[13]; -cx b[4],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[13]; -rz(-pi/2048) out[13]; -cx a[0],out[13]; -rz(pi/2048) out[13]; -rz(pi/4096) b[4]; -cx b[4],out[14]; -rz(-pi/4096) out[14]; -cx b[4],out[14]; -rz(pi/4096) out[14]; -cx b[4],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[14]; -rz(pi/4096) out[14]; -cx a[0],out[14]; -rz(-pi/4096) out[14]; -cx b[4],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[14]; -rz(-pi/4096) out[14]; -cx a[0],out[14]; -rz(pi/4096) out[14]; -rz(pi/8192) b[4]; -cx b[4],out[15]; -rz(-pi/8192) out[15]; -cx b[4],out[15]; -rz(pi/8192) out[15]; -cx b[4],a[0]; -rz(-pi/8192) a[0]; -cx a[0],out[15]; -rz(pi/8192) out[15]; -cx a[0],out[15]; -rz(-pi/8192) out[15]; -cx b[4],a[0]; -rz(pi/8192) a[0]; -cx a[0],out[15]; -rz(-pi/8192) out[15]; -cx a[0],out[15]; -rz(pi/8192) out[15]; -cx b[3],a[0]; -rz(-2*pi) a[0]; -cx a[0],out[0]; -rz(2*pi) out[0]; -cx a[0],out[0]; -rz(-2*pi) out[0]; -cx b[3],a[0]; -rz(2*pi) a[0]; -cx a[0],out[0]; -rz(-2*pi) out[0]; -cx a[0],out[0]; -rz(2*pi) out[0]; -cx b[2],out[0]; -rz(-pi) out[0]; -cx b[2],out[0]; -rz(pi) out[0]; -rz(pi) b[3]; -cx b[3],out[1]; -rz(-pi) out[1]; -cx b[3],out[1]; -rz(pi) out[1]; -cx b[3],a[0]; -rz(-pi) a[0]; -cx a[0],out[1]; -rz(pi) out[1]; -cx a[0],out[1]; -rz(-pi) out[1]; -cx b[3],a[0]; -rz(pi) a[0]; -cx a[0],out[1]; -rz(-pi) out[1]; -cx a[0],out[1]; -rz(pi) out[1]; -rz(pi/2) b[3]; -cx b[3],out[2]; -rz(-pi/2) out[2]; -cx b[3],out[2]; -rz(pi/2) out[2]; -cx b[3],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[2]; -rz(pi/2) out[2]; -cx a[0],out[2]; -rz(-pi/2) out[2]; -cx b[3],a[0]; -rz(pi/2) a[0]; -cx a[0],out[2]; -rz(-pi/2) out[2]; -cx a[0],out[2]; -rz(pi/2) out[2]; -rz(pi/4) b[3]; -cx b[3],out[3]; -rz(-pi/4) out[3]; -cx b[3],out[3]; -rz(pi/4) out[3]; -cx b[3],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[3]; -rz(pi/4) out[3]; -cx a[0],out[3]; -rz(-pi/4) out[3]; -cx b[3],a[0]; -rz(pi/4) a[0]; -cx a[0],out[3]; -rz(-pi/4) out[3]; -cx a[0],out[3]; -rz(pi/4) out[3]; -rz(pi/8) b[3]; -cx b[3],out[4]; -rz(-pi/8) out[4]; -cx b[3],out[4]; -rz(pi/8) out[4]; -cx b[3],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[4]; -rz(pi/8) out[4]; -cx a[0],out[4]; -rz(-pi/8) out[4]; -cx b[3],a[0]; -rz(pi/8) a[0]; -cx a[0],out[4]; -rz(-pi/8) out[4]; -cx a[0],out[4]; -rz(pi/8) out[4]; -rz(pi/16) b[3]; -cx b[3],out[5]; -rz(-pi/16) out[5]; -cx b[3],out[5]; -rz(pi/16) out[5]; -cx b[3],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[5]; -rz(pi/16) out[5]; -cx a[0],out[5]; -rz(-pi/16) out[5]; -cx b[3],a[0]; -rz(pi/16) a[0]; -cx a[0],out[5]; -rz(-pi/16) out[5]; -cx a[0],out[5]; -rz(pi/16) out[5]; -rz(pi/32) b[3]; -cx b[3],out[6]; -rz(-pi/32) out[6]; -cx b[3],out[6]; -rz(pi/32) out[6]; -cx b[3],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[6]; -rz(pi/32) out[6]; -cx a[0],out[6]; -rz(-pi/32) out[6]; -cx b[3],a[0]; -rz(pi/32) a[0]; -cx a[0],out[6]; -rz(-pi/32) out[6]; -cx a[0],out[6]; -rz(pi/32) out[6]; -rz(pi/64) b[3]; -cx b[3],out[7]; -rz(-pi/64) out[7]; -cx b[3],out[7]; -rz(pi/64) out[7]; -cx b[3],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[7]; -rz(pi/64) out[7]; -cx a[0],out[7]; -rz(-pi/64) out[7]; -cx b[3],a[0]; -rz(pi/64) a[0]; -cx a[0],out[7]; -rz(-pi/64) out[7]; -cx a[0],out[7]; -rz(pi/64) out[7]; -rz(pi/128) b[3]; -cx b[3],out[8]; -rz(-pi/128) out[8]; -cx b[3],out[8]; -rz(pi/128) out[8]; -cx b[3],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[8]; -rz(pi/128) out[8]; -cx a[0],out[8]; -rz(-pi/128) out[8]; -cx b[3],a[0]; -rz(pi/128) a[0]; -cx a[0],out[8]; -rz(-pi/128) out[8]; -cx a[0],out[8]; -rz(pi/128) out[8]; -rz(pi/256) b[3]; -cx b[3],out[9]; -rz(-pi/256) out[9]; -cx b[3],out[9]; -rz(pi/256) out[9]; -cx b[3],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[9]; -rz(pi/256) out[9]; -cx a[0],out[9]; -rz(-pi/256) out[9]; -cx b[3],a[0]; -rz(pi/256) a[0]; -cx a[0],out[9]; -rz(-pi/256) out[9]; -cx a[0],out[9]; -rz(pi/256) out[9]; -rz(pi/512) b[3]; -cx b[3],out[10]; -rz(-pi/512) out[10]; -cx b[3],out[10]; -rz(pi/512) out[10]; -cx b[3],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[10]; -rz(pi/512) out[10]; -cx a[0],out[10]; -rz(-pi/512) out[10]; -cx b[3],a[0]; -rz(pi/512) a[0]; -cx a[0],out[10]; -rz(-pi/512) out[10]; -cx a[0],out[10]; -rz(pi/512) out[10]; -rz(pi/1024) b[3]; -cx b[3],out[11]; -rz(-pi/1024) out[11]; -cx b[3],out[11]; -rz(pi/1024) out[11]; -cx b[3],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[11]; -rz(pi/1024) out[11]; -cx a[0],out[11]; -rz(-pi/1024) out[11]; -cx b[3],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[11]; -rz(-pi/1024) out[11]; -cx a[0],out[11]; -rz(pi/1024) out[11]; -rz(pi/2048) b[3]; -cx b[3],out[12]; -rz(-pi/2048) out[12]; -cx b[3],out[12]; -rz(pi/2048) out[12]; -cx b[3],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[12]; -rz(pi/2048) out[12]; -cx a[0],out[12]; -rz(-pi/2048) out[12]; -cx b[3],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[12]; -rz(-pi/2048) out[12]; -cx a[0],out[12]; -rz(pi/2048) out[12]; -rz(pi/4096) b[3]; -cx b[3],out[13]; -rz(-pi/4096) out[13]; -cx b[3],out[13]; -rz(pi/4096) out[13]; -cx b[3],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[13]; -rz(pi/4096) out[13]; -cx a[0],out[13]; -rz(-pi/4096) out[13]; -cx b[3],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[13]; -rz(-pi/4096) out[13]; -cx a[0],out[13]; -rz(pi/4096) out[13]; -rz(pi/8192) b[3]; -cx b[3],out[14]; -rz(-pi/8192) out[14]; -cx b[3],out[14]; -rz(pi/8192) out[14]; -cx b[3],a[0]; -rz(-pi/8192) a[0]; -cx a[0],out[14]; -rz(pi/8192) out[14]; -cx a[0],out[14]; -rz(-pi/8192) out[14]; -cx b[3],a[0]; -rz(pi/8192) a[0]; -cx a[0],out[14]; -rz(-pi/8192) out[14]; -cx a[0],out[14]; -rz(pi/8192) out[14]; -rz(pi/16384) b[3]; -cx b[3],out[15]; -rz(-pi/16384) out[15]; -cx b[3],out[15]; -rz(pi/16384) out[15]; -cx b[3],a[0]; -rz(-pi/16384) a[0]; -cx a[0],out[15]; -rz(pi/16384) out[15]; -cx a[0],out[15]; -rz(-pi/16384) out[15]; -cx b[3],a[0]; -rz(pi/16384) a[0]; -cx a[0],out[15]; -rz(-pi/16384) out[15]; -cx a[0],out[15]; -rz(pi/16384) out[15]; -cx b[2],a[0]; -rz(-pi) a[0]; -cx a[0],out[0]; -rz(pi) out[0]; -cx a[0],out[0]; -rz(-pi) out[0]; -cx b[2],a[0]; -rz(pi) a[0]; -cx a[0],out[0]; -rz(-pi) out[0]; -cx a[0],out[0]; -rz(pi) out[0]; -cx b[1],out[0]; -rz(-pi/2) out[0]; -cx b[1],out[0]; -rz(pi/2) out[0]; -rz(pi/2) b[2]; -cx b[2],out[1]; -rz(-pi/2) out[1]; -cx b[2],out[1]; -rz(pi/2) out[1]; -cx b[2],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[1]; -rz(pi/2) out[1]; -cx a[0],out[1]; -rz(-pi/2) out[1]; -cx b[2],a[0]; -rz(pi/2) a[0]; -cx a[0],out[1]; -rz(-pi/2) out[1]; -cx a[0],out[1]; -rz(pi/2) out[1]; -rz(pi/4) b[2]; -cx b[2],out[2]; -rz(-pi/4) out[2]; -cx b[2],out[2]; -rz(pi/4) out[2]; -cx b[2],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[2]; -rz(pi/4) out[2]; -cx a[0],out[2]; -rz(-pi/4) out[2]; -cx b[2],a[0]; -rz(pi/4) a[0]; -cx a[0],out[2]; -rz(-pi/4) out[2]; -cx a[0],out[2]; -rz(pi/4) out[2]; -rz(pi/8) b[2]; -cx b[2],out[3]; -rz(-pi/8) out[3]; -cx b[2],out[3]; -rz(pi/8) out[3]; -cx b[2],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[3]; -rz(pi/8) out[3]; -cx a[0],out[3]; -rz(-pi/8) out[3]; -cx b[2],a[0]; -rz(pi/8) a[0]; -cx a[0],out[3]; -rz(-pi/8) out[3]; -cx a[0],out[3]; -rz(pi/8) out[3]; -rz(pi/16) b[2]; -cx b[2],out[4]; -rz(-pi/16) out[4]; -cx b[2],out[4]; -rz(pi/16) out[4]; -cx b[2],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[4]; -rz(pi/16) out[4]; -cx a[0],out[4]; -rz(-pi/16) out[4]; -cx b[2],a[0]; -rz(pi/16) a[0]; -cx a[0],out[4]; -rz(-pi/16) out[4]; -cx a[0],out[4]; -rz(pi/16) out[4]; -rz(pi/32) b[2]; -cx b[2],out[5]; -rz(-pi/32) out[5]; -cx b[2],out[5]; -rz(pi/32) out[5]; -cx b[2],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[5]; -rz(pi/32) out[5]; -cx a[0],out[5]; -rz(-pi/32) out[5]; -cx b[2],a[0]; -rz(pi/32) a[0]; -cx a[0],out[5]; -rz(-pi/32) out[5]; -cx a[0],out[5]; -rz(pi/32) out[5]; -rz(pi/64) b[2]; -cx b[2],out[6]; -rz(-pi/64) out[6]; -cx b[2],out[6]; -rz(pi/64) out[6]; -cx b[2],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[6]; -rz(pi/64) out[6]; -cx a[0],out[6]; -rz(-pi/64) out[6]; -cx b[2],a[0]; -rz(pi/64) a[0]; -cx a[0],out[6]; -rz(-pi/64) out[6]; -cx a[0],out[6]; -rz(pi/64) out[6]; -rz(pi/128) b[2]; -cx b[2],out[7]; -rz(-pi/128) out[7]; -cx b[2],out[7]; -rz(pi/128) out[7]; -cx b[2],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[7]; -rz(pi/128) out[7]; -cx a[0],out[7]; -rz(-pi/128) out[7]; -cx b[2],a[0]; -rz(pi/128) a[0]; -cx a[0],out[7]; -rz(-pi/128) out[7]; -cx a[0],out[7]; -rz(pi/128) out[7]; -rz(pi/256) b[2]; -cx b[2],out[8]; -rz(-pi/256) out[8]; -cx b[2],out[8]; -rz(pi/256) out[8]; -cx b[2],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[8]; -rz(pi/256) out[8]; -cx a[0],out[8]; -rz(-pi/256) out[8]; -cx b[2],a[0]; -rz(pi/256) a[0]; -cx a[0],out[8]; -rz(-pi/256) out[8]; -cx a[0],out[8]; -rz(pi/256) out[8]; -rz(pi/512) b[2]; -cx b[2],out[9]; -rz(-pi/512) out[9]; -cx b[2],out[9]; -rz(pi/512) out[9]; -cx b[2],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[9]; -rz(pi/512) out[9]; -cx a[0],out[9]; -rz(-pi/512) out[9]; -cx b[2],a[0]; -rz(pi/512) a[0]; -cx a[0],out[9]; -rz(-pi/512) out[9]; -cx a[0],out[9]; -rz(pi/512) out[9]; -rz(pi/1024) b[2]; -cx b[2],out[10]; -rz(-pi/1024) out[10]; -cx b[2],out[10]; -rz(pi/1024) out[10]; -cx b[2],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[10]; -rz(pi/1024) out[10]; -cx a[0],out[10]; -rz(-pi/1024) out[10]; -cx b[2],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[10]; -rz(-pi/1024) out[10]; -cx a[0],out[10]; -rz(pi/1024) out[10]; -rz(pi/2048) b[2]; -cx b[2],out[11]; -rz(-pi/2048) out[11]; -cx b[2],out[11]; -rz(pi/2048) out[11]; -cx b[2],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[11]; -rz(pi/2048) out[11]; -cx a[0],out[11]; -rz(-pi/2048) out[11]; -cx b[2],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[11]; -rz(-pi/2048) out[11]; -cx a[0],out[11]; -rz(pi/2048) out[11]; -rz(pi/4096) b[2]; -cx b[2],out[12]; -rz(-pi/4096) out[12]; -cx b[2],out[12]; -rz(pi/4096) out[12]; -cx b[2],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[12]; -rz(pi/4096) out[12]; -cx a[0],out[12]; -rz(-pi/4096) out[12]; -cx b[2],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[12]; -rz(-pi/4096) out[12]; -cx a[0],out[12]; -rz(pi/4096) out[12]; -rz(pi/8192) b[2]; -cx b[2],out[13]; -rz(-pi/8192) out[13]; -cx b[2],out[13]; -rz(pi/8192) out[13]; -cx b[2],a[0]; -rz(-pi/8192) a[0]; -cx a[0],out[13]; -rz(pi/8192) out[13]; -cx a[0],out[13]; -rz(-pi/8192) out[13]; -cx b[2],a[0]; -rz(pi/8192) a[0]; -cx a[0],out[13]; -rz(-pi/8192) out[13]; -cx a[0],out[13]; -rz(pi/8192) out[13]; -rz(pi/16384) b[2]; -cx b[2],out[14]; -rz(-pi/16384) out[14]; -cx b[2],out[14]; -rz(pi/16384) out[14]; -cx b[2],a[0]; -rz(-pi/16384) a[0]; -cx a[0],out[14]; -rz(pi/16384) out[14]; -cx a[0],out[14]; -rz(-pi/16384) out[14]; -cx b[2],a[0]; -rz(pi/16384) a[0]; -cx a[0],out[14]; -rz(-pi/16384) out[14]; -cx a[0],out[14]; -rz(pi/16384) out[14]; -rz(pi/32768) b[2]; -cx b[2],out[15]; -rz(-pi/32768) out[15]; -cx b[2],out[15]; -rz(pi/32768) out[15]; -cx b[2],a[0]; -rz(-pi/32768) a[0]; -cx a[0],out[15]; -rz(pi/32768) out[15]; -cx a[0],out[15]; -rz(-pi/32768) out[15]; -cx b[2],a[0]; -rz(pi/32768) a[0]; -cx a[0],out[15]; -rz(-pi/32768) out[15]; -cx a[0],out[15]; -rz(pi/32768) out[15]; -cx b[1],a[0]; -rz(-pi/2) a[0]; -cx a[0],out[0]; -rz(pi/2) out[0]; -cx a[0],out[0]; -rz(-pi/2) out[0]; -cx b[1],a[0]; -rz(pi/2) a[0]; -cx a[0],out[0]; -rz(-pi/2) out[0]; -cx a[0],out[0]; -rz(pi/2) out[0]; -cx b[0],out[0]; -rz(-pi/4) out[0]; -cx b[0],out[0]; -rz(pi/4) out[0]; -rz(pi/4) b[1]; -cx b[1],out[1]; -rz(-pi/4) out[1]; -cx b[1],out[1]; -rz(pi/4) out[1]; -cx b[1],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[1]; -rz(pi/4) out[1]; -cx a[0],out[1]; -rz(-pi/4) out[1]; -cx b[1],a[0]; -rz(pi/4) a[0]; -cx a[0],out[1]; -rz(-pi/4) out[1]; -cx a[0],out[1]; -rz(pi/4) out[1]; -rz(pi/8) b[1]; -cx b[1],out[2]; -rz(-pi/8) out[2]; -cx b[1],out[2]; -rz(pi/8) out[2]; -cx b[1],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[2]; -rz(pi/8) out[2]; -cx a[0],out[2]; -rz(-pi/8) out[2]; -cx b[1],a[0]; -rz(pi/8) a[0]; -cx a[0],out[2]; -rz(-pi/8) out[2]; -cx a[0],out[2]; -rz(pi/8) out[2]; -rz(pi/16) b[1]; -cx b[1],out[3]; -rz(-pi/16) out[3]; -cx b[1],out[3]; -rz(pi/16) out[3]; -cx b[1],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[3]; -rz(pi/16) out[3]; -cx a[0],out[3]; -rz(-pi/16) out[3]; -cx b[1],a[0]; -rz(pi/16) a[0]; -cx a[0],out[3]; -rz(-pi/16) out[3]; -cx a[0],out[3]; -rz(pi/16) out[3]; -rz(pi/32) b[1]; -cx b[1],out[4]; -rz(-pi/32) out[4]; -cx b[1],out[4]; -rz(pi/32) out[4]; -cx b[1],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[4]; -rz(pi/32) out[4]; -cx a[0],out[4]; -rz(-pi/32) out[4]; -cx b[1],a[0]; -rz(pi/32) a[0]; -cx a[0],out[4]; -rz(-pi/32) out[4]; -cx a[0],out[4]; -rz(pi/32) out[4]; -rz(pi/64) b[1]; -cx b[1],out[5]; -rz(-pi/64) out[5]; -cx b[1],out[5]; -rz(pi/64) out[5]; -cx b[1],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[5]; -rz(pi/64) out[5]; -cx a[0],out[5]; -rz(-pi/64) out[5]; -cx b[1],a[0]; -rz(pi/64) a[0]; -cx a[0],out[5]; -rz(-pi/64) out[5]; -cx a[0],out[5]; -rz(pi/64) out[5]; -rz(pi/128) b[1]; -cx b[1],out[6]; -rz(-pi/128) out[6]; -cx b[1],out[6]; -rz(pi/128) out[6]; -cx b[1],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[6]; -rz(pi/128) out[6]; -cx a[0],out[6]; -rz(-pi/128) out[6]; -cx b[1],a[0]; -rz(pi/128) a[0]; -cx a[0],out[6]; -rz(-pi/128) out[6]; -cx a[0],out[6]; -rz(pi/128) out[6]; -rz(pi/256) b[1]; -cx b[1],out[7]; -rz(-pi/256) out[7]; -cx b[1],out[7]; -rz(pi/256) out[7]; -cx b[1],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[7]; -rz(pi/256) out[7]; -cx a[0],out[7]; -rz(-pi/256) out[7]; -cx b[1],a[0]; -rz(pi/256) a[0]; -cx a[0],out[7]; -rz(-pi/256) out[7]; -cx a[0],out[7]; -rz(pi/256) out[7]; -rz(pi/512) b[1]; -cx b[1],out[8]; -rz(-pi/512) out[8]; -cx b[1],out[8]; -rz(pi/512) out[8]; -cx b[1],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[8]; -rz(pi/512) out[8]; -cx a[0],out[8]; -rz(-pi/512) out[8]; -cx b[1],a[0]; -rz(pi/512) a[0]; -cx a[0],out[8]; -rz(-pi/512) out[8]; -cx a[0],out[8]; -rz(pi/512) out[8]; -rz(pi/1024) b[1]; -cx b[1],out[9]; -rz(-pi/1024) out[9]; -cx b[1],out[9]; -rz(pi/1024) out[9]; -cx b[1],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[9]; -rz(pi/1024) out[9]; -cx a[0],out[9]; -rz(-pi/1024) out[9]; -cx b[1],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[9]; -rz(-pi/1024) out[9]; -cx a[0],out[9]; -rz(pi/1024) out[9]; -rz(pi/2048) b[1]; -cx b[1],out[10]; -rz(-pi/2048) out[10]; -cx b[1],out[10]; -rz(pi/2048) out[10]; -cx b[1],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[10]; -rz(pi/2048) out[10]; -cx a[0],out[10]; -rz(-pi/2048) out[10]; -cx b[1],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[10]; -rz(-pi/2048) out[10]; -cx a[0],out[10]; -rz(pi/2048) out[10]; -rz(pi/4096) b[1]; -cx b[1],out[11]; -rz(-pi/4096) out[11]; -cx b[1],out[11]; -rz(pi/4096) out[11]; -cx b[1],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[11]; -rz(pi/4096) out[11]; -cx a[0],out[11]; -rz(-pi/4096) out[11]; -cx b[1],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[11]; -rz(-pi/4096) out[11]; -cx a[0],out[11]; -rz(pi/4096) out[11]; -rz(pi/8192) b[1]; -cx b[1],out[12]; -rz(-pi/8192) out[12]; -cx b[1],out[12]; -rz(pi/8192) out[12]; -cx b[1],a[0]; -rz(-pi/8192) a[0]; -cx a[0],out[12]; -rz(pi/8192) out[12]; -cx a[0],out[12]; -rz(-pi/8192) out[12]; -cx b[1],a[0]; -rz(pi/8192) a[0]; -cx a[0],out[12]; -rz(-pi/8192) out[12]; -cx a[0],out[12]; -rz(pi/8192) out[12]; -rz(pi/16384) b[1]; -cx b[1],out[13]; -rz(-pi/16384) out[13]; -cx b[1],out[13]; -rz(pi/16384) out[13]; -cx b[1],a[0]; -rz(-pi/16384) a[0]; -cx a[0],out[13]; -rz(pi/16384) out[13]; -cx a[0],out[13]; -rz(-pi/16384) out[13]; -cx b[1],a[0]; -rz(pi/16384) a[0]; -cx a[0],out[13]; -rz(-pi/16384) out[13]; -cx a[0],out[13]; -rz(pi/16384) out[13]; -rz(pi/32768) b[1]; -cx b[1],out[14]; -rz(-pi/32768) out[14]; -cx b[1],out[14]; -rz(pi/32768) out[14]; -cx b[1],a[0]; -rz(-pi/32768) a[0]; -cx a[0],out[14]; -rz(pi/32768) out[14]; -cx a[0],out[14]; -rz(-pi/32768) out[14]; -cx b[1],a[0]; -rz(pi/32768) a[0]; -cx a[0],out[14]; -rz(-pi/32768) out[14]; -cx a[0],out[14]; -rz(pi/32768) out[14]; -rz(pi/65536) b[1]; -cx b[1],out[15]; -rz(-pi/65536) out[15]; -cx b[1],out[15]; -rz(pi/65536) out[15]; -cx b[1],a[0]; -rz(-pi/65536) a[0]; -cx a[0],out[15]; -rz(pi/65536) out[15]; -cx a[0],out[15]; -rz(-pi/65536) out[15]; -cx b[1],a[0]; -rz(pi/65536) a[0]; -cx a[0],out[15]; -rz(-pi/65536) out[15]; -cx a[0],out[15]; -rz(pi/65536) out[15]; -cx b[0],a[0]; -rz(-pi/4) a[0]; -cx a[0],out[0]; -rz(pi/4) out[0]; -cx a[0],out[0]; -rz(-pi/4) out[0]; -cx b[0],a[0]; -rz(pi/4) a[0]; -cx a[0],out[0]; -rz(-pi/4) out[0]; -cx a[0],out[0]; -rz(pi/4) out[0]; -h out[0]; -rz(pi/8) b[0]; -cx b[0],out[1]; -rz(-pi/8) out[1]; -cx b[0],out[1]; -rz(pi/8) out[1]; -cx b[0],a[0]; -rz(-pi/8) a[0]; -cx a[0],out[1]; -rz(pi/8) out[1]; -cx a[0],out[1]; -rz(-pi/8) out[1]; -cx b[0],a[0]; -rz(pi/8) a[0]; -cx a[0],out[1]; -rz(-pi/8) out[1]; -cx a[0],out[1]; -rz(pi/8) out[1]; -rz(-pi/4) out[1]; -cx out[1],out[0]; -rz(pi/4) out[0]; -cx out[1],out[0]; -rz(-pi/4) out[0]; -h out[1]; -rz(pi/16) b[0]; -cx b[0],out[2]; -rz(-pi/16) out[2]; -cx b[0],out[2]; -rz(pi/16) out[2]; -cx b[0],a[0]; -rz(-pi/16) a[0]; -cx a[0],out[2]; -rz(pi/16) out[2]; -cx a[0],out[2]; -rz(-pi/16) out[2]; -cx b[0],a[0]; -rz(pi/16) a[0]; -cx a[0],out[2]; -rz(-pi/16) out[2]; -cx a[0],out[2]; -rz(pi/16) out[2]; -rz(-pi/8) out[2]; -cx out[2],out[0]; -rz(pi/8) out[0]; -cx out[2],out[0]; -rz(-pi/8) out[0]; -rz(-pi/4) out[2]; -cx out[2],out[1]; -rz(pi/4) out[1]; -cx out[2],out[1]; -rz(-pi/4) out[1]; -h out[2]; -rz(pi/32) b[0]; -cx b[0],out[3]; -rz(-pi/32) out[3]; -cx b[0],out[3]; -rz(pi/32) out[3]; -cx b[0],a[0]; -rz(-pi/32) a[0]; -cx a[0],out[3]; -rz(pi/32) out[3]; -cx a[0],out[3]; -rz(-pi/32) out[3]; -cx b[0],a[0]; -rz(pi/32) a[0]; -cx a[0],out[3]; -rz(-pi/32) out[3]; -cx a[0],out[3]; -rz(pi/32) out[3]; -rz(-pi/16) out[3]; -cx out[3],out[0]; -rz(pi/16) out[0]; -cx out[3],out[0]; -rz(-pi/16) out[0]; -rz(-pi/8) out[3]; -cx out[3],out[1]; -rz(pi/8) out[1]; -cx out[3],out[1]; -rz(-pi/8) out[1]; -rz(-pi/4) out[3]; -cx out[3],out[2]; -rz(pi/4) out[2]; -cx out[3],out[2]; -rz(-pi/4) out[2]; -h out[3]; -rz(pi/64) b[0]; -cx b[0],out[4]; -rz(-pi/64) out[4]; -cx b[0],out[4]; -rz(pi/64) out[4]; -cx b[0],a[0]; -rz(-pi/64) a[0]; -cx a[0],out[4]; -rz(pi/64) out[4]; -cx a[0],out[4]; -rz(-pi/64) out[4]; -cx b[0],a[0]; -rz(pi/64) a[0]; -cx a[0],out[4]; -rz(-pi/64) out[4]; -cx a[0],out[4]; -rz(pi/64) out[4]; -rz(-pi/32) out[4]; -cx out[4],out[0]; -rz(pi/32) out[0]; -cx out[4],out[0]; -rz(-pi/32) out[0]; -rz(-pi/16) out[4]; -cx out[4],out[1]; -rz(pi/16) out[1]; -cx out[4],out[1]; -rz(-pi/16) out[1]; -rz(-pi/8) out[4]; -cx out[4],out[2]; -rz(pi/8) out[2]; -cx out[4],out[2]; -rz(-pi/8) out[2]; -rz(-pi/4) out[4]; -cx out[4],out[3]; -rz(pi/4) out[3]; -cx out[4],out[3]; -rz(-pi/4) out[3]; -h out[4]; -rz(pi/128) b[0]; -cx b[0],out[5]; -rz(-pi/128) out[5]; -cx b[0],out[5]; -rz(pi/128) out[5]; -cx b[0],a[0]; -rz(-pi/128) a[0]; -cx a[0],out[5]; -rz(pi/128) out[5]; -cx a[0],out[5]; -rz(-pi/128) out[5]; -cx b[0],a[0]; -rz(pi/128) a[0]; -cx a[0],out[5]; -rz(-pi/128) out[5]; -cx a[0],out[5]; -rz(pi/128) out[5]; -rz(-pi/64) out[5]; -cx out[5],out[0]; -rz(pi/64) out[0]; -cx out[5],out[0]; -rz(-pi/64) out[0]; -rz(-pi/32) out[5]; -cx out[5],out[1]; -rz(pi/32) out[1]; -cx out[5],out[1]; -rz(-pi/32) out[1]; -rz(-pi/16) out[5]; -cx out[5],out[2]; -rz(pi/16) out[2]; -cx out[5],out[2]; -rz(-pi/16) out[2]; -rz(-pi/8) out[5]; -cx out[5],out[3]; -rz(pi/8) out[3]; -cx out[5],out[3]; -rz(-pi/8) out[3]; -rz(-pi/4) out[5]; -cx out[5],out[4]; -rz(pi/4) out[4]; -cx out[5],out[4]; -rz(-pi/4) out[4]; -h out[5]; -rz(pi/256) b[0]; -cx b[0],out[6]; -rz(-pi/256) out[6]; -cx b[0],out[6]; -rz(pi/256) out[6]; -cx b[0],a[0]; -rz(-pi/256) a[0]; -cx a[0],out[6]; -rz(pi/256) out[6]; -cx a[0],out[6]; -rz(-pi/256) out[6]; -cx b[0],a[0]; -rz(pi/256) a[0]; -cx a[0],out[6]; -rz(-pi/256) out[6]; -cx a[0],out[6]; -rz(pi/256) out[6]; -rz(-pi/128) out[6]; -cx out[6],out[0]; -rz(pi/128) out[0]; -cx out[6],out[0]; -rz(-pi/128) out[0]; -rz(-pi/64) out[6]; -cx out[6],out[1]; -rz(pi/64) out[1]; -cx out[6],out[1]; -rz(-pi/64) out[1]; -rz(-pi/32) out[6]; -cx out[6],out[2]; -rz(pi/32) out[2]; -cx out[6],out[2]; -rz(-pi/32) out[2]; -rz(-pi/16) out[6]; -cx out[6],out[3]; -rz(pi/16) out[3]; -cx out[6],out[3]; -rz(-pi/16) out[3]; -rz(-pi/8) out[6]; -cx out[6],out[4]; -rz(pi/8) out[4]; -cx out[6],out[4]; -rz(-pi/8) out[4]; -rz(-pi/4) out[6]; -cx out[6],out[5]; -rz(pi/4) out[5]; -cx out[6],out[5]; -rz(-pi/4) out[5]; -h out[6]; -rz(pi/512) b[0]; -cx b[0],out[7]; -rz(-pi/512) out[7]; -cx b[0],out[7]; -rz(pi/512) out[7]; -cx b[0],a[0]; -rz(-pi/512) a[0]; -cx a[0],out[7]; -rz(pi/512) out[7]; -cx a[0],out[7]; -rz(-pi/512) out[7]; -cx b[0],a[0]; -rz(pi/512) a[0]; -cx a[0],out[7]; -rz(-pi/512) out[7]; -cx a[0],out[7]; -rz(pi/512) out[7]; -rz(-pi/256) out[7]; -cx out[7],out[0]; -rz(pi/256) out[0]; -cx out[7],out[0]; -rz(-pi/256) out[0]; -rz(-pi/128) out[7]; -cx out[7],out[1]; -rz(pi/128) out[1]; -cx out[7],out[1]; -rz(-pi/128) out[1]; -rz(-pi/64) out[7]; -cx out[7],out[2]; -rz(pi/64) out[2]; -cx out[7],out[2]; -rz(-pi/64) out[2]; -rz(-pi/32) out[7]; -cx out[7],out[3]; -rz(pi/32) out[3]; -cx out[7],out[3]; -rz(-pi/32) out[3]; -rz(-pi/16) out[7]; -cx out[7],out[4]; -rz(pi/16) out[4]; -cx out[7],out[4]; -rz(-pi/16) out[4]; -rz(-pi/8) out[7]; -cx out[7],out[5]; -rz(pi/8) out[5]; -cx out[7],out[5]; -rz(-pi/8) out[5]; -rz(-pi/4) out[7]; -cx out[7],out[6]; -rz(pi/4) out[6]; -cx out[7],out[6]; -rz(-pi/4) out[6]; -h out[7]; -rz(pi/1024) b[0]; -cx b[0],out[8]; -rz(-pi/1024) out[8]; -cx b[0],out[8]; -rz(pi/1024) out[8]; -cx b[0],a[0]; -rz(-pi/1024) a[0]; -cx a[0],out[8]; -rz(pi/1024) out[8]; -cx a[0],out[8]; -rz(-pi/1024) out[8]; -cx b[0],a[0]; -rz(pi/1024) a[0]; -cx a[0],out[8]; -rz(-pi/1024) out[8]; -cx a[0],out[8]; -rz(pi/1024) out[8]; -rz(-pi/512) out[8]; -cx out[8],out[0]; -rz(pi/512) out[0]; -cx out[8],out[0]; -rz(-pi/512) out[0]; -rz(-pi/256) out[8]; -cx out[8],out[1]; -rz(pi/256) out[1]; -cx out[8],out[1]; -rz(-pi/256) out[1]; -rz(-pi/128) out[8]; -cx out[8],out[2]; -rz(pi/128) out[2]; -cx out[8],out[2]; -rz(-pi/128) out[2]; -rz(-pi/64) out[8]; -cx out[8],out[3]; -rz(pi/64) out[3]; -cx out[8],out[3]; -rz(-pi/64) out[3]; -rz(-pi/32) out[8]; -cx out[8],out[4]; -rz(pi/32) out[4]; -cx out[8],out[4]; -rz(-pi/32) out[4]; -rz(-pi/16) out[8]; -cx out[8],out[5]; -rz(pi/16) out[5]; -cx out[8],out[5]; -rz(-pi/16) out[5]; -rz(-pi/8) out[8]; -cx out[8],out[6]; -rz(pi/8) out[6]; -cx out[8],out[6]; -rz(-pi/8) out[6]; -rz(-pi/4) out[8]; -cx out[8],out[7]; -rz(pi/4) out[7]; -cx out[8],out[7]; -rz(-pi/4) out[7]; -h out[8]; -rz(pi/2048) b[0]; -cx b[0],out[9]; -rz(-pi/2048) out[9]; -cx b[0],out[9]; -rz(pi/2048) out[9]; -cx b[0],a[0]; -rz(-pi/2048) a[0]; -cx a[0],out[9]; -rz(pi/2048) out[9]; -cx a[0],out[9]; -rz(-pi/2048) out[9]; -cx b[0],a[0]; -rz(pi/2048) a[0]; -cx a[0],out[9]; -rz(-pi/2048) out[9]; -cx a[0],out[9]; -rz(pi/2048) out[9]; -rz(-pi/1024) out[9]; -cx out[9],out[0]; -rz(pi/1024) out[0]; -cx out[9],out[0]; -rz(-pi/1024) out[0]; -rz(-pi/512) out[9]; -cx out[9],out[1]; -rz(pi/512) out[1]; -cx out[9],out[1]; -rz(-pi/512) out[1]; -rz(-pi/256) out[9]; -cx out[9],out[2]; -rz(pi/256) out[2]; -cx out[9],out[2]; -rz(-pi/256) out[2]; -rz(-pi/128) out[9]; -cx out[9],out[3]; -rz(pi/128) out[3]; -cx out[9],out[3]; -rz(-pi/128) out[3]; -rz(-pi/64) out[9]; -cx out[9],out[4]; -rz(pi/64) out[4]; -cx out[9],out[4]; -rz(-pi/64) out[4]; -rz(-pi/32) out[9]; -cx out[9],out[5]; -rz(pi/32) out[5]; -cx out[9],out[5]; -rz(-pi/32) out[5]; -rz(-pi/16) out[9]; -cx out[9],out[6]; -rz(pi/16) out[6]; -cx out[9],out[6]; -rz(-pi/16) out[6]; -rz(-pi/8) out[9]; -cx out[9],out[7]; -rz(pi/8) out[7]; -cx out[9],out[7]; -rz(-pi/8) out[7]; -rz(-pi/4) out[9]; -cx out[9],out[8]; -rz(pi/4) out[8]; -cx out[9],out[8]; -rz(-pi/4) out[8]; -h out[9]; -rz(pi/4096) b[0]; -cx b[0],out[10]; -rz(-pi/4096) out[10]; -cx b[0],out[10]; -rz(pi/4096) out[10]; -cx b[0],a[0]; -rz(-pi/4096) a[0]; -cx a[0],out[10]; -rz(pi/4096) out[10]; -cx a[0],out[10]; -rz(-pi/4096) out[10]; -cx b[0],a[0]; -rz(pi/4096) a[0]; -cx a[0],out[10]; -rz(-pi/4096) out[10]; -cx a[0],out[10]; -rz(pi/4096) out[10]; -rz(-pi/2048) out[10]; -cx out[10],out[0]; -rz(pi/2048) out[0]; -cx out[10],out[0]; -rz(-pi/2048) out[0]; -rz(-pi/1024) out[10]; -cx out[10],out[1]; -rz(pi/1024) out[1]; -cx out[10],out[1]; -rz(-pi/1024) out[1]; -rz(-pi/512) out[10]; -cx out[10],out[2]; -rz(pi/512) out[2]; -cx out[10],out[2]; -rz(-pi/256) out[10]; -cx out[10],out[3]; -rz(-pi/512) out[2]; -rz(pi/256) out[3]; -cx out[10],out[3]; -rz(-pi/128) out[10]; -cx out[10],out[4]; -rz(-pi/256) out[3]; -rz(pi/128) out[4]; -cx out[10],out[4]; -rz(-pi/64) out[10]; -cx out[10],out[5]; -rz(-pi/128) out[4]; -rz(pi/64) out[5]; -cx out[10],out[5]; -rz(-pi/32) out[10]; -cx out[10],out[6]; -rz(-pi/64) out[5]; -rz(pi/32) out[6]; -cx out[10],out[6]; -rz(-pi/16) out[10]; -cx out[10],out[7]; -rz(-pi/32) out[6]; -rz(pi/16) out[7]; -cx out[10],out[7]; -rz(-pi/8) out[10]; -cx out[10],out[8]; -rz(-pi/16) out[7]; -rz(pi/8) out[8]; -cx out[10],out[8]; -rz(-pi/4) out[10]; -cx out[10],out[9]; -rz(-pi/8) out[8]; -rz(pi/4) out[9]; -cx out[10],out[9]; -h out[10]; -rz(-pi/4) out[9]; -rz(pi/8192) b[0]; -cx b[0],out[11]; -rz(-pi/8192) out[11]; -cx b[0],out[11]; -rz(pi/8192) out[11]; -cx b[0],a[0]; -rz(-pi/8192) a[0]; -cx a[0],out[11]; -rz(pi/8192) out[11]; -cx a[0],out[11]; -rz(-pi/8192) out[11]; -cx b[0],a[0]; -rz(pi/8192) a[0]; -cx a[0],out[11]; -rz(-pi/8192) out[11]; -cx a[0],out[11]; -rz(pi/8192) out[11]; -rz(-pi/4096) out[11]; -cx out[11],out[0]; -rz(pi/4096) out[0]; -cx out[11],out[0]; -rz(-pi/4096) out[0]; -rz(-pi/2048) out[11]; -cx out[11],out[1]; -rz(pi/2048) out[1]; -cx out[11],out[1]; -rz(-pi/2048) out[1]; -rz(-pi/1024) out[11]; -cx out[11],out[2]; -rz(pi/1024) out[2]; -cx out[11],out[2]; -rz(-pi/512) out[11]; -cx out[11],out[3]; -rz(-pi/1024) out[2]; -rz(pi/512) out[3]; -cx out[11],out[3]; -rz(-pi/256) out[11]; -cx out[11],out[4]; -rz(-pi/512) out[3]; -rz(pi/256) out[4]; -cx out[11],out[4]; -rz(-pi/128) out[11]; -cx out[11],out[5]; -rz(-pi/256) out[4]; -rz(pi/128) out[5]; -cx out[11],out[5]; -rz(-pi/64) out[11]; -cx out[11],out[6]; -rz(-pi/128) out[5]; -rz(pi/64) out[6]; -cx out[11],out[6]; -rz(-pi/32) out[11]; -cx out[11],out[7]; -rz(-pi/64) out[6]; -rz(pi/32) out[7]; -cx out[11],out[7]; -rz(-pi/16) out[11]; -cx out[11],out[8]; -rz(-pi/32) out[7]; -rz(pi/16) out[8]; -cx out[11],out[8]; -rz(-pi/8) out[11]; -cx out[11],out[9]; -rz(-pi/16) out[8]; -rz(pi/8) out[9]; -cx out[11],out[9]; -rz(-pi/4) out[11]; -cx out[11],out[10]; -rz(pi/4) out[10]; -cx out[11],out[10]; -rz(-pi/4) out[10]; -h out[11]; -rz(-pi/8) out[9]; -rz(pi/16384) b[0]; -cx b[0],out[12]; -rz(-pi/16384) out[12]; -cx b[0],out[12]; -rz(pi/16384) out[12]; -cx b[0],a[0]; -rz(-pi/16384) a[0]; -cx a[0],out[12]; -rz(pi/16384) out[12]; -cx a[0],out[12]; -rz(-pi/16384) out[12]; -cx b[0],a[0]; -rz(pi/16384) a[0]; -cx a[0],out[12]; -rz(-pi/16384) out[12]; -cx a[0],out[12]; -rz(pi/16384) out[12]; -rz(-pi/8192) out[12]; -cx out[12],out[0]; -rz(pi/8192) out[0]; -cx out[12],out[0]; -rz(-pi/8192) out[0]; -rz(-pi/4096) out[12]; -cx out[12],out[1]; -rz(pi/4096) out[1]; -cx out[12],out[1]; -rz(-pi/4096) out[1]; -rz(-pi/2048) out[12]; -cx out[12],out[2]; -rz(pi/2048) out[2]; -cx out[12],out[2]; -rz(-pi/1024) out[12]; -cx out[12],out[3]; -rz(-pi/2048) out[2]; -rz(pi/1024) out[3]; -cx out[12],out[3]; -rz(-pi/512) out[12]; -cx out[12],out[4]; -rz(-pi/1024) out[3]; -rz(pi/512) out[4]; -cx out[12],out[4]; -rz(-pi/256) out[12]; -cx out[12],out[5]; -rz(-pi/512) out[4]; -rz(pi/256) out[5]; -cx out[12],out[5]; -rz(-pi/128) out[12]; -cx out[12],out[6]; -rz(-pi/256) out[5]; -rz(pi/128) out[6]; -cx out[12],out[6]; -rz(-pi/64) out[12]; -cx out[12],out[7]; -rz(-pi/128) out[6]; -rz(pi/64) out[7]; -cx out[12],out[7]; -rz(-pi/32) out[12]; -cx out[12],out[8]; -rz(-pi/64) out[7]; -rz(pi/32) out[8]; -cx out[12],out[8]; -rz(-pi/16) out[12]; -cx out[12],out[9]; -rz(-pi/32) out[8]; -rz(pi/16) out[9]; -cx out[12],out[9]; -rz(-pi/8) out[12]; -cx out[12],out[10]; -rz(pi/8) out[10]; -cx out[12],out[10]; -rz(-pi/8) out[10]; -rz(-pi/4) out[12]; -cx out[12],out[11]; -rz(pi/4) out[11]; -cx out[12],out[11]; -rz(-pi/4) out[11]; -h out[12]; -rz(-pi/16) out[9]; -rz(pi/32768) b[0]; -cx b[0],out[13]; -rz(-pi/32768) out[13]; -cx b[0],out[13]; -rz(pi/32768) out[13]; -cx b[0],a[0]; -rz(-pi/32768) a[0]; -cx a[0],out[13]; -rz(pi/32768) out[13]; -cx a[0],out[13]; -rz(-pi/32768) out[13]; -cx b[0],a[0]; -rz(pi/32768) a[0]; -cx a[0],out[13]; -rz(-pi/32768) out[13]; -cx a[0],out[13]; -rz(pi/32768) out[13]; -rz(-pi/16384) out[13]; -cx out[13],out[0]; -rz(pi/16384) out[0]; -cx out[13],out[0]; -rz(-pi/16384) out[0]; -rz(-pi/8192) out[13]; -cx out[13],out[1]; -rz(pi/8192) out[1]; -cx out[13],out[1]; -rz(-pi/8192) out[1]; -rz(-pi/4096) out[13]; -cx out[13],out[2]; -rz(pi/4096) out[2]; -cx out[13],out[2]; -rz(-pi/2048) out[13]; -cx out[13],out[3]; -rz(-pi/4096) out[2]; -rz(pi/2048) out[3]; -cx out[13],out[3]; -rz(-pi/1024) out[13]; -cx out[13],out[4]; -rz(-pi/2048) out[3]; -rz(pi/1024) out[4]; -cx out[13],out[4]; -rz(-pi/512) out[13]; -cx out[13],out[5]; -rz(-pi/1024) out[4]; -rz(pi/512) out[5]; -cx out[13],out[5]; -rz(-pi/256) out[13]; -cx out[13],out[6]; -rz(-pi/512) out[5]; -rz(pi/256) out[6]; -cx out[13],out[6]; -rz(-pi/128) out[13]; -cx out[13],out[7]; -rz(-pi/256) out[6]; -rz(pi/128) out[7]; -cx out[13],out[7]; -rz(-pi/64) out[13]; -cx out[13],out[8]; -rz(-pi/128) out[7]; -rz(pi/64) out[8]; -cx out[13],out[8]; -rz(-pi/32) out[13]; -cx out[13],out[9]; -rz(-pi/64) out[8]; -rz(pi/32) out[9]; -cx out[13],out[9]; -rz(-pi/16) out[13]; -cx out[13],out[10]; -rz(pi/16) out[10]; -cx out[13],out[10]; -rz(-pi/16) out[10]; -rz(-pi/8) out[13]; -cx out[13],out[11]; -rz(pi/8) out[11]; -cx out[13],out[11]; -rz(-pi/8) out[11]; -rz(-pi/4) out[13]; -cx out[13],out[12]; -rz(pi/4) out[12]; -cx out[13],out[12]; -rz(-pi/4) out[12]; -h out[13]; -rz(-pi/32) out[9]; -rz(pi/65536) b[0]; -cx b[0],out[14]; -rz(-pi/65536) out[14]; -cx b[0],out[14]; -rz(pi/65536) out[14]; -cx b[0],a[0]; -rz(-pi/65536) a[0]; -cx a[0],out[14]; -rz(pi/65536) out[14]; -cx a[0],out[14]; -rz(-pi/65536) out[14]; -cx b[0],a[0]; -rz(pi/65536) a[0]; -cx a[0],out[14]; -rz(-pi/65536) out[14]; -cx a[0],out[14]; -rz(pi/65536) out[14]; -rz(-pi/32768) out[14]; -cx out[14],out[0]; -rz(pi/32768) out[0]; -cx out[14],out[0]; -rz(-pi/32768) out[0]; -rz(-pi/16384) out[14]; -cx out[14],out[1]; -rz(pi/16384) out[1]; -cx out[14],out[1]; -rz(-pi/16384) out[1]; -rz(-pi/8192) out[14]; -cx out[14],out[2]; -rz(pi/8192) out[2]; -cx out[14],out[2]; -rz(-pi/4096) out[14]; -cx out[14],out[3]; -rz(-pi/8192) out[2]; -rz(pi/4096) out[3]; -cx out[14],out[3]; -rz(-pi/2048) out[14]; -cx out[14],out[4]; -rz(-pi/4096) out[3]; -rz(pi/2048) out[4]; -cx out[14],out[4]; -rz(-pi/1024) out[14]; -cx out[14],out[5]; -rz(-pi/2048) out[4]; -rz(pi/1024) out[5]; -cx out[14],out[5]; -rz(-pi/512) out[14]; -cx out[14],out[6]; -rz(-pi/1024) out[5]; -rz(pi/512) out[6]; -cx out[14],out[6]; -rz(-pi/256) out[14]; -cx out[14],out[7]; -rz(-pi/512) out[6]; -rz(pi/256) out[7]; -cx out[14],out[7]; -rz(-pi/128) out[14]; -cx out[14],out[8]; -rz(-pi/256) out[7]; -rz(pi/128) out[8]; -cx out[14],out[8]; -rz(-pi/64) out[14]; -cx out[14],out[9]; -rz(-pi/128) out[8]; -rz(pi/64) out[9]; -cx out[14],out[9]; -rz(-pi/32) out[14]; -cx out[14],out[10]; -rz(pi/32) out[10]; -cx out[14],out[10]; -rz(-pi/32) out[10]; -rz(-pi/16) out[14]; -cx out[14],out[11]; -rz(pi/16) out[11]; -cx out[14],out[11]; -rz(-pi/16) out[11]; -rz(-pi/8) out[14]; -cx out[14],out[12]; -rz(pi/8) out[12]; -cx out[14],out[12]; -rz(-pi/8) out[12]; -rz(-pi/4) out[14]; -cx out[14],out[13]; -rz(pi/4) out[13]; -cx out[14],out[13]; -rz(-pi/4) out[13]; -h out[14]; -rz(-pi/64) out[9]; -rz(pi/131072) b[0]; -cx b[0],out[15]; -rz(-pi/131072) out[15]; -cx b[0],out[15]; -rz(pi/131072) out[15]; -cx b[0],a[0]; -rz(-pi/131072) a[0]; -cx a[0],out[15]; -rz(pi/131072) out[15]; -cx a[0],out[15]; -rz(-pi/131072) out[15]; -cx b[0],a[0]; -rz(pi/131072) a[0]; -cx a[0],out[15]; -rz(-pi/131072) out[15]; -cx a[0],out[15]; -rz(pi/131072) out[15]; -rz(-pi/65536) out[15]; -cx out[15],out[0]; -rz(pi/65536) out[0]; -cx out[15],out[0]; -rz(-pi/65536) out[0]; -rz(-pi/32768) out[15]; -cx out[15],out[1]; -rz(pi/32768) out[1]; -cx out[15],out[1]; -rz(-pi/32768) out[1]; -rz(-pi/16384) out[15]; -cx out[15],out[2]; -rz(pi/16384) out[2]; -cx out[15],out[2]; -rz(-pi/8192) out[15]; -cx out[15],out[3]; -rz(-pi/16384) out[2]; -rz(pi/8192) out[3]; -cx out[15],out[3]; -rz(-pi/4096) out[15]; -cx out[15],out[4]; -rz(-pi/8192) out[3]; -rz(pi/4096) out[4]; -cx out[15],out[4]; -rz(-pi/2048) out[15]; -cx out[15],out[5]; -rz(-pi/4096) out[4]; -rz(pi/2048) out[5]; -cx out[15],out[5]; -rz(-pi/1024) out[15]; -cx out[15],out[6]; -rz(-pi/2048) out[5]; -rz(pi/1024) out[6]; -cx out[15],out[6]; -rz(-pi/512) out[15]; -cx out[15],out[7]; -rz(-pi/1024) out[6]; -rz(pi/512) out[7]; -cx out[15],out[7]; -rz(-pi/256) out[15]; -cx out[15],out[8]; -rz(-pi/512) out[7]; -rz(pi/256) out[8]; -cx out[15],out[8]; -rz(-pi/128) out[15]; -cx out[15],out[9]; -rz(-pi/256) out[8]; -rz(pi/128) out[9]; -cx out[15],out[9]; -rz(-pi/64) out[15]; -cx out[15],out[10]; -rz(pi/64) out[10]; -cx out[15],out[10]; -rz(-pi/64) out[10]; -rz(-pi/32) out[15]; -cx out[15],out[11]; -rz(pi/32) out[11]; -cx out[15],out[11]; -rz(-pi/32) out[11]; -rz(-pi/16) out[15]; -cx out[15],out[12]; -rz(pi/16) out[12]; -cx out[15],out[12]; -rz(-pi/16) out[12]; -rz(-pi/8) out[15]; -cx out[15],out[13]; -rz(pi/8) out[13]; -cx out[15],out[13]; -rz(-pi/8) out[13]; -rz(-pi/4) out[15]; -cx out[15],out[14]; -rz(pi/4) out[14]; -cx out[15],out[14]; -rz(-pi/4) out[14]; -h out[15]; -rz(-pi/128) out[9]; diff --git a/azure-quantum/examples/resource_estimation/ecc.py b/azure-quantum/examples/resource_estimation/ecc.py deleted file mode 100644 index be854ece3..000000000 --- a/azure-quantum/examples/resource_estimation/ecc.py +++ /dev/null @@ -1,117 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -## - -# Physical resource estimation for Elliptic Curve Cryptography starting from -# logical resource estimates - -import argparse -import os -from azure.quantum import Workspace -from azure.quantum.target.microsoft import MicrosoftEstimator, QubitParams, \ - QECScheme -import qsharp - -# Configure program arguments -parser = argparse.ArgumentParser( - prog="rsa", - description="Physical resource estimation for Elliptic Curve Cryptography " - "starting from logical resource estimates") - -parser.add_argument( - "-k", - "--keysize", - default=256, - help="Key size (256, 384, 521)") - -parser.add_argument( - "-r", - "--resource-id", - default=os.environ.get("AZURE_QUANTUM_RESOURCE_ID"), - help="Resource ID of Azure Quantum workspace (must be set, unless set via " - "environment variable AZURE_QUANTUM_RESOURCE_ID)") - -parser.add_argument( - "-l", - "--location", - default=os.environ.get("AZURE_QUANTUM_LOCATION"), - help="Location of Azure Quantum workspace (must be set, unless set via " - "environment AZURE_QUANTUM_LOCATION)") - -# Parse and validate arguments -args = parser.parse_args() - -if not args.resource_id: - parser.error("the following arguments are required: -r/--resource-id") -if not args.location: - parser.error("the following arguments are required: -l/--location") - -# define and compile Q# operation -ECCEstimates = qsharp.compile(''' -open Microsoft.Quantum.ResourceEstimation; - -operation ECCEstimates(keysize: Int) : Unit { - if keysize == 256 { - use qubits = Qubit[2124]; - AccountForEstimates([ - TCount(7387343750), // 1.72 * 2.0^32 - MeasurementCount(118111601) // 1.76 * 2.0^26 - ], PSSPCLayout(), qubits); - } elif keysize == 384 { - use qubits = Qubit[3151]; - AccountForEstimates([ - TCount(25941602468), // 1.51 * 2.0^34 - MeasurementCount(660351222) // 1.23 * 2.0^29 - ], PSSPCLayout(), qubits); - } elif keysize == 521 { - use qubits = Qubit[4258]; - AccountForEstimates([ - TCount(62534723830), // 1.82 * 2.0^35 - MeasurementCount(1707249501) // 1.59 * 2.0^30 - ], PSSPCLayout(), qubits); - } else { - fail $"keysize {keysize} is not supported"; - } -} -''') - -# connect to Azure Quantum workspace (you can find the information for your -# resource_id and location on the Overview page of your Quantum workspace) -workspace = Workspace(resource_id=args.resource_id, location=args.location) -estimator = MicrosoftEstimator(workspace) - -params = estimator.make_params(num_items=4) - -params.arguments["keysize"] = int(args.keysize) - -# Error budget -params.error_budget = 0.333 - -# Gate-based (reasonable) -params.items[0].qubit_params.name = QubitParams.GATE_NS_E3 -# Gate-based (optimistic) -params.items[1].qubit_params.name = QubitParams.GATE_NS_E4 -# Majorana (reasonable) -params.items[2].qubit_params.name = QubitParams.MAJ_NS_E4 -params.items[2].qec_scheme.name = QECScheme.FLOQUET_CODE -# Majorana (optimistic) -params.items[3].qubit_params.name = QubitParams.MAJ_NS_E6 -params.items[3].qec_scheme.name = QECScheme.FLOQUET_CODE - -job = estimator.submit(ECCEstimates, input_params=params) -results = job.get_results() - -table = results.summary_data_frame(labels=[ - "Gate-based (reasonable)", - "Gate-based (optimistic)", - "Majorana (reasonable)", - "Majorana (optimistic)" -]) - -print() -print(table[["Physical qubits", "Physical runtime"]]) - -## Access non-formatted values, e.g., -# print(results[0]["physicalCounts"]["physicalQubits"]) -# print(results[0]["physicalCounts"]["runtime"]) diff --git a/azure-quantum/examples/resource_estimation/rsa.py b/azure-quantum/examples/resource_estimation/rsa.py deleted file mode 100644 index fef5f64d2..000000000 --- a/azure-quantum/examples/resource_estimation/rsa.py +++ /dev/null @@ -1,88 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -## - -# Physical resource estimation for RSA using a pre-compiled QIR code - -import argparse -import os -from azure.quantum import Workspace -from azure.quantum.target.microsoft import MicrosoftEstimator, QubitParams, \ - QECScheme - -# Configure program arguments -parser = argparse.ArgumentParser( - prog="rsa", - description="Physical resource estimation for RSA using a pre-compiled " - "QIR code") - -parser.add_argument( - "-r", - "--resource-id", - default=os.environ.get("AZURE_QUANTUM_RESOURCE_ID"), - help="Resource ID of Azure Quantum workspace (must be set, unless set via " - "environment variable AZURE_QUANTUM_RESOURCE_ID)") - -parser.add_argument( - "-l", - "--location", - default=os.environ.get("AZURE_QUANTUM_LOCATION"), - help="Location of Azure Quantum workspace (must be set, unless set via " - "environment AZURE_QUANTUM_LOCATION)") - -# Parse and validate arguments -args = parser.parse_args() - -if not args.resource_id: - parser.error("the following arguments are required: -r/--resource-id") -if not args.location: - parser.error("the following arguments are required: -l/--location") - -# download QIR bitcode - -import urllib.request -bitcode = urllib.request.urlopen("https://aka.ms/RE/eh_factoring").read() - -# connect to Azure Quantum workspace (you can find the information for your -# resource_id and location on the Overview page of your Quantum workspace) -workspace = Workspace(resource_id=args.resource_id, location=args.location) -estimator = MicrosoftEstimator(workspace) - -params = estimator.make_params(num_items=4) - -params.arguments["product"] = "25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357" -params.arguments["generator"] = 7 -params.arguments["exp_window_len"] = 5 -params.arguments["mul_window_len"] = 5 - -# Error budget -params.error_budget = 0.333 - -# Gate-based (reasonable) -params.items[0].qubit_params.name = QubitParams.GATE_NS_E3 -# Gate-based (optimistic) -params.items[1].qubit_params.name = QubitParams.GATE_NS_E4 -# Majorana (reasonable) -params.items[2].qubit_params.name = QubitParams.MAJ_NS_E4 -params.items[2].qec_scheme.name = QECScheme.FLOQUET_CODE -# Majorana (optimistic) -params.items[3].qubit_params.name = QubitParams.MAJ_NS_E6 -params.items[3].qec_scheme.name = QECScheme.FLOQUET_CODE - -job = estimator.submit(bitcode, input_params=params) -results = job.get_results() - -table = results.summary_data_frame(labels=[ - "Gate-based (reasonable)", - "Gate-based (optimistic)", - "Majorana (reasonable)", - "Majorana (optimistic)" -]) - -print() -print(table[["Physical qubits", "Physical runtime"]]) - -## Access non-formatted values, e.g., -# print(results[0]["physicalCounts"]["physicalQubits"]) -# print(results[0]["physicalCounts"]["runtime"]) diff --git a/azure-quantum/tests/unit/test_microsoft_qc.py b/azure-quantum/tests/unit/test_microsoft_qc.py deleted file mode 100644 index 309ac02ed..000000000 --- a/azure-quantum/tests/unit/test_microsoft_qc.py +++ /dev/null @@ -1,606 +0,0 @@ -## -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. -## -import pytest -from pytest import raises -from os import path -import re -from azure.quantum.target.microsoft.target import DistillationUnitSpecification, MicrosoftEstimatorConstraints, ProtocolSpecificDistillationUnitSpecification, MeasurementErrorRate - -from common import QuantumTestBase, DEFAULT_TIMEOUT_SECS - -from azure.quantum import JobStatus -from azure.quantum.target.microsoft import MicrosoftEstimator, \ - MicrosoftEstimatorJob, MicrosoftEstimatorResult, \ - MicrosoftEstimatorParams, QubitParams, ErrorBudgetPartition - - -class TestMicrosoftQC(QuantumTestBase): - """TestMicrosoftQC - - Tests the azure.quantum.target.microsoft module. - """ - - def _ccnot_bitcode(self) -> bytes: - """ - QIR sample file for CCNOT gate applied to 3 qubits. - """ - bitcode_filename = path.join(path.dirname(__file__), "qir", "ccnot.bc") - with open(bitcode_filename, "rb") as f: - return f.read() - - def _mock_result_data(self) -> dict: - """ - A small result data for tests. - """ - return { - "physicalCounts": { - "physicalQubits": 655321, - "runtime": 1729, - "rqops": 314 - }, - "reportData": {"groups": [], "assumptions": []} - } - - def _mock_result_data_full(self, status) -> dict: - formatted = { - "algorithmicLogicalQubits": 10, - "logicalDepth": 100, - "numTstates": 15, - "numTfactories": 1000, - "physicalQubitsForTfactoriesPercentage": 10, - "physicalQubits": 30000, - "rqops": 45678, - "runtime": 23456789 - } - - result = { - "physicalCounts": { - "physicalQubits": 655321, - "runtime": 1729, - "rqops": 314 - }, - "logicalQubit": { - "codeDistance": 11 - }, - "reportData": {"groups": [], "assumptions": []} - } - - result["physicalCountsFormatted"] = formatted - result["status"] = status - return result - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_non_batching_job(self): - """ - Submits a job with default job parameters. - - Checks whether job and results have expected type. - """ - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - job = estimator.submit(ccnot) - self.assertIsInstance(job, MicrosoftEstimatorJob) - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - result = job.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - self.assertIsInstance(result, MicrosoftEstimatorResult) - - # Retrieve job by ID - job2 = ws.get_job(job.id) - self.assertEqual(type(job2), type(job)) - result2 = job2.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - self.assertEqual(type(result2), type(result)) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_batching_job(self): - """ - Submits a job with default job parameters. - - Checks whether job and results have expected type. - """ - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - params = estimator.make_params(num_items=3) - params.items[0].error_budget = 0.001 - - params.items[0].qubit_params.name = QubitParams.MAJ_NS_E4 - params.items[0].qubit_params.instruction_set = "majorana" - params.items[0].qubit_params.t_gate_error_rate = 0.03 - params.items[0].qubit_params.t_gate_time = "10 ns" - params.items[0].qubit_params.idle_error_rate = 0.00002 - params.items[0].qubit_params.two_qubit_joint_measurement_error_rate = \ - MeasurementErrorRate(process=0.00005, readout=0.00007) - - specification1 = DistillationUnitSpecification() - specification1.display_name = "S" - specification1.num_input_ts = 1 - specification1.num_output_ts = 15 - specification1.output_error_rate_formula = "35.0 * inputErrorRate ^ 3 + 7.1 * cliffordErrorRate" - specification1.failure_probability_formula = "15.0 * inputErrorRate + 356.0 * cliffordErrorRate" - - physical_qubit_specification = ProtocolSpecificDistillationUnitSpecification() - physical_qubit_specification.num_unit_qubits = 12 - physical_qubit_specification.duration_in_qubit_cycle_time = 45 - specification1.physical_qubit_specification = physical_qubit_specification - - logical_qubit_specification = ProtocolSpecificDistillationUnitSpecification() - logical_qubit_specification.num_unit_qubits = 20 - logical_qubit_specification.duration_in_qubit_cycle_time = 13 - specification1.logical_qubit_specification = physical_qubit_specification - - specification2 = DistillationUnitSpecification() - specification2.name = "15-1 RM" - - specification3 = DistillationUnitSpecification() - specification3.name = "15-1 space-efficient" - - params.items[0].distillation_unit_specifications = [ - specification1, specification2, specification3] - - params.items[1].error_budget = 0.002 - params.items[1].constraints.max_duration = "20s" - - params.items[2].error_budget = 0.003 - params.items[2].constraints.max_physical_qubits = 10000 - - job = estimator.submit(ccnot, input_params=params) - self.assertIsInstance(job, MicrosoftEstimatorJob) - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - if job.details.status != "Succeeded": - raise Exception(f"Job {job.id} not succeeded in " - "test_estimator_batching_job") - result = job.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - errors = [] - if type(result) != MicrosoftEstimatorResult: - errors.append("Unexpected type for result") - - if 'summary_data_frame' not in dir(result): - errors.append("summary_data_frame not method of result") - - from pandas import DataFrame - df = result.summary_data_frame() - if type(df) != DataFrame: - errors.append("Unexpected type for summary data frame") - - self.assertEqual(errors, []) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_failing_job(self): - """ - Submits a job with wrong parameters. - - Checks whether error handling is correct. - """ - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - job = estimator.submit(ccnot, input_params={"errorBudget": 2}) - self.assertIsInstance(job, MicrosoftEstimatorJob) - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - self.assertEqual(job.details.status, "Failed") - - expected = "Cannot retrieve results as job execution failed " \ - "(InvalidInputError: The error budget must be " \ - "between 0.0 and 1.0, provided input was `2`)" - with raises(RuntimeError, match=re.escape(expected)): - _ = job.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - - @pytest.mark.microsoft_qc - def test_estimator_failing_job_client_validation(self): - """ - Submits a job with wrong parameters. - - Checks whether error handling is correct. - """ - - # This test will not send any request (not even authentication), - # because the error is caught before submit can send a request. - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - params = estimator.make_params() - params.error_budget = 2 - expected = "error_budget must be value between 0 and 1" - with raises(ValueError, match=expected): - estimator.submit(ccnot, input_params=params) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_qiskit_job(self): - """ - Submits a job from a Qiskit QuantumCircuit. - - Checks whether error handling is correct. - """ - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - from qiskit import QuantumCircuit - circ = QuantumCircuit(3) - circ.crx(0.2, 0, 1) - circ.ccx(0, 1, 2) - - job = estimator.submit(circ) - - self.assertIsInstance(job, MicrosoftEstimatorJob) - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - - self.assertEqual(job.details.status, JobStatus.SUCCEEDED) - - result = job.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - self.assertIsInstance(result, MicrosoftEstimatorResult) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_profiling_job(self): - """ - Submits a job with profiling information. - """ - from graphviz import Digraph - - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - params = estimator.make_params() - params.profiling.call_stack_depth = 0 - - job = estimator.submit(ccnot, input_params=params) - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - - self.assertEqual(job.details.status, JobStatus.SUCCEEDED) - result = job.get_results(timeout_secs=DEFAULT_TIMEOUT_SECS) - self.assertIsInstance(result.call_graph, Digraph) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_estimator_warn_on_passed_shots(self): - ws = self.create_workspace() - estimator = MicrosoftEstimator(ws) - - ccnot = self._ccnot_bitcode() - - with pytest.warns(match="The 'shots' parameter is ignored in resource estimation."): - job = estimator.submit(ccnot, shots=10) - - job.wait_until_completed(timeout_secs=DEFAULT_TIMEOUT_SECS) - - def test_estimator_params_validation_valid_cases(self): - """ - Checks validation cases for resource estimation parameters for valid - cases. - """ - params = MicrosoftEstimatorParams() - - params.error_budget = 0.1 - params.qubit_params.name = QubitParams.GATE_NS_E3 - params.qubit_params.instruction_set = "gate_based" - params.qubit_params.t_gate_error_rate = 0.03 - params.qubit_params.t_gate_time = "10 ns" - params.qubit_params.idle_error_rate = 0.02 - - # If validation would be wrong, the call to as_dict will raise an - # exception. - params.as_dict() - - def test_estimator_params_validation_large_error_budget(self): - params = MicrosoftEstimatorParams() - params.error_budget = 2 - expected = "error_budget must be value between 0 and 1" - with raises(ValueError, match=expected): - params.as_dict() - - def test_estimator_params_validation_small_error_budget(self): - params = MicrosoftEstimatorParams() - params.error_budget = 0 - expected = "error_budget must be value between 0 and 1" - with raises(ValueError, match=expected): - params.as_dict() - - def test_estimator_params_validation_invalid_instruction_set(self): - params = MicrosoftEstimatorParams() - params.qubit_params.instruction_set = "invalid" - with raises(ValueError, match="instruction_set must be GateBased or " - "Majorana"): - params.as_dict() - - def test_estimator_params_validation_invalid_error_rate(self): - params = MicrosoftEstimatorParams() - params.qubit_params.t_gate_error_rate = 0 - with raises(ValueError, match="t_gate_error_rate must be between 0 " - "and 1"): - params.as_dict() - - def test_estimator_params_validation_invalid_gate_time_type(self): - params = MicrosoftEstimatorParams() - params.qubit_params.t_gate_time = 20 - with raises(TypeError, match="expected string or bytes-like object"): - params.as_dict() - - def test_estimator_params_validation_invalid_gate_time_value(self): - params = MicrosoftEstimatorParams() - params.qubit_params.t_gate_time = "20" - with raises(ValueError, match="t_gate_time is not a valid time " - "string; use a suffix s, ms, us, or ns"): - params.as_dict() - - def test_estimator_params_validation_missing_instruction_set(self): - params = MicrosoftEstimatorParams() - params.qubit_params.t_gate_time = "1 ns" - with raises(LookupError, match="instruction_set must be set for " - "custom qubit parameters"): - params.as_dict() - - def test_estimator_params_validation_missing_fields(self): - params = MicrosoftEstimatorParams() - params.qubit_params.instruction_set = "gateBased" - params.qubit_params.t_gate_time = "1 ns" - with raises(LookupError, match="one_qubit_measurement_time must be " - "set"): - params.as_dict() - - def test_estimator_params_validation_measurement_error_rates_valid(self): - params = MicrosoftEstimatorParams() - - params.error_budget = 0.1 - params.qubit_params.name = QubitParams.GATE_NS_E3 - params.qubit_params.instruction_set = "gate_based" - params.qubit_params.t_gate_error_rate = 0.03 - params.qubit_params.t_gate_time = "10 ns" - params.qubit_params.idle_error_rate = 0.02 - params.qubit_params.one_qubit_measurement_error_rate = 0.01 - params.qubit_params.two_qubit_joint_measurement_error_rate = \ - MeasurementErrorRate(process=0.02, readout=0.03) - - assert params.as_dict() == { - "errorBudget": 0.1, - "qubitParams": {"name": "qubit_gate_ns_e3", - "instructionSet": "gate_based", - "tGateErrorRate": 0.03, - "tGateTime": "10 ns", - "idleErrorRate": 0.02, - "oneQubitMeasurementErrorRate": 0.01, - "twoQubitJointMeasurementErrorRate": - {"process": 0.02, "readout": 0.03}} - } - - def test_estimator_error_budget_float(self): - params = MicrosoftEstimatorParams() - params.error_budget = 0.001 - assert params.as_dict() == {"errorBudget": 0.001} - - def test_estimator_error_budget_partition(self): - params = MicrosoftEstimatorParams() - params.error_budget = ErrorBudgetPartition(0.01, 0.02, 0.03) - assert params.as_dict() == { - "errorBudget": { - "logical": 0.01, - "rotations": 0.03, - "tStates": 0.02 - } - } - - def test_estimator_profiling_valid_fields(self): - params = MicrosoftEstimatorParams() - params.profiling.call_stack_depth = 10 - params.profiling.inline_functions = True - assert params.as_dict() == { - "profiling": { - "callStackDepth": 10, - "inlineFunctions": True - } - } - - def test_estimator_profiling_invalid_fields(self): - params = MicrosoftEstimatorParams() - params.profiling.call_stack_depth = 50 - params.profiling.inline_functions = True - with raises(ValueError, match="call_stack_depth must be nonnegative " - "and at most 30"): - params.as_dict() - - def test_estimator_custom_distillation_units_by_name(self): - params = MicrosoftEstimatorParams() - unit1 = DistillationUnitSpecification() - unit1.name = "S" - params.distillation_unit_specifications.append(unit1) - - unit2 = DistillationUnitSpecification() - unit2.name = "T" - params.distillation_unit_specifications.append(unit2) - - assert params.as_dict() == { - "distillationUnitSpecifications": [{"name": "S"}, {"name": "T"}] - } - - def test_estimator_custom_distillation_units_empty_not_allowed(self): - params = MicrosoftEstimatorParams() - unit = DistillationUnitSpecification() - params.distillation_unit_specifications.append(unit) - - with raises(LookupError, match="name must be set or custom specification must be provided"): - params.as_dict() - - def test_estimator_custom_distillation_units_name_and_custom_not_allowed_together(self): - params = MicrosoftEstimatorParams() - unit = DistillationUnitSpecification() - unit.name = "T" - unit.num_output_ts = 1 - params.distillation_unit_specifications.append(unit) - - with raises(LookupError, match="If predefined name is provided, " - "custom specification is not allowed. " - "Either remove name or remove all other " - "specification of the distillation unit"): - params.as_dict() - - def test_estimator_custom_distillation_units_by_specification_short(self): - params = MicrosoftEstimatorParams() - unit = DistillationUnitSpecification() - unit.display_name = "T" - unit.failure_probability_formula = "c" - unit.output_error_rate_formula = "r" - unit.num_input_ts = 1 - unit.num_output_ts = 2 - params.distillation_unit_specifications.append(unit) - - assert params.as_dict() == { - "distillationUnitSpecifications": - [{"displayName": "T", "failureProbabilityFormula": "c", - "outputErrorRateFormula": "r", "numInputTs": 1, "numOutputTs": 2}] - } - - def test_estimator_custom_distillation_units_by_specification_full(self): - params = MicrosoftEstimatorParams() - unit = DistillationUnitSpecification() - unit.display_name = "T" - unit.failure_probability_formula = "c" - unit.output_error_rate_formula = "r" - unit.num_input_ts = 1 - unit.num_output_ts = 2 - - physical_qubit_specification = ProtocolSpecificDistillationUnitSpecification() - physical_qubit_specification.num_unit_qubits = 1 - physical_qubit_specification.duration_in_qubit_cycle_time = 2 - unit.physical_qubit_specification = physical_qubit_specification - - logical_qubit_specification = ProtocolSpecificDistillationUnitSpecification() - logical_qubit_specification.num_unit_qubits = 3 - logical_qubit_specification.duration_in_qubit_cycle_time = 4 - unit.logical_qubit_specification = logical_qubit_specification - - logical_qubit_specification_first_round_override = \ - ProtocolSpecificDistillationUnitSpecification() - logical_qubit_specification_first_round_override.num_unit_qubits = 5 - logical_qubit_specification_first_round_override.duration_in_qubit_cycle_time = 6 - unit.logical_qubit_specification_first_round_override = \ - logical_qubit_specification_first_round_override - - params.distillation_unit_specifications.append(unit) - - print(params.as_dict()) - assert params.as_dict() == { - "distillationUnitSpecifications": - [{"displayName": "T", "numInputTs": 1, "numOutputTs": 2, - "failureProbabilityFormula": "c", "outputErrorRateFormula": "r", - "physicalQubitSpecification": {"numUnitQubits": 1, "durationInQubitCycleTime": 2}, - "logicalQubitSpecification": {"numUnitQubits": 3, "durationInQubitCycleTime": 4}, - "logicalQubitSpecificationFirstRoundOverride": - {"numUnitQubits": 5, "durationInQubitCycleTime": 6}}] - } - - def test_estimator_protocol_specific_distillation_unit_specification_empty_not_allowed(self): - specification = ProtocolSpecificDistillationUnitSpecification() - with raises(LookupError, match="num_unit_qubits must be set"): - specification.as_dict() - - def test_estimator_protocol_specific_distillation_unit_specification_missing_num_unit_qubits(self): - specification = ProtocolSpecificDistillationUnitSpecification() - specification.duration_in_qubit_cycle_time = 1 - with raises(LookupError, match="num_unit_qubits must be set"): - specification.as_dict() - - def test_estimator_protocol_specific_distillation_unit_specification_missing_duration_in_qubit_cycle_time(self): - specification = ProtocolSpecificDistillationUnitSpecification() - specification.num_unit_qubits = 1 - with raises(LookupError, match="duration_in_qubit_cycle_time must be set"): - specification.as_dict() - - def test_estimator_protocol_specific_distillation_unit_specification_valid(self): - specification = ProtocolSpecificDistillationUnitSpecification() - specification.num_unit_qubits = 1 - specification.duration_in_qubit_cycle_time = 2 - assert specification.as_dict() == { - "numUnitQubits": 1, "durationInQubitCycleTime": 2 - } - - def test_simple_result_as_json(self): - data = self._mock_result_data() - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - def test_batch_result_as_json(self): - data = [self._mock_result_data(), self._mock_result_data()] - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - def test_list_status_all_failed(self): - data = [self._mock_result_data_full( - "error"), self._mock_result_data_full("failure")] - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - data_frame = result.summary_data_frame() - assert data_frame.values.real[0][0] == "No solution found" - assert data_frame.values.real[1][5] == "No solution found" - - assert not hasattr(result[0], "summary") - assert not hasattr(result[1], "summary") - - assert not hasattr(result[0], "diagram") - assert not hasattr(result[1], "diagram") - - def test_list_status_partial_success(self): - data = [self._mock_result_data_full( - "success"), self._mock_result_data_full("error")] - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - data_frame = result.summary_data_frame() - assert data_frame.values.real[0][0] == 10 - assert data_frame.values.real[1][5] == "No solution found" - - assert hasattr(result[0], "summary") - assert not hasattr(result[1], "summary") - - assert hasattr(result[0], "diagram") - assert not hasattr(result[1], "diagram") - - def test_dict_status_failed(self): - data = self._mock_result_data_full("error") - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - assert not hasattr(result, "summary_data_frame") - - assert not hasattr(result, "summary") - assert not hasattr(result, "diagram") - - def test_dict_status_success(self): - data = self._mock_result_data_full("success") - result = MicrosoftEstimatorResult(data) - - import json - assert json.loads(result.json) == data - - assert not hasattr(result, "summary_data_frame") - - assert hasattr(result, "summary") - assert hasattr(result, "diagram") - - def test_duration_and_physical_qubits_constraints_not_allowed_together(self): - constraints = MicrosoftEstimatorConstraints() - constraints.max_physical_qubits = 100 - constraints.max_duration = "5s" - with raises(LookupError, match="Both duration and number of physical qubits constraints are provided, but only one is allowe at a time."): - constraints.as_dict() diff --git a/azure-quantum/tests/unit/test_params.py b/azure-quantum/tests/unit/test_params.py index f070c6ab2..259783092 100644 --- a/azure-quantum/tests/unit/test_params.py +++ b/azure-quantum/tests/unit/test_params.py @@ -11,7 +11,6 @@ from pytest import raises from azure.quantum.argument_types import EmptyArray, Pauli, Range, Result from azure.quantum.target.params import InputParams -from azure.quantum.target.microsoft import MicrosoftEstimatorParams class TestWorkspace(QuantumTestBase): @@ -67,19 +66,6 @@ def test_params_file_uris(self): 'fileUris': {'base': 'https://some_link'}, 'resumeAfterFailedItem': True}) - def test_params_for_estimator(self): - params = MicrosoftEstimatorParams(num_items=2) - params.entry_point = "run_program" - params.items[0].entry_point = "other_program" - params.file_uris["base"] = "https://some_link" - params.error_budget = 0.23 - self.assertEqual(params.as_dict(), { - 'entryPoint': 'run_program', - 'errorBudget': 0.23, - 'items': [{'entryPoint': 'other_program'}, {}], - 'fileUris': {'base': 'https://some_link'}, - 'resumeAfterFailedItem': True}) - def test_input_argument_simple_types(self): params = InputParams() params.arguments["bitwidth"] = 42 diff --git a/azure-quantum/tests/unit/test_qiskit.py b/azure-quantum/tests/unit/test_qiskit.py index 7c8f4398e..93529e2eb 100644 --- a/azure-quantum/tests/unit/test_qiskit.py +++ b/azure-quantum/tests/unit/test_qiskit.py @@ -1768,103 +1768,6 @@ def test_qiskit_endianness_submit_to_rigetti( self.assertEqual(sum(result.data()["counts"].values()), shots) self.assertEqual(result.data()["counts"][expectation], shots) - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_qiskit_controlled_s_to_resource_estimator(self): - from pyqir import rt - - patcher = unittest.mock.patch.object(rt, "initialize") - patcher.start() - - workspace = self.create_workspace() - provider = AzureQuantumProvider(workspace=workspace) - backend = provider.get_backend("microsoft.estimator") - - circuit = self._controlled_s() - - qiskit_job = backend.run(circuit) - - # Make sure the job is completed before fetching results - self._qiskit_wait_to_complete(qiskit_job, provider) - - patcher.stop() - - self.assertEqual(qiskit_job.status(), JobStatus.DONE) - if JobStatus.DONE == qiskit_job.status(): - result = qiskit_job.result() - self.assertEqual(result.data()["logicalCounts"]["numQubits"], 2) - self.assertEqual(result.data()["jobParams"]["qubitParams"]["name"], "qubit_gate_ns_e3") - self.assertEqual(result.data()["jobParams"]["qecScheme"]["name"], "surface_code") - self.assertEqual(result.data()["jobParams"]["errorBudget"], 0.001) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_qiskit_controlled_s_to_resource_estimator_with_high_error_rate(self): - from pyqir import rt - - patcher = unittest.mock.patch.object(rt, "initialize") - patcher.start() - - workspace = self.create_workspace() - provider = AzureQuantumProvider(workspace=workspace) - backend = provider.get_backend("microsoft.estimator") - - circuit = self._controlled_s() - - qiskit_job = backend.run( - circuit, qubitParams={"name": "qubit_gate_ns_e4"}, errorBudget=0.0001 - ) - - # Make sure the job is completed before fetching results - self._qiskit_wait_to_complete(qiskit_job, provider) - - patcher.stop() - - self.assertEqual(qiskit_job.status(), JobStatus.DONE) - if JobStatus.DONE == qiskit_job.status(): - result = qiskit_job.result() - self.assertEqual(result.data()["logicalCounts"]["numQubits"], 2) - self.assertEqual(result.data()["jobParams"]["qubitParams"]["name"], "qubit_gate_ns_e4") - self.assertEqual(result.data()["jobParams"]["qecScheme"]["name"], "surface_code") - self.assertEqual(result.data()["jobParams"]["errorBudget"], 0.0001) - - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_qiskit_controlled_s_to_resource_estimator_with_items(self): - from pyqir import rt - - patcher = unittest.mock.patch.object(rt, "initialize") - patcher.start() - - workspace = self.create_workspace() - provider = AzureQuantumProvider(workspace=workspace) - backend = provider.get_backend("microsoft.estimator") - - circuit = self._controlled_s() - - item1 = {"qubitParams": {"name": "qubit_gate_ns_e3"}, "errorBudget": 1e-4} - item2 = {"qubitParams": {"name": "qubit_gate_ns_e4"}, "errorBudget": 1e-4} - qiskit_job = backend.run(circuit, items=[item1, item2]) - - # Make sure the job is completed before fetching results - self._qiskit_wait_to_complete(qiskit_job, provider) - - patcher.stop() - - self.assertEqual(qiskit_job.status(), JobStatus.DONE) - if JobStatus.DONE == qiskit_job.status(): - result = qiskit_job.result() - - self.assertEqual(result.data(0)["logicalCounts"]["numQubits"], 2) - self.assertEqual(result.data(0)["jobParams"]["qubitParams"]["name"], "qubit_gate_ns_e3") - self.assertEqual(result.data(0)["jobParams"]["qecScheme"]["name"], "surface_code") - self.assertEqual(result.data(0)["jobParams"]["errorBudget"], 0.0001) - - self.assertEqual(result.data(1)["logicalCounts"]["numQubits"], 2) - self.assertEqual(result.data(1)["jobParams"]["qubitParams"]["name"], "qubit_gate_ns_e4") - self.assertEqual(result.data(1)["jobParams"]["qecScheme"]["name"], "surface_code") - self.assertEqual(result.data(1)["jobParams"]["errorBudget"], 0.0001) - def test_backend_without_azure_config_format_defaults_to_ms_format(self): backend = NoopQirBackend(None, "AzureQuantumProvider") output_data_format = backend._get_output_data_format() diff --git a/azure-quantum/tests/unit/test_qsharp.py b/azure-quantum/tests/unit/test_qsharp.py index b7b12b6a1..0c2771280 100644 --- a/azure-quantum/tests/unit/test_qsharp.py +++ b/azure-quantum/tests/unit/test_qsharp.py @@ -35,16 +35,6 @@ def test_qsharp_qir_inline_quantinuum(self): def test_qsharp_qir_file_quantinuum(self): self._run_job("quantinuum.sim.h1-1e", inline=False) - @pytest.mark.skip("Modern Q# doesn't currently support QIR format required by \"microsoft.estimator\" target") - @pytest.mark.microsoft_qc - def test_qsharp_qir_inline_microsoft_qc(self): - self._run_job("microsoft.estimator", inline=True) - - @pytest.mark.skip("Modern Q# doesn't currently support QIR format required by \"microsoft.estimator\" target") - @pytest.mark.microsoft_qc - def test_qsharp_qir_file_microsoft_qc(self): - self._run_job("microsoft.estimator", inline=False) - def _run_job(self, target_name, inline): workspace = self.create_workspace() target = workspace.get_targets(target_name) diff --git a/azure-quantum/tests/unit/test_workspace.py b/azure-quantum/tests/unit/test_workspace.py index 11cf457ff..62707078c 100644 --- a/azure-quantum/tests/unit/test_workspace.py +++ b/azure-quantum/tests/unit/test_workspace.py @@ -329,16 +329,6 @@ def test_workspace_get_targets_result_type(self): target = ws.get_targets(name="ionq.qpu.aria-1") assert not isinstance(target, list) - @pytest.mark.microsoft_qc - @pytest.mark.live_test - def test_workspace_get_target_microsoft_qc(self): - from azure.quantum.target.microsoft import MicrosoftEstimator - - ws = self.create_workspace() - target = ws.get_targets("microsoft.estimator") - - self.assertEqual(type(target), MicrosoftEstimator) - @pytest.mark.live_test def test_workspace_job_quotas(self): ws = self.create_workspace() diff --git a/samples/resource-estimator/README.md b/samples/resource-estimator/README.md deleted file mode 100644 index bea1a0722..000000000 --- a/samples/resource-estimator/README.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -page_type: sample -author: msoeken -description: Azure Quantum Resource Estimation -ms.author: masoeken@microsoft.com -ms.date: -languages: -- python -- qsharp -products: -- azure-quantum ---- - -# Azure Quantum Resource Estimation - -This folder contains various sample notebooks to interact with the Azure Quantum Resource Estimator. - -## Manifest - -- [estimation-qiskit.ipynb](https://github.com/microsoft/azure-quantum-python/blob/main/samples/resource-estimator/estimation-qiskit.ipynb): Estimates with Qiskit input -- [estimation-qir.ipynb](https://github.com/microsoft/azure-quantum-python/blob/main/samples/resource-estimator/estimation-qir.ipynb): Estimate with tools producing QIR -- [estimation-chemistry.ipynb](https://github.com/microsoft/azure-quantum-python/blob/main/samples/resource-estimator/estimation-chemistry.ipynb): Resource estimation for a double-factorized chemistry application diff --git a/samples/resource-estimator/estimation-chemistry.ipynb b/samples/resource-estimator/estimation-chemistry.ipynb deleted file mode 100644 index 5d04843bb..000000000 --- a/samples/resource-estimator/estimation-chemistry.ipynb +++ /dev/null @@ -1,295 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Resource Estimation for Double-factorized Chemistry\n", - "\n", - "In this notebook we evaluate the physical resource estimates of using the\n", - "so-called _double-factorized qubitization_ algorithm described in [[Phys. Rev.\n", - "Research 3, 033055 (2021)](https://doi.org/10.1103/PhysRevResearch.3.033055)] to\n", - "calculate the energy of a user provided Hamiltonian to chemical accuracy of 1\n", - "mHa. The Hamiltonian is provided in terms of an FCIDUMP file that is accessible\n", - "via an HTTPS URI.\n", - "\n", - "The _qubitization_ approach is based on quantum phase estimation, but instead of\n", - "constructing the standard $U = \\exp{(-i H/\\alpha)}$ from the Hamiltonian matrix\n", - "$H$, one takes $U = \\exp{(-i \\sin^{-1} (H/\\alpha))}$, which can typically be\n", - "implemented with fewer resources. Using _double-factorization_, $H$ is\n", - "represented compactly through a combination of a judicious choice of orbitals\n", - "and compression. The tolerated total error budget is $\\epsilon = 0.01$,\n", - "corresponding to $1\\%$." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Getting started\n", - "\n", - "We import several Python classes and functions from `azure.quantum`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azure.quantum import Workspace\n", - "from azure.quantum.target.microsoft import MicrosoftEstimator\n", - "from azure.quantum.chemistry import df_chemistry" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We connect to the Azure Quantum workspace by creating a new workspace." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "workspace = Workspace(\n", - " resource_id=\"\",\n", - " location=\"\"\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This workspace is then used to create an instance to the Resource Estimator." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "estimator = MicrosoftEstimator(workspace)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Configuring a resource estimation job\n", - "\n", - "We start by creating a parameter instance for the resource estimator, which allows us to configure all parameters associated to the estimation job. In this scenario, we want to evaluate estimates for six different qubit parameter configurations, therefore we set the number of items in the job to 6." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "params = estimator.make_params(num_items=6)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we are providing a link to the FCIDUMP file that describes the Hamiltonian, which is passed via a URI. For example, you can choose some of the following URIs:\n", - "\n", - "| URI | Instance name | Description |\n", - "|----------------------------------------------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n", - "| https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e-56o | 64 electron, 56 orbital active space of one of the stable intermediates in the [ruthenium-catalyzed carbon fixation cycle](https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.3.033055) |\n", - "| https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase-54e-54o | 54 electron, 54 orbital active space of the active core of the nitrogenase that is used in [this paper](https://www.pnas.org/doi/10.1073/pnas.1619152114) |\n", - "| https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 electron, 40 orbital active space of [2Fe, 2S] cluster that is shown in [this paper](https://www.nature.com/articles/nchem.2041) |\n", - "| https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 electron, 24 orbital active space of the polyyne molecule |\n", - "| https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 electron, 8 orbital active space of he dissociated nitrogen at 3 Angstrom distance |\n", - "\n", - "You can also pass your own FCIDUMP files via \n", - "* [raw links to files in Github](https://learn.github.com/repositories/working-with-files/using-files/viewing-a-file#viewing-or-copying-the-raw-file-content) repositories (see how to [add files to Github repositories](https://learn.github.com/repositories/working-with-files/managing-files/creating-new-files))\n", - "* [files on Github gists](https://learn.github.com/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists)\n", - "* [files in Azure Blob Storage](https://learn.microsoft.com/azure/storage/blobs/storage-blobs-introduction) using [SAS tokens](https://learn.microsoft.com/azure/cognitive-services/translator/document-translation/how-to-guides/create-sas-tokens?tabs=Containers#create-sas-tokens-in-the-azure-portal)\n", - "\n", - "The URI is passed to the parameters as so called file URI with the name `\"fcidumpUri\"`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "params.file_uris[\"fcidumpUri\"] = \"https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The quantum algorithms requires a total accuracy if 0.01, i.e., 1%, in order to obtain a chemical accuracy of 1 mHa. We can instruct the resource estimator to use a total error budget of 0.01, which is distributed to all possible sub components in the execution of the quantum algorithm that may fail. (More details on the error budget can be found in the [Azure Quantum documentation](https://learn.microsoft.com/azure/quantum/overview-resources-estimator#error-budget).)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "params.error_budget = 0.01" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we are specifying the qubit parameters. Here we are choosing all six pre-defined qubit parameter models. These are four gate-based models with operation times in the microsecond and nanosecond regime, as well as assumptions on their physical error rates of $10^{-3}$ and $10^{-4}$, respectively. The other two are Majorana based models with operation times in the nanosecond regime and physical error rates of $10^{-4}$ and $10^{-6}$. For the Majorana based models we assume a Floquet code as QEC scheme. More details on these parameters and assumptions, as well as how to customize these, can be found in the [Azure Quantum documentation](https://learn.microsoft.com/azure/quantum/overview-resources-estimator)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "params.items[0].qubit_params.name = \"qubit_gate_us_e3\"\n", - "params.items[1].qubit_params.name = \"qubit_gate_us_e4\"\n", - "params.items[2].qubit_params.name = \"qubit_gate_ns_e3\"\n", - "params.items[3].qubit_params.name = \"qubit_gate_ns_e4\"\n", - "params.items[4].qubit_params.name = \"qubit_maj_ns_e4\"\n", - "params.items[4].qec_scheme.name = \"floquet_code\"\n", - "params.items[5].qubit_params.name = \"qubit_maj_ns_e6\"\n", - "params.items[5].qec_scheme.name = \"floquet_code\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The parameters are now all set up, and we are ready to go to submit the resource estimation job. As quantum program, we are using the double-factorization based quantum chemistry algorithm, which is provided via the `df_chemistry` function. The execution of this cell may take a few minutes depending on program size. Once the job is finished, we are obtaining the results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job = estimator.submit(df_chemistry(), input_params=params)\n", - "results = job.get_results()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyzing the results\n", - "\n", - "Finally, we are presenting the experimental results using a summary table." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "labels = [\"Gate-based µs, 10⁻³\", \"Gate-based µs, 10⁻⁴\", \"Gate-based ns, 10⁻³\", \"Gate-based ns, 10⁻⁴\", \"Majorana ns, 10⁻⁴\", \"Majorana ns, 10⁻⁶\"]\n", - "\n", - "results.summary_data_frame(labels=labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each row corresponds to one of the six qubit parameter configurations, where the first column shows a textual description for the model. The next three columns show technology-independent resources, which are the number of logical qubits, the logical depth, which is the number of logical operations performed in sequence, as well as the number of T states that are consumed by the logical operations. T states originate from complex operations in the quantum algorithm, e.g., Toffoli gates or rotation gates.\n", - "\n", - "Next, the code distance indicates the error correction overhead to guarantee a sufficient logical error rate for the logical operations. The number of T factories indicates how many T factories are executed in parallel to produce the total number of T states. The T factory fraction describes the percentage of the number of qubits that are used to execute T factories, the rest is used to execute the logical operations of the algorithm. Finally, the last two columns show the total number of physical qubits and the wall clock runtime to execute the quantum algorithm given the assumed qubit parameters." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Detailed resource estimates\n", - "\n", - "We can also have a more detailed look into the resource estimates. Here we show the details for the last configuration (index 5). The output is a table with the overall physical resource counts. You can further inspect more details about the resource estimates by collapsing various groups which have more information. For example, if you collapse the Logical qubit parameters group, you can see how the overhead to represent a logical qubit using physical qubits is derived. The last group shows the physical qubit properties that were assumed for this estimation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "results[5]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also compare different configurations. In this case we compare the gate-based nanosecond model with the Majorana based model for an error rate of $10^{-4}$. These correspond to indices 3 and 4, not that intervals in Python are half-open." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "results[3:5]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Next steps" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this notebook, you've estimated the quantum computing requirements to calculate the energy of a Hamiltonian. Nice job! 👏🏽\n", - "\n", - "The numbers for the XVIII-cas4-fb-64e-56o instance roughly match the numbers in\n", - "the paper [Assessing requirements for scaling quantum computers to real-world\n", - "impact](https://aka.ms/AQ/RE/Paper), as we incorporated a few improvements in\n", - "the implementation of the double-factorized chemistry algorithm as compared to\n", - "the version used when the paper was published.\n", - "\n", - "We hope that this notebook was helpful to you. Here are some suggestions for next steps:\n", - "* Try to estimate some custom FCIDUMP files\n", - "* Investigate the details of resource estimation by exploring the detailed resource estimation tables\n", - "* Modify the assumptions on the target quantum computer by providing custom qubit parameters\n", - "* Check out the other resource estimation sample notebooks in the Azure Quantum sample gallery" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## ℹ️ Relationship with VQE algorithms\n", - "\n", - "VQE algorithms are useful for building an understanding of the current limits of quantum hardware for the purposes of education and research. In the longer term, we will simulate quantum systems using more efficient algorithms tailored for large-scale fault-tolerant quantum hardware.\n", - "\n", - "Notable simulation algorithms, such as qubitization, quantum signal processing, or trotterization, can be used as subroutines in the quantum phase estimation (QPE) algorithm to obtain high-accuracy energy estimates of a targeted eigenstate. The Azure Quantum Resource Estimator is designed with these long-term algorithms (particularly QPE + qubitization) in mind (rather than VQE).\n", - "\n", - "As the current QPE + qubitization implementation is optimized for large-scale fault-tolerant quantum hardware, the quantum resource estimates generated by the Resource Estimator will be much larger than what is required to run VQE for these systems." - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/samples/resource-estimator/estimation-qir.ipynb b/samples/resource-estimator/estimation-qir.ipynb deleted file mode 100644 index 931b6936b..000000000 --- a/samples/resource-estimator/estimation-qir.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Estimates with tools producing QIR\n", - "\n", - "Azure Quantum Resource Estimation is built upon [QIR](https://www.qir-alliance.org/), the forward-looking, fully interoperable specification for quantum programs. In this notebook, we are showing how to use the `azure.quantum` Python package to directly submit QIR to the Resource Estimation target. We are using [PyQIR](https://github.com/qir-alliance/pyqir) to generate QIR, however the example works with any other source of QIR as well. PyQIR can help you as a library to generate QIR from other quantum programming languages, and thereby enabling their execution on Azure Quantum Resource Estimator." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Getting started\n", - "\n", - "We import several Python classes and functions from `azure.quantum` and `pyqir`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azure.quantum import Workspace\n", - "from azure.quantum.target.microsoft import MicrosoftEstimator\n", - "\n", - "# Support code to transition from pyqir-generator to pyqir package\n", - "try:\n", - " from pyqir.generator import BasicQisBuilder, SimpleModule\n", - "except:\n", - " from pyqir import BasicQisBuilder, SimpleModule" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We connect to the Azure Quantum workspace." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "workspace = Workspace(\n", - " resource_id = \"\",\n", - " location = \"\"\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We create an instance of the Resource Estimator in that workspace. Make sure that you have the _Microsoft Quantum Computing_ provider added to the workspace." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "estimator = MicrosoftEstimator(workspace)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Running a sample quantum program\n", - "\n", - "Let's now create some QIR bitcode using PyQIR generator. Here, we build a controlled S gate using 3 T gates and 2 CNOT gates." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "module = SimpleModule(\"Controlled S\", num_qubits=2, num_results=0)\n", - "qis = BasicQisBuilder(module.builder)\n", - "\n", - "[a, b] = module.qubits[0:2]\n", - "qis.t(a)\n", - "qis.t(b)\n", - "qis.cx(a, b)\n", - "qis.t_adj(b)\n", - "qis.cx(a, b)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before we submit the QIR to the resource estimator, let's take a look at the QIR\n", - "output for this module. We can use the `ir` function from PyQIR for that\n", - "purpose, that generates human-readable instructions." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(module.ir())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The QIR we submit to the function defined above must be passed in bitcode\n", - "format. We obtain this format by calling `bitcode` instead of `ir` on the\n", - "module. We can also pass resource estimation specific arguments, e.g., setting\n", - "the error rate to 0.5%." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "params = estimator.make_params()\n", - "params.error_budget = 0.005\n", - "job = estimator.submit(module.bitcode(), input_params=params)\n", - "result = job.get_results()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we print the resource estimation table." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result" - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/samples/resource-estimator/estimation-qiskit.ipynb b/samples/resource-estimator/estimation-qiskit.ipynb deleted file mode 100644 index 8cada62e6..000000000 --- a/samples/resource-estimator/estimation-qiskit.ipynb +++ /dev/null @@ -1,673 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Getting Started with Azure Quantum Resource Estimation using Qiskit\n", - "\n", - "👋 Welcome to the Azure Quantum Resource Estimator. In this notebook we will\n", - "guide you how to estimate and analyze the physical resource estimates of a\n", - "quantum program targeted for execution based on the architecture design of a\n", - "fault-tolerant quantum computer. As a running example we are using a multiplier." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Implementing the algorithm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As a first step, we will create a sample application which will be used throughout this Resource Estimation notebook. To start, we'll import some Python packages from `azure.quantum` and `qiskit`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# These are the Python imports that we use in this Qiskit-based example\n", - "\n", - "from azure.quantum.qiskit import AzureQuantumProvider\n", - "from qiskit import QuantumCircuit, transpile\n", - "from qiskit.circuit.library import RGQFTMultiplier" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are creating a quantum circuit for a multiplier based on the construction presented in [arXiv:1411.5949](https://arxiv.org/abs/1411.5949) which uses the Quantum Fourier Transform to implement arithmetic. You can adjust the size of the multiplier by changing the `bitwidth` variable. The circuit generation is wrapped in a function that can be called with the bitwidth of the multiplier. The circuit will have two input registers with that bitwidth, and one output register with the size of twice the bitwidth. The function will also print some logical resource counts for the multiplier extracted directly from the quantum circuit." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def create_algorithm(bitwidth, backend):\n", - " print(f\"[INFO] Create a QFT-based multiplier with bitwidth {bitwidth}\")\n", - " \n", - " # Print a warning for large bitwidths that will require some time to generate and\n", - " # transpile the circuit.\n", - " if bitwidth > 18:\n", - " print(f\"[WARN] It will take more than one minute generate a quantum circuit with a bitwidth larger than 18\")\n", - "\n", - " circ = RGQFTMultiplier(num_state_qubits=bitwidth, num_result_qubits=2 * bitwidth)\n", - "\n", - " # One could further reduce the resource estimates by increasing the optimization_level,\n", - " # however, this will also increase the runtime to construct the algorithm. Note, that\n", - " # it does not affect the runtime for resource estimation.\n", - " print(f\"[INFO] Decompose circuit into intrinsic quantum operations\")\n", - "\n", - " # retrieve basis gates from backend\n", - " basis_gates = backend.configuration().basis_gates\n", - " circ = transpile(circ, basis_gates=basis_gates, optimization_level=0)\n", - "\n", - " # print some statistics\n", - " print(f\"[INFO] qubit count: {circ.num_qubits}\")\n", - " print(\"[INFO] gate counts\")\n", - " for gate, count in circ.count_ops().items():\n", - " print(f\"[INFO] - {gate}: {count}\")\n", - "\n", - " return circ" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimating the algorithm\n", - "\n", - "Let's connect to the Azure Quantum workspace and create a backend instance for\n", - "the Azure Quantum Resource Estimator. The backend acts as a target for our\n", - "quantum computing jobs. Examples for other backends include QPUs to execute\n", - "quantum programs on today's quantum computers, or simulators to simulate the\n", - "functional behavior of a quantum program. You can find examples for such\n", - "backends in other notebooks in the _Sample Gallery_." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azure.quantum import Workspace\n", - "from azure.quantum.qiskit import AzureQuantumProvider\n", - "\n", - "workspace = Workspace(\n", - " resource_id = \"\",\n", - " location = \"\",\n", - ")\n", - "\n", - "provider = AzureQuantumProvider(workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "backend = provider.get_backend('microsoft.estimator')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we will create an instance of our algorithm using the `create_algorithm` function. You can adjust the size of the multiplier by changing the `bitwidth` variable." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bitwidth = 4\n", - "\n", - "circ = create_algorithm(bitwidth, backend)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's now estimate the physical resources for this circuit using the default assumptions. We can submit the circuit to the Resource Estimation backend using its `run` method." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job = backend.run(circ)\n", - "result = job.result()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The simplest way to inspect the results of the job is to output them to the notebook. This will output a table with the overall physical resource counts. You can further inspect more details about the resource estimates by collapsing various groups which have more information. For example, if you collapse the *Logical qubit parameters* group, you can see that the quantum error correction (QEC) code distance is 15. In the last group you can see the physical qubit properties that were assumed for this estimation. For example, we see that the time to perform a single-qubit measurement and a single-qubit gate are assumed to be 100 ns and 50 ns, respectively." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The distribution of physical qubits used for the execution of the algorithm instructions and the supporting T factories can provide us valuable information to guide us in applying space and time optimizations. We can visualize this distribution to better understand the estimated space requirements for our algorithm." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.diagram.space" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also visualize the time required to execute the algorithm as it relates to each T factory invocation runtime and the number of T factory invocations." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - ">\n", - "> *You cannot visualize the time and space diagrams in the same cell.*\n", - ">" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.diagram.time" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you prefer a more compact version of the table, in which the descriptions are\n", - "provided by means of tooltips, you can write:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.summary" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also programmatically access all the values that can be passed to the job execution and see which default values were assumed:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.data()[\"jobParams\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see that there are three input parameters that can be customized: `qubitParams`, `qecScheme`, and `errorBudget`.\n", - "\n", - "### Qubit parameters\n", - "\n", - "The first parameter `qubitParams` is used to specify qubit parameters. When\n", - "modeling the physical qubit abstractions, we distinguish between two different\n", - "physical instruction sets that are used to operate the qubits. The physical\n", - "instruction set can be either *gate-based* or *Majorana*. A gate-based\n", - "instruction set provides single-qubit measurement, single-qubit gates (incl. T\n", - " gates), and two-qubit gates. A Majorana instruction set provides a physical T\n", - " gate, single-qubit measurement and two-qubit joint measurement operations.\n", - "\n", - "Qubit parameters can be completely customized. Before we show this, we show hot\n", - "to choose from six pre-defined qubit parameters, four of which have gate-based\n", - "instruction sets and two with a Majorana instruction set. An overview of all\n", - "pre-defined qubit parameters is provided by the following table:\n", - "\n", - "| Pre-defined qubit parameters | Instruction set | References |\n", - "|------------------------------|-----------------|------------------------------------------------------------------------------------------------------------|\n", - "| `\"qubit_gate_ns_e3\"` | gate-based | [arXiv:2003.00024](https://arxiv.org/abs/2003.00024), [arXiv:2111.11937](https://arxiv.org/abs/2111.11937) |\n", - "| `\"qubit_gate_ns_e4\"` | gate-based | [arXiv:2003.00024](https://arxiv.org/abs/2003.00024), [arXiv:2111.11937](https://arxiv.org/abs/2111.11937) |\n", - "| `\"qubit_gate_us_e3\"` | gate-based | [arXiv:1701.04195](https://arxiv.org/abs/1701.04195) |\n", - "| `\"qubit_gate_us_e4\"` | gate-based | [arXiv:1701.04195](https://arxiv.org/abs/1701.04195) |\n", - "| `\"qubit_maj_ns_e4\"` | Majorana | [arXiv:1610.05289](https://arxiv.org/abs/1610.05289) |\n", - "| `\"qubit_maj_ns_e6\"` | Majorana | [arXiv:1610.05289](https://arxiv.org/abs/1610.05289) |\n", - "\n", - "Pre-defined qubit parameters can be selected by specifying the `name` field in\n", - "the `qubitParams`. If no value is provided, `\"qubit_gate_ns_e3\"` is chosen as\n", - "the default qubit parameters.\n", - "\n", - "Let's re-run resource estimation for our running example on the Majorana-based\n", - "qubit parameters `\"qubit_maj_ns_e6\"`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job = backend.run(circ,\n", - " qubitParams={\n", - " \"name\": \"qubit_maj_ns_e6\"\n", - " })\n", - "result = job.result()\n", - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's inspect the physical counts programmatically. For example, we can show all physical resource estimates and their breakdown using the `physicalCounts` field in the result data. This will show the logical qubit error and logical T-state error rates required to match the error budget. By default runtimes are shown in nanoseconds." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.data()[\"physicalCounts\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also explore details about the T factory that was created to execute this algorithm." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "result.data()[\"tfactory\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we are using this data to produce some explanations of how the T factories produce the required T states." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data = result.data()\n", - "tfactory = data[\"tfactory\"]\n", - "breakdown = data[\"physicalCounts\"][\"breakdown\"]\n", - "producedTstates = breakdown[\"numTfactories\"] * breakdown[\"numTfactoryRuns\"] * tfactory[\"numTstates\"]\n", - "\n", - "print(f\"\"\"A single T factory produces {tfactory[\"logicalErrorRate\"]:.2e} T states with an error rate of (required T state error rate is {breakdown[\"requiredLogicalTstateErrorRate\"]:.2e}).\"\"\")\n", - "print(f\"\"\"{breakdown[\"numTfactories\"]} copie(s) of a T factory are executed {breakdown[\"numTfactoryRuns\"]} time(s) to produce {producedTstates} T states ({breakdown[\"numTstates\"]} are required by the algorithm).\"\"\")\n", - "print(f\"\"\"A single T factory is composed of {tfactory[\"numRounds\"]} rounds of distillation:\"\"\")\n", - "for round in range(tfactory[\"numRounds\"]):\n", - " print(f\"\"\"- {tfactory[\"numUnitsPerRound\"][round]} {tfactory[\"unitNamePerRound\"][round]} unit(s)\"\"\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Custom qubit parameters must completely specify all required parameters. These are the values that are\n", - "considered when the `instructionSet` is `\"GateBased\"`.\n", - "\n", - "| Field (*required) | Description |\n", - "|---------------------------------|----------------------------------------------------------------------|\n", - "| `name` | Some descriptive name for the parameters |\n", - "| `oneQubitMeasurementTime`* | Operation time for single-qubit measurement ($t_{\\rm meas}$) in ns |\n", - "| `oneQubitGateTime`* | Operation time for single-qubit Clifford gate ($t_{\\rm gate}$) in ns |\n", - "| `twoQubitGateTime` | Operation time for two-qubit Clifford gate in ns |\n", - "| `tGateTime` | Operation time for single-qubit non-Clifford gate in ns |\n", - "| `oneQubitMeasurementErrorRate`* | Error rate for single-qubit measurement |\n", - "| `oneQubitGateErrorRate`* | Error rate for single-qubit Clifford gate ($p$) |\n", - "| `twoQubitGateErrorRate` | Error rate for two-qubit Clifford gate |\n", - "| `tGateErrorRate` | Error rate to prepare single-qubit non-Clifford state ($p_T$) |\n", - "\n", - "The values for `twoQubitGateTime` and `tGateTime` default to `oneQubitGateTime`\n", - "when not specified; the values for `twoQubitGateErrorRate` and `tGateErrorRate`\n", - "default to `oneQubitGateErrorRate` when not specified.\n", - "\n", - "A minimum template for qubit parameters based on a gate-based instruction set\n", - "with all required values is:\n", - "\n", - "```json\n", - "{\n", - " \"qubitParams\": {\n", - " \"instructionSet\": \"GateBased\",\n", - " \"oneQubitMeasurementTime\":