


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


A							:					Optional[int]     						=     {
    'configuration_upernet': ['UperNetConfig'],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A							:					List[str]     						=     [
	    'UperNetForSemanticSegmentation',
	    'UperNetPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_upernet import UperNetConfig

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_upernet import UperNetForSemanticSegmentation, UperNetPreTrainedModel


else:
	import sys

	A							:					Union[str, Any]     						=     _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)









from __future__ import annotations

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

from sympy import diff





def 	_lowerCAmelCase       (    _lowerCAmelCase      ,	_lowerCAmelCase      ,	_lowerCAmelCase = 10**-10 )						->	float:


						'''simple docstring'''






						__snake_case				=		a
						while True:
												__snake_case				=		Decimal(_lowerCAmelCase ) - (
												    Decimal(eval(_lowerCAmelCase ) ) / Decimal(eval(str(diff(_lowerCAmelCase ) ) ) )  # noqa: S307
												)
												# This number dictates the accuracy of the answer
												if abs(eval(_lowerCAmelCase ) ) < precision:  # noqa: S307
																		return float(_lowerCAmelCase )


# 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)}''')





