


from math import factorial, radians






def 					UpperCamelCase   (      __magic_name__	:				float       ,       __magic_name__	:				int = 18       ,       __magic_name__	:				int = 10	)  ->    float:
		"""simple docstring"""




		lowercase__	     =						angle_in_degrees - ((angle_in_degrees // 3_6_0.0) * 3_6_0.0)

		# Converting from degrees to radians
		lowercase__	     =						radians(__magic_name__	)

		lowercase__	     =						angle_in_radians
		lowercase__	     =						3
		lowercase__	     =						-1

		for _ in range(__magic_name__	):
				result += (b * (angle_in_radians**a)) / factorial(__magic_name__	)

				lowercase__	     =						-b  # One positive term and the next will be negative and so on...
				a += 2  # Increased by 2 for every term.

		return round(__magic_name__       ,       __magic_name__	)


if __name__ == "__main__":
	__import__('doctest').testmod()





from math import log

from scipy.constants import Boltzmann, physical_constants

A			:						Any        =  3_0_0  # TEMPERATURE (unit = K)






def 					UpperCamelCase   (      __magic_name__	:				float       ,       __magic_name__	:				float       ,       __magic_name__	:				float       ,       )  ->    float:
		"""simple docstring"""




		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()

