






from __future__ import annotations

A        =			8.9_88E9  # units = N * m^s * C^-2



def 					_lowerCamelCase(			lowerCAmelCase__				:		float    ,    lowerCAmelCase__				:		float    ,    lowerCAmelCase__				:		float    ,    lowerCAmelCase__				:		float      ):





				'''simple docstring'''







				SCREAMING_SNAKE_CASE_   :	List[str]													=   abs(chargea * chargea      )

				if (force, chargea, chargea, distance).count(0      ) != 1:
								raise ValueError('One and only one argument must be 0'      )
				if distance < 0:
								raise ValueError('Distance cannot be negative'      )
				if force == 0:
								SCREAMING_SNAKE_CASE_   :	Tuple													=   COULOMBS_CONSTANT * charge_product / (distance**2)
								return {"force": force}
				elif chargea == 0:
								SCREAMING_SNAKE_CASE_   :	Optional[int]													=   abs(lowerCAmelCase__      ) * (distance**2) / (COULOMBS_CONSTANT * chargea)
								return {"charge1": chargea}
				elif chargea == 0:
								SCREAMING_SNAKE_CASE_   :	Dict													=   abs(lowerCAmelCase__      ) * (distance**2) / (COULOMBS_CONSTANT * chargea)
								return {"charge2": chargea}
				elif distance == 0:
								SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   (COULOMBS_CONSTANT * charge_product / abs(lowerCAmelCase__      )) ** 0.5
								return {"distance": distance}
				raise ValueError('Exactly one argument must be 0'      )


if __name__ == "__main__":
				import doctest

				doctest.testmod()







import math



def 					_lowerCamelCase(			lowerCAmelCase__				:		float    ,    lowerCAmelCase__				:		float      ):





				'''simple docstring'''







				return math.pow(lowerCAmelCase__    ,    2      ) - a



def 					_lowerCamelCase(			lowerCAmelCase__				:		float      ):





				'''simple docstring'''







				return 2 * x



def 					_lowerCamelCase(			lowerCAmelCase__				:		float      ):





				'''simple docstring'''







				SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   2.0

				while start <= a:
								SCREAMING_SNAKE_CASE_   :	str													=   math.pow(lowerCAmelCase__    ,    2      )

				return start



def 					_lowerCamelCase(			lowerCAmelCase__				:		float    ,    lowerCAmelCase__				:		int = 9999    ,    lowerCAmelCase__				:		float = 0.00_000_000_000_001      ):





				'''simple docstring'''







				if a < 0:
								raise ValueError('math domain error'      )

				SCREAMING_SNAKE_CASE_   :	Optional[int]													=   get_initial_point(lowerCAmelCase__      )

				for _ in range(lowerCAmelCase__      ):
								SCREAMING_SNAKE_CASE_   :	Tuple													=   value
								SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   value - fx(lowerCAmelCase__    ,    lowerCAmelCase__      ) / fx_derivative(lowerCAmelCase__      )
								if abs(prev_value - value      ) < tolerance:
												return value

				return value


if __name__ == "__main__":
				from doctest import testmod

				testmod()