



'''simple docstring'''






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

import datasets


UpperCamelCase__:   int								=			"\\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__:   str								=			"\\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__:   int								=			"\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_     (					_lowerCAmelCase  :						Union[str, Any]   ,      _lowerCAmelCase  :						int  )      ->   Optional[Any]:
							return float((preds == labels).mean()  )


def  snake_case_     (					_lowerCAmelCase  :						Union[str, Any]   ,      _lowerCAmelCase  :						str  )      ->   Union[str, Any]:
							UpperCAmelCase :       Dict 							=		simple_accuracy(_lowerCAmelCase   ,      _lowerCAmelCase  )
							UpperCAmelCase :       str 							=		float(fa_score(y_true=_lowerCAmelCase   ,      y_pred=_lowerCAmelCase  )  )
							return {
							    "accuracy": acc,
							    "f1": fa,
							}


def  snake_case_     (					_lowerCAmelCase  :						Any   ,      _lowerCAmelCase  :						List[str]  )      ->   Dict:
							UpperCAmelCase :       Optional[int] 							=		np.array(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[Any] 							=		np.array(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[int] 							=		en_sentvecs.shape[0]

							# mean centering
							UpperCAmelCase :       List[Any] 							=		en_sentvecs - np.mean(_lowerCAmelCase   ,      axis=0  )
							UpperCAmelCase :       List[str] 							=		in_sentvecs - np.mean(_lowerCAmelCase   ,      axis=0  )

							UpperCAmelCase :       Optional[int] 							=		cdist(_lowerCAmelCase   ,      _lowerCAmelCase   ,      '''cosine'''  )
							UpperCAmelCase :       str 							=		np.array(range(_lowerCAmelCase  )  )
							UpperCAmelCase :       Tuple 							=		sim.argsort(axis=1  )[:, :10]
							UpperCAmelCase :       Any 							=		np.any(preds == actual[:, None]   ,      axis=1  )
							return float(matches.mean()  )




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







	"""simple docstring"""






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






from math import cos, sin, sqrt, tau

from audio_filters.iir_filter import IIRFilter


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )  )      ->   IIRFilter:
							UpperCAmelCase :       Optional[int] 							=		tau * frequency / samplerate
							UpperCAmelCase :       List[Any] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[Any] 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       int 							=		_sin / (2 * q_factor)

							UpperCAmelCase :       Any 							=		(1 - _cos) / 2
							UpperCAmelCase :       List[Any] 							=		1 - _cos

							UpperCAmelCase :       Union[str, Any] 							=		1 + alpha
							UpperCAmelCase :       Any 							=		-2 * _cos
							UpperCAmelCase :       Dict 							=		1 - alpha

							UpperCAmelCase :       Union[str, Any] 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )  )      ->   IIRFilter:
							UpperCAmelCase :       Any 							=		tau * frequency / samplerate
							UpperCAmelCase :       Tuple 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Tuple 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       Dict 							=		_sin / (2 * q_factor)

							UpperCAmelCase :       int 							=		(1 + _cos) / 2
							UpperCAmelCase :       List[Any] 							=		-1 - _cos

							UpperCAmelCase :       Tuple 							=		1 + alpha
							UpperCAmelCase :       List[str] 							=		-2 * _cos
							UpperCAmelCase :       Optional[Any] 							=		1 - alpha

							UpperCAmelCase :       Tuple 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )  )      ->   IIRFilter:
							UpperCAmelCase :       Optional[int] 							=		tau * frequency / samplerate
							UpperCAmelCase :       Optional[int] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Tuple 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[int] 							=		_sin / (2 * q_factor)

							UpperCAmelCase :       Union[str, Any] 							=		_sin / 2
							UpperCAmelCase :       Any 							=		0
							UpperCAmelCase :       int 							=		-ba

							UpperCAmelCase :       Optional[Any] 							=		1 + alpha
							UpperCAmelCase :       List[Any] 							=		-2 * _cos
							UpperCAmelCase :       Optional[Any] 							=		1 - alpha

							UpperCAmelCase :       int 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )  )      ->   IIRFilter:
							UpperCAmelCase :       List[str] 							=		tau * frequency / samplerate
							UpperCAmelCase :       Union[str, Any] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       str 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[Any] 							=		_sin / (2 * q_factor)

							UpperCAmelCase :       List[str] 							=		1 - alpha
							UpperCAmelCase :       Any 							=		-2 * _cos
							UpperCAmelCase :       Optional[int] 							=		1 + alpha

							UpperCAmelCase :       Union[str, Any] 							=		IIRFilter(2  )
							filt.set_coefficients([ba, ba, ba]   ,      [ba, ba, ba]  )
							return filt


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )   ,      )      ->   IIRFilter:
							UpperCAmelCase :       Optional[Any] 							=		tau * frequency / samplerate
							UpperCAmelCase :       Union[str, Any] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Optional[int] 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       Dict 							=		_sin / (2 * q_factor)
							UpperCAmelCase :       str 							=		10 ** (gain_db / 40)

							UpperCAmelCase :       int 							=		1 + alpha * big_a
							UpperCAmelCase :       Union[str, Any] 							=		-2 * _cos
							UpperCAmelCase :       Optional[Any] 							=		1 - alpha * big_a
							UpperCAmelCase :       Union[str, Any] 							=		1 + alpha / big_a
							UpperCAmelCase :       Tuple 							=		-2 * _cos
							UpperCAmelCase :       Any 							=		1 - alpha / big_a

							UpperCAmelCase :       Optional[Any] 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt


