

"""simple docstring"""


from __future__ import annotations

from cmath import sqrt






def    a__   (   __SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE			)     ->     int:

		if a == 0:
				raise ValueError("Coefficient \'a\' must not be zero."			)
		__lowerCAmelCase:	List[str]   				=      b * b - 4 * a * c

		__lowerCAmelCase:	Optional[Any]   				=      (-b + sqrt(A_			)) / (2 * a)
		__lowerCAmelCase:	str   				=      (-b - sqrt(A_			)) / (2 * a)

		return (
		    root_a.real if not root_a.imag else root_a,
		    root_a.real if not root_a.imag else root_a,
		)






def    a__   (   )     ->     Union[str, Any]:
		__lowerCAmelCase:	List[str]   				=      quadratic_roots(a=5 ,			b=6 ,			c=1			)
		print(F"The solutions are: {solutiona} and {solutiona}"			)


if __name__ == "__main__":
			main()






"""simple docstring"""


from __future__ import annotations

from decimal import Decimal
from math import *  # noqa: F403

from sympy import diff






def    a__   (   __SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE = 1_0**-1_0			)     ->     float:
		__lowerCAmelCase:	Union[str, Any]   				=      a
		while True:
				__lowerCAmelCase:	Optional[int]   				=      Decimal(__SCREAMING_SNAKE_CASE			) - (
				    Decimal(eval(__SCREAMING_SNAKE_CASE			)			) / Decimal(eval(str(diff(__SCREAMING_SNAKE_CASE			)			)			)			)  # noqa: S307
				)
				# This number dictates the accuracy of the answer
				if abs(eval(__SCREAMING_SNAKE_CASE			)			) < precision:  # noqa: S307
						return float(__SCREAMING_SNAKE_CASE			)


# Let's Execute
if __name__ == "__main__":
			# Find root of trigonometric function
			# Find value of pi
			print(F'''The root of sin(x) = 0 is {newton_raphson("sin(x)", 2)}''')
			# Find root of polynomial
			print(F'''The root of x**2 - 5*x + 2 = 0 is {newton_raphson("x**2 - 5*x + 2", 0.4)}''')
			# Find Square Root of 5
			print(F'''The root of log(x) - 1 = 0 is {newton_raphson("log(x) - 1", 2)}''')
			# Exponential Roots
			print(F'''The root of exp(x) - 1 = 0 is {newton_raphson("exp(x) - 1", 0)}''')


