
'''simple docstring'''
from dataclasses import dataclass, field
from typing import ClassVar, Dict

from ..features import Features, Sequence, Value
from .base import TaskTemplate







@dataclass(frozen=UpperCamelCase__					)
class   a_ (      UpperCamelCase__					):
			# `task` is not a ClassVar since we want it to be part of the `asdict` output for JSON serialization
			lowerCamelCase__	:			str       =    field(default='question-answering-extractive'		,  metadata={'include_in_asdict_even_if_is_default': True}					)
			lowerCamelCase__	:			ClassVar[Features]       =    Features({'question': Value('string'					), 'context': Value('string'					)}					)
			lowerCamelCase__	:			ClassVar[Features]       =    Features(
			    {
			        'answers': Sequence(
			            {
			                'text': Value('string'					),
			                'answer_start': Value('int32'					),
			            }					)
			    }					)
			lowerCamelCase__	:			str       =    "question"
			lowerCamelCase__	:			str       =    "context"
			lowerCamelCase__	:			str       =    "answers"




			@property
			def 					lowerCAmelCase__					(       self	):
				return {self.question_column: "question", self.context_column: "context", self.answers_column: "answers"}


'''simple docstring'''
from math import log

from scipy.constants import Boltzmann, physical_constants

lowercase__											=3_00  # TEMPERATURE (unit = K)






def      UpperCamelCase_				(      A__  ,      A__  ,      A__  ,      ):

	if donor_conc <= 0:
		raise ValueError("""Donor concentration should be positive"""						)
	elif acceptor_conc <= 0:
		raise ValueError("""Acceptor concentration should be positive"""						)
	elif intrinsic_conc <= 0:
		raise ValueError("""Intrinsic concentration should be positive"""						)
	elif donor_conc <= intrinsic_conc:
		raise ValueError(
		    """Donor concentration should be greater than intrinsic concentration"""						)
	elif acceptor_conc <= intrinsic_conc:
		raise ValueError(
		    """Acceptor concentration should be greater than intrinsic concentration"""						)
	else:
		return (
		    Boltzmann
		    * T
		    * log((donor_conc * acceptor_conc) / intrinsic_conc**2						)
		    / physical_constants["electron volt"][0]
		)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
