import numpy as np
from scipy.spatial.distance import cdist
from sklearn.metrics import fa_score

import datasets


__SCREAMING_SNAKE_CASE						:   Dict         =			'\\n    @inproceedings{kakwani2020indicnlpsuite,\n    title={{IndicNLPSuite: Monolingual Corpora, Evaluation Benchmarks and Pre-trained Multilingual Language Models for Indian Languages}},\n    author={Divyanshu Kakwani and Anoop Kunchukuttan and Satish Golla and Gokul N.C. and Avik Bhattacharyya and Mitesh M. Khapra and Pratyush Kumar},\n    year={2020},\n    booktitle={Findings of EMNLP},\n}\n'

__SCREAMING_SNAKE_CASE						:   Union[str, Any]         =			'\\n    IndicGLUE is a natural language understanding benchmark for Indian languages. It contains a wide\n    variety of tasks and covers 11 major Indian languages - as, bn, gu, hi, kn, ml, mr, or, pa, ta, te.\n'

__SCREAMING_SNAKE_CASE						:   Dict         =			'\nCompute IndicGLUE evaluation metric associated to each IndicGLUE dataset.\nArgs:\n    predictions: list of predictions to score (as int64),\n        except for \'cvit-mkb-clsr\' where each prediction is a vector (of float32).\n    references: list of ground truth labels corresponding to the predictions (as int64),\n        except for \'cvit-mkb-clsr\' where each reference is a vector (of float32).\nReturns: depending on the IndicGLUE subset, one or several of:\n    "accuracy": Accuracy\n    "f1": F1 score\n    "precision": Precision@10\nExamples:\n\n    >>> indic_glue_metric = datasets.load_metric(\'indic_glue\', \'wnli\')  # \'wnli\' or any of ["copa", "sna", "csqa", "wstp", "inltkh", "bbca", "iitp-mr", "iitp-pr", "actsa-sc", "md"]\n    >>> references = [0, 1]\n    >>> predictions = [0, 1]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {\'accuracy\': 1.0}\n\n    >>> indic_glue_metric = datasets.load_metric(\'indic_glue\', \'wiki-ner\')\n    >>> references = [0, 1]\n    >>> predictions = [0, 1]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {\'accuracy\': 1.0, \'f1\': 1.0}\n\n    >>> indic_glue_metric = datasets.load_metric(\'indic_glue\', \'cvit-mkb-clsr\')\n    >>> references = [[0.5, 0.5, 0.5], [0.1, 0.2, 0.3]]\n    >>> predictions = [[0.5, 0.5, 0.5], [0.1, 0.2, 0.3]]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {\'precision@10\': 1.0}\n\n'
def  snake_case						(__lowercase ,      __lowercase						)	->	Optional[int]:

						'''simple docstring'''



						return float((preds == labels).mean()						)
def  snake_case						(__lowercase ,      __lowercase						)	->	int:

						'''simple docstring'''



						_snake_case						:					str    =   simple_accuracy(__lowercase ,      __lowercase						)
						_snake_case						:					str    =   float(fa_score(y_true=__lowercase ,      y_pred=__lowercase						)						)
						return {
						    "accuracy": acc,
						    "f1": fa,
						}
def  snake_case						(__lowercase ,      __lowercase						)	->	Tuple:

						'''simple docstring'''



						_snake_case						:					Any    =   np.array(__lowercase						)
						_snake_case						:					Dict    =   np.array(__lowercase						)
						_snake_case						:					Optional[Any]    =   en_sentvecs.shape[0]

						# mean centering
						_snake_case						:					Optional[Any]    =   en_sentvecs - np.mean(__lowercase ,      axis=0						)
						_snake_case						:					Optional[Any]    =   in_sentvecs - np.mean(__lowercase ,      axis=0						)

						_snake_case						:					Tuple    =   cdist(__lowercase ,      __lowercase ,      "cosine"						)
						_snake_case						:					int    =   np.array(range(__lowercase						)						)
						_snake_case						:					List[Any]    =   sim.argsort(axis=1						)[:, :10]
						_snake_case						:					Optional[int]    =   np.any(preds == actual[:, None] ,      axis=1						)
						return float(matches.mean()						)



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



							def 	UpperCamelCase	(						self    ):
													if self.config_name not in [
													    "wnli",
													    "copa",
													    "sna",
													    "csqa",
													    "wstp",
													    "inltkh",
													    "bbca",
													    "cvit-mkb-clsr",
													    "iitp-mr",
													    "iitp-pr",
													    "actsa-sc",
													    "md",
													    "wiki-ner",
													]:
																			raise KeyError(
																			    "You should supply a configuration name selected in "
																			    "[\"wnli\", \"copa\", \"sna\", \"csqa\", \"wstp\", \"inltkh\", \"bbca\", "
																			    "\"cvit-mkb-clsr\", \"iitp-mr\", \"iitp-pr\", \"actsa-sc\", \"md\", "
																			    "\"wiki-ner\"]"    )
													return datasets.MetricInfo(
													    description=_DESCRIPTION				,    citation=_CITATION				,    inputs_description=_KWARGS_DESCRIPTION				,    features=datasets.Features(
													        {
													            "predictions": datasets.Value("int64"    )
													            if self.config_name != "cvit-mkb-clsr"
													            else datasets.Sequence(datasets.Value("float32"    )    ),
													            "references": datasets.Value("int64"    )
													            if self.config_name != "cvit-mkb-clsr"
													            else datasets.Sequence(datasets.Value("float32"    )    ),
													        }    )				,    codebase_urls=[]				,    reference_urls=[]				,    format="numpy" if self.config_name != "cvit-mkb-clsr" else None				,    )



							def 	UpperCamelCase	(						self				,    lowercase_				,    lowercase_    ):
													if self.config_name == "cvit-mkb-clsr":
																			return {"precision@10": precision_at_aa(lowercase_				,    lowercase_    )}
													elif self.config_name in ["wiki-ner"]:
																			return acc_and_fa(lowercase_				,    lowercase_    )
													elif self.config_name in [
													    "wnli",
													    "copa",
													    "sna",
													    "csqa",
													    "wstp",
													    "inltkh",
													    "bbca",
													    "iitp-mr",
													    "iitp-pr",
													    "actsa-sc",
													    "md",
													]:
																			return {"accuracy": simple_accuracy(lowercase_				,    lowercase_    )}
													else:
																			raise KeyError(
																			    "You should supply a configuration name selected in "
																			    "[\"wnli\", \"copa\", \"sna\", \"csqa\", \"wstp\", \"inltkh\", \"bbca\", "
																			    "\"cvit-mkb-clsr\", \"iitp-mr\", \"iitp-pr\", \"actsa-sc\", \"md\", "
																			    "\"wiki-ner\"]"    )
def  snake_case						()	->	Dict:

						'''simple docstring'''



						_snake_case						:					List[str]    =   0
						for i in range(1 ,      1_001						):
												total += i**i
						return str(__lowercase						)[-10:]


if __name__ == "__main__":
				print(solution())