





'''simple docstring'''


from math import log

from scipy.constants import Boltzmann, physical_constants

_SCREAMING_SNAKE_CASE	 =							3_00  # TEMPERATURE (unit = K)


def 	__a(SCREAMING_SNAKE_CASE_  :					float		,       SCREAMING_SNAKE_CASE_  :					float		,       SCREAMING_SNAKE_CASE_  :					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()









'''simple docstring'''


from __future__ import annotations


def 	__a(SCREAMING_SNAKE_CASE_  :					float		,       SCREAMING_SNAKE_CASE_  :					float		,       SCREAMING_SNAKE_CASE_  :					float    ):



    '''simple docstring'''





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