def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )   ,      )      ->   IIRFilter:
							UpperCAmelCase :       Any 							=		tau * frequency / samplerate
							UpperCAmelCase :       Optional[int] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Union[str, Any] 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       str 							=		_sin / (2 * q_factor)
							UpperCAmelCase :       List[str] 							=		10 ** (gain_db / 40)
							UpperCAmelCase :       Optional[int] 							=		(big_a + 1) - (big_a - 1) * _cos
							UpperCAmelCase :       int 							=		(big_a + 1) + (big_a - 1) * _cos
							UpperCAmelCase :       int 							=		(big_a - 1) - (big_a + 1) * _cos
							UpperCAmelCase :       Optional[int] 							=		(big_a - 1) + (big_a + 1) * _cos
							UpperCAmelCase :       str 							=		2 * sqrt(_lowerCAmelCase  ) * alpha

							UpperCAmelCase :       Dict 							=		big_a * (pmc + aaa)
							UpperCAmelCase :       Any 							=		2 * big_a * mpc
							UpperCAmelCase :       Union[str, Any] 							=		big_a * (pmc - aaa)
							UpperCAmelCase :       Optional[int] 							=		ppmc + aaa
							UpperCAmelCase :       Optional[Any] 							=		-2 * pmpc
							UpperCAmelCase :       Optional[Any] 							=		ppmc - aaa

							UpperCAmelCase :       int 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt




def  snake_case_     (					_lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						int   ,      _lowerCAmelCase  :						float   ,      _lowerCAmelCase  :						float = 1 / sqrt(2  )   ,      )      ->   IIRFilter:
							UpperCAmelCase :       int 							=		tau * frequency / samplerate
							UpperCAmelCase :       Union[str, Any] 							=		sin(_lowerCAmelCase  )
							UpperCAmelCase :       Union[str, Any] 							=		cos(_lowerCAmelCase  )
							UpperCAmelCase :       Any 							=		_sin / (2 * q_factor)
							UpperCAmelCase :       int 							=		10 ** (gain_db / 40)
							UpperCAmelCase :       List[str] 							=		(big_a + 1) - (big_a - 1) * _cos
							UpperCAmelCase :       Union[str, Any] 							=		(big_a + 1) + (big_a - 1) * _cos
							UpperCAmelCase :       Optional[Any] 							=		(big_a - 1) - (big_a + 1) * _cos
							UpperCAmelCase :       Union[str, Any] 							=		(big_a - 1) + (big_a + 1) * _cos
							UpperCAmelCase :       List[str] 							=		2 * sqrt(_lowerCAmelCase  ) * alpha

							UpperCAmelCase :       Any 							=		big_a * (ppmc + aaa)
							UpperCAmelCase :       str 							=		-2 * big_a * pmpc
							UpperCAmelCase :       List[Any] 							=		big_a * (ppmc - aaa)
							UpperCAmelCase :       Optional[Any] 							=		pmc + aaa
							UpperCAmelCase :       Any 							=		2 * mpc
							UpperCAmelCase :       str 							=		pmc - aaa

							UpperCAmelCase :       Union[str, Any] 							=		IIRFilter(2  )
							filt.set_coefficients([aa, aa, aa]   ,      [ba, ba, ba]  )
							return filt





