
'''simple docstring'''







# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import torch

from ..models.auto import AutoModelForSequenceClassification, AutoTokenizer
from .base import PipelineTool


class 		__UpperCAmelCase   (      _lowerCamelCase		):
							__lowercase   	= """facebook/bart-large-mnli"""
							__lowercase   	= (
							    """This is a tool that classifies an English text using provided labels. It takes two inputs: `text`, which """
							    """should be the text to classify, and `labels`, which should be the list of labels to use for classification. """
							    """It returns the most likely label in the list of provided `labels` for the input text."""
							)
							__lowercase   	= """text_classifier"""
							__lowercase   	= AutoTokenizer
							__lowercase   	= AutoModelForSequenceClassification

							__lowercase   	= ["""text""", ["""text"""]]
							__lowercase   	= ["""text"""]


							def 				lowerCamelCase       ( self						):





								"""simple docstring"""






								super().setup()
								_snake_case     		=	self.model.config
								_snake_case     		=	-1
								for idx, label in config.idalabel.items():
									if label.lower().startswith('entail'						):
										_snake_case     		=	int(__UpperCamelCase						)
								if self.entailment_id == -1:
									raise ValueError('Could not determine the entailment ID from the model config, please pass it at init.'						)


							def 				lowerCamelCase       ( self					,     lowerCAmelCase_					,     lowerCAmelCase_						):





								"""simple docstring"""






								_snake_case     		=	labels
								return self.pre_processor(
								    [text] * len(__UpperCamelCase						)					,     [F'This example is {label}' for label in labels]					,     return_tensors='pt'					,     padding='max_length'					,     )




							def 				lowerCamelCase       ( self					,     lowerCAmelCase_						):





								"""simple docstring"""






								_snake_case     		=	outputs.logits
								_snake_case     		=	torch.argmax(logits[:, 2]						).item()
								return self._labels[label_id]



'''simple docstring'''







from typing import Any

import numpy as np







def        SCREAMING_SNAKE_CASE__			(     __A			) ->			bool:
	return np.array_equal(__A    ,       matrix.conjugate().T			)







def        SCREAMING_SNAKE_CASE__			(     __A    ,       __A			) ->			Any:
	_snake_case     		=	v.conjugate().T
	_snake_case     		=	v_star.dot(__A			)
	assert isinstance(__A    ,       np.ndarray			)
	return (v_star_dot.dot(__A			)) / (v_star.dot(__A			))







def        SCREAMING_SNAKE_CASE__			(     ) ->			None:
	_snake_case     		=	np.array([[2, 2 + 1j, 4], [2 - 1j, 3, 1j], [4, -1j, 1]]			)
	_snake_case     		=	np.array([[1], [2], [3]]			)
	assert is_hermitian(__A			), F'{a} is not hermitian.'
	print(rayleigh_quotient(__A    ,       __A			)			)

	_snake_case     		=	np.array([[1, 2, 4], [2, 3, -1], [4, -1, 1]]			)
	assert is_hermitian(__A			), F'{a} is not hermitian.'
	assert rayleigh_quotient(__A    ,       __A			) == float(3			)


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					tests()

