





'''simple docstring'''




import os
import time

import numpy as np
import onnxruntime as ort


_A:					Tuple							=				"""1"""
_A:					Optional[int]							=				"""0"""
_A:					Union[str, Any]							=				"""1"""

_A:					Union[str, Any]							=				ort.SessionOptions()
_A:					List[str]							=				ort.GraphOptimizationLevel.ORT_DISABLE_ALL
print("""Create inference session...""")
_A:					Union[str, Any]							=				["""TensorrtExecutionProvider""", """CUDAExecutionProvider"""]
_A:					Tuple							=				ort.InferenceSession("""model.onnx""", sess_options=sess_opt, providers=execution_provider)
_A:					Optional[Any]							=				ort.RunOptions()

_A:					Optional[int]							=				128
_A:					Any							=				1
_A:					List[str]							=				np.ones((batch, sequence), dtype=np.intaa)
_A:					Any							=				np.ones((batch, sequence), dtype=np.intaa)
_A:					Dict							=				np.ones((batch, sequence), dtype=np.intaa)

print("""Warm up phase...""")
sess.run(
    None,
    {
        sess.get_inputs()[0].name: input_ids,
        sess.get_inputs()[1].name: attention_mask,
        sess.get_inputs()[2].name: token_type_ids,
    },
    run_options=run_opt,
)

print("""Start inference...""")
_A:					Optional[int]							=				time.time()
_A:					Union[str, Any]							=				2_000
_A:					List[Any]							=				{}
for iter in range(max_iters):
    _A:					List[Any]							=				sess.run(
        None,
        {
            sess.get_inputs()[0].name: input_ids,
            sess.get_inputs()[1].name: attention_mask,
            sess.get_inputs()[2].name: token_type_ids,
        },
        run_options=run_opt,
    )
print("""Average Inference Time = {:.3f} ms""".format((time.time() - start_time) * 1_000 / max_iters))












'''simple docstring'''




import math

import numpy as np
import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute







def _lowerCAmelCase     (      _lowerCAmelCase = 3    )->     qiskit.result.counts.Counts:
 if isinstance(_lowerCAmelCase       ,    _lowerCAmelCase    ):
  raise TypeError('number of qubits must be a integer.'    )
 if number_of_qubits <= 0:
  raise ValueError('number of qubits must be > 0.'    )
 if math.floor(_lowerCAmelCase    ) != number_of_qubits:
  raise ValueError('number of qubits must be exact integer.'    )
 if number_of_qubits > 10:
  raise ValueError('number of qubits too large to simulate(>10).'    )

 __UpperCAmelCase					=   QuantumRegister(_lowerCAmelCase       ,    'qr'    )
 __UpperCAmelCase					=   ClassicalRegister(_lowerCAmelCase       ,    'cr'    )

 __UpperCAmelCase					=   QuantumCircuit(_lowerCAmelCase       ,    _lowerCAmelCase    )

 __UpperCAmelCase					=   number_of_qubits

 for i in range(_lowerCAmelCase    ):
  quantum_circuit.h(number_of_qubits - i - 1    )
  counter -= 1
  for j in range(_lowerCAmelCase    ):
   quantum_circuit.cp(np.pi / 2 ** (counter - j)       ,    _lowerCAmelCase       ,    _lowerCAmelCase    )

 for k in range(number_of_qubits // 2    ):
  quantum_circuit.swap(_lowerCAmelCase       ,    number_of_qubits - k - 1    )

 # measure all the qubits
 quantum_circuit.measure(_lowerCAmelCase       ,    _lowerCAmelCase    )
 # simulate with 10000 shots
 __UpperCAmelCase					=   Aer.get_backend('qasm_simulator'    )
 __UpperCAmelCase					=   execute(_lowerCAmelCase       ,    _lowerCAmelCase       ,    shots=1_00_00    )

 return job.result().get_counts(_lowerCAmelCase    )


if __name__ == "__main__":
    print(
        F"""Total count for quantum fourier transform state is: \
    {quantum_fourier_transform(3)}"""
    )





