



import math

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

def 	SCREAMING_SNAKE_CASE_							(	_snake_case	:int = 3				)  ->     qiskit.result.counts.Counts:
   if isinstance(_snake_case	,   _snake_case				):
      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(_snake_case				) != 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).'''				)

   _A      =       QuantumRegister(_snake_case	,   '''qr'''				)
   _A      =       ClassicalRegister(_snake_case	,   '''cr'''				)

   _A      =       QuantumCircuit(_snake_case	,   _snake_case				)

   _A      =       number_of_qubits

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

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

   # measure all the qubits
   quantum_circuit.measure(_snake_case	,   _snake_case				)
   # simulate with 10000 shots
   _A      =       Aer.get_backend('''qasm_simulator'''				)
   _A      =       execute(_snake_case	,   _snake_case	,   shots=10_000				)

   return job.result().get_counts(_snake_case				)


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






'''simple docstring'''





import datasets


UpperCamelCase_    						=       """\
@InProceedings{conneau2018xnli,
  author = \"Conneau, Alexis
                 and Rinott, Ruty
                 and Lample, Guillaume
                 and Williams, Adina
                 and Bowman, Samuel R.
                 and Schwenk, Holger
                 and Stoyanov, Veselin\",
  title = \"XNLI: Evaluating Cross-lingual Sentence Representations\",
  booktitle = \"Proceedings of the 2018 Conference on Empirical Methods
               in Natural Language Processing\",
  year = \"2018\",
  publisher = \"Association for Computational Linguistics\",
  location = \"Brussels, Belgium\",
}
"""

UpperCamelCase_    						=       """\
XNLI is a subset of a few thousand examples from MNLI which has been translated
into a 14 different languages (some low-ish resource). As with MNLI, the goal is
to predict textual entailment (does sentence A imply/contradict/neither sentence
B) and is a classification task (given two sentences, predict one of three
labels).
"""

UpperCamelCase_    						=       """
Computes XNLI score which is just simple accuracy.
Args:
    predictions: Predicted labels.
    references: Ground truth labels.
Returns:
    'accuracy': accuracy
Examples:

    >>> predictions = [0, 1]
    >>> references = [0, 1]
    >>> xnli_metric = datasets.load_metric(\"xnli\")
    >>> results = xnli_metric.compute(predictions=predictions, references=references)
    >>> print(results)
    {'accuracy': 1.0}
"""






def 				_lowerCAmelCase			(   __magic_name__						:     Dict   , __magic_name__						:     Union[str, Any]						)				->  Union[str, Any]:
						return (preds == labels).mean()







@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION						,							_KWARGS_DESCRIPTION      )
class 		__SCREAMING_SNAKE_CASE							(			datasets.Metric      ):







				def  lowerCamelCase_	(       self     :		str   ):
										'''simple docstring'''
										return datasets.MetricInfo(
										    description=_DESCRIPTION		,					citation=_CITATION		,					inputs_description=_KWARGS_DESCRIPTION		,					features=datasets.Features(
										        {
										            '''predictions''': datasets.Value('''int64''' if self.config_name != '''sts-b''' else '''float32'''   ),
										            '''references''': datasets.Value('''int64''' if self.config_name != '''sts-b''' else '''float32'''   ),
										        }   )		,					codebase_urls=[]		,					reference_urls=[]		,					format='''numpy'''		,					)







				def  lowerCamelCase_	(       self     :		int		,					UpperCAmelCase__     :		Dict		,					UpperCAmelCase__     :		Optional[Any]   ):
										'''simple docstring'''
										return {"accuracy": simple_accuracy(UpperCAmelCase__		,					UpperCAmelCase__   )}





