






'''simple docstring'''

from math import log

from scipy.constants import Boltzmann, physical_constants

SCREAMING_SNAKE_CASE__											=     3_0_0  # TEMPERATURE (unit = K)







def 					lowercase__				(   __UpperCamelCase	,		__UpperCamelCase	,		__UpperCamelCase	,		)->				float:

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








'''simple docstring'''

from __future__ import annotations







def 					lowercase__				(   __UpperCamelCase	,		__UpperCamelCase	,		__UpperCamelCase					)->				dict[str, float]:
      if (voltage, current, resistance).count(0					) != 1:
            raise ValueError("""One and only one argument must be 0"""					)
      if resistance < 0:
            raise ValueError("""Resistance cannot be negative"""					)
      if voltage == 0:
            return {"voltage": float(current * resistance					)}
      elif current == 0:
            return {"current": voltage / resistance}
      elif resistance == 0:
            return {"resistance": voltage / current}
      else:
            raise ValueError("""Exactly one argument must be 0"""					)


if __name__ == "__main__":
     import doctest

     doctest.testmod()
