


"""simple docstring"""
from __future__ import annotations






def 		lowercase							(     _snake_case						:      float     ,   _snake_case						:      float     ,   _snake_case						:      float     ,   )     ->tuple:
	"""simple docstring"""





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









"""simple docstring"""
import numpy as np






def 		lowercase							(     _snake_case						:      int     ,   _snake_case						:      Optional[Any]     ,   _snake_case						:      Optional[int]     ,   _snake_case						:      int     ,   _snake_case						:      Union[str, Any]     )     ->Dict:
	"""simple docstring"""





	__snake_case	:						Union[str, Any]						=				int(np.ceil((x_end - xa) / h     )     )
	__snake_case	:						Dict						=				np.zeros((n + 1,)     )
	__snake_case	:						List[Any]						=				ya
	__snake_case	:						int						=				xa

	for k in range(_snake_case     ):
		__snake_case	:						Any						=				f(_snake_case     ,   y[k]     )
		__snake_case	:						List[Any]						=				f(x + 0.5 * h     ,   y[k] + 0.5 * h * ka     )
		__snake_case	:						int						=				f(x + 0.5 * h     ,   y[k] + 0.5 * h * ka     )
		__snake_case	:						Optional[int]						=				f(x + h     ,   y[k] + h * ka     )
		__snake_case	:						Optional[int]						=				y[k] + (1 / 6) * h * (ka + 2 * ka + 2 * ka + ka)
		x += h

	return y


if __name__ == "__main__":
			import doctest

			doctest.testmod()





