






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

import datasets


UpperCamelCase__ =			'\\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'

UpperCamelCase__ =			'\\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'

UpperCamelCase__ =			'\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 		__SCREAMING_SNAKE_CASE					(  _UpperCamelCase						,		_UpperCamelCase							):


   """simple docstring"""




   return float((preds == labels).mean()							)




def 		__SCREAMING_SNAKE_CASE					(  _UpperCamelCase						,		_UpperCamelCase							):


   """simple docstring"""




   lowercase_	:    Optional[Any]           =     simple_accuracy(_UpperCamelCase						,		_UpperCamelCase							)
   lowercase_	:    str           =     float(fa_score(y_true=_UpperCamelCase						,		y_pred=_UpperCamelCase							)							)
   return {
       "accuracy": acc,
       "f1": fa,
   }




def 		__SCREAMING_SNAKE_CASE					(  _UpperCamelCase						,		_UpperCamelCase							):


   """simple docstring"""




   lowercase_	:    Dict           =     np.array(_UpperCamelCase							)
   lowercase_	:    int           =     np.array(_UpperCamelCase							)
   lowercase_	:    Union[str, Any]           =     en_sentvecs.shape[0]

   # mean centering
   lowercase_	:    Optional[Any]           =     en_sentvecs - np.mean(_UpperCamelCase						,		axis=0							)
   lowercase_	:    List[Any]           =     in_sentvecs - np.mean(_UpperCamelCase						,		axis=0							)

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





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




    def 				lowerCAmelCase__				(			self  :       Dict			):






       '''simple docstring'''






       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 				lowerCAmelCase__				(			self  :       str  ,     a  :       str  ,     a  :       Optional[int]			):






       '''simple docstring'''






       if self.config_name == "cvit-mkb-clsr":
          return {"precision@10": precision_at_aa(a  ,     a			)}
       elif self.config_name in ["wiki-ner"]:
          return acc_and_fa(a  ,     a			)
       elif self.config_name in [
           "wnli",
           "copa",
           "sna",
           "csqa",
           "wstp",
           "inltkh",
           "bbca",
           "iitp-mr",
           "iitp-pr",
           "actsa-sc",
           "md",
       ]:
          return {"accuracy": simple_accuracy(a  ,     a			)}
       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\"]"			)












'''simple docstring'''
def 		__SCREAMING_SNAKE_CASE					(  _UpperCamelCase = 200							):


   """simple docstring"""




   lowercase_	:    Optional[int]           =     [1, 2, 5, 10, 20, 50, 100, 200]
   lowercase_	:    str           =     [0] * (pence + 1)
   lowercase_	:    Dict           =     1  # base case: 1 way to make 0 pence

   for coin in coins:
      for i in range(_UpperCamelCase						,		pence + 1						,		1							):
         number_of_ways[i] += number_of_ways[i - coin]
   return number_of_ways[pence]


if __name__ == "__main__":
 assert solution(200) == 73682




