'''simple docstring'''




from __future__ import annotations

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

from sympy import diff

def 	UpperCamelCase_							(					_UpperCAmelCase  :      str			,	_UpperCAmelCase  :      float | Decimal			,	_UpperCAmelCase  :      float = 10**-10    )    ->    float:


       """simple docstring"""







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


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





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__lowerCAmelCase	: Any  				={'configuration_vit_msn': ['VIT_MSN_PRETRAINED_CONFIG_ARCHIVE_MAP', 'ViTMSNConfig']}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__lowerCAmelCase	: int  				=[
						    'VIT_MSN_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'ViTMSNModel',
						    'ViTMSNForImageClassification',
						    'ViTMSNPreTrainedModel',
						]

if TYPE_CHECKING:
						from .configuration_vit_msn import VIT_MSN_PRETRAINED_CONFIG_ARCHIVE_MAP, ViTMSNConfig

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_vit_msn import (
												    VIT_MSN_PRETRAINED_MODEL_ARCHIVE_LIST,
												    ViTMSNForImageClassification,
												    ViTMSNModel,
												    ViTMSNPreTrainedModel,
												)

else:
						import sys

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