




from __future__ import annotations

_lowerCamelCase      			=						1.60_21e-19  # units = C




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						float	,					__UpperCamelCase      :						float	,					__UpperCamelCase      :						float	,					)  ->							tuple[str, float]:
    if (conductivity, electron_conc, mobility).count(0				) != 1:
        raise ValueError('''You cannot supply more or less than 2 values'''				)
    elif conductivity < 0:
        raise ValueError('''Conductivity cannot be negative'''				)
    elif electron_conc < 0:
        raise ValueError('''Electron concentration cannot be negative'''				)
    elif mobility < 0:
        raise ValueError('''mobility cannot be negative'''				)
    elif conductivity == 0:
        return (
            "conductivity",
            mobility * electron_conc * ELECTRON_CHARGE,
        )
    elif electron_conc == 0:
        return (
            "electron_conc",
            conductivity / (mobility * ELECTRON_CHARGE),
        )
    else:
        return (
            "mobility",
            conductivity / (electron_conc * ELECTRON_CHARGE),
        )


if __name__ == "__main__":
 import doctest

 doctest.testmod()











import numpy as np




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						np.array				)  ->							np.array:
    return (2 / (1 + np.exp(-2 * vector				))) - 1


if __name__ == "__main__":
 import doctest

 doctest.testmod()





