






import os

from huggingface_hub.constants import HUGGINGFACE_HUB_CACHE, hf_cache_home


__UpperCAmelCase				: Optional[Any]						    =	HUGGINGFACE_HUB_CACHE


__UpperCAmelCase				: Tuple						    =	"config.json"
__UpperCAmelCase				: Any						    =	"diffusion_pytorch_model.bin"
__UpperCAmelCase				: str						    =	"diffusion_flax_model.msgpack"
__UpperCAmelCase				: Union[str, Any]						    =	"model.onnx"
__UpperCAmelCase				: List[Any]						    =	"diffusion_pytorch_model.safetensors"
__UpperCAmelCase				: List[Any]						    =	"weights.pb"
__UpperCAmelCase				: Any						    =	"https://huggingface.co"
__UpperCAmelCase				: Any						    =	default_cache_path
__UpperCAmelCase				: Tuple						    =	"diffusers_modules"
__UpperCAmelCase				: Optional[int]						    =	os.getenv("HF_MODULES_CACHE", os.path.join(hf_cache_home, "modules"))
__UpperCAmelCase				: Any						    =	["fp16", "non-ema"]
__UpperCAmelCase				: str						    =	".self_attn"






'''simple docstring'''






from __future__ import annotations






def   __A    (				a_    :	float   ,a_    :	float   ,a_    :	float   ,):
		if (electron_conc, hole_conc, intrinsic_conc).count(0						) != 1:
				raise ValueError("You cannot supply more or less than 2 values"						)
		elif electron_conc < 0:
				raise ValueError("Electron concentration cannot be negative in a semiconductor"						)
		elif hole_conc < 0:
				raise ValueError("Hole concentration cannot be negative in a semiconductor"						)
		elif intrinsic_conc < 0:
				raise ValueError(
				    "Intrinsic concentration cannot be negative in a semiconductor"						)
		elif electron_conc == 0:
				return (
				    "electron_conc",
				    intrinsic_conc**2 / hole_conc,
				)
		elif hole_conc == 0:
				return (
				    "hole_conc",
				    intrinsic_conc**2 / electron_conc,
				)
		elif intrinsic_conc == 0:
				return (
				    "intrinsic_conc",
				    (electron_conc * hole_conc) ** 0.5,
				)
		else:
				return (-1, -1)


if __name__ == "__main__":
					import doctest

					doctest.testmod()



