





from sympy import diff, lambdify, symbols
from sympy.functions import *  # noqa: F403






def lowerCamelCase__    (							snake_case_	:  str       ,      snake_case_	:  complex       ,      snake_case_	:  str = "x"       ,      snake_case_	:  float = 10**-10       ,      snake_case_	:  int = 1       ,      )      ->				complex:
   __snake_case							       =   symbols(snake_case_       )
   __snake_case							       =   lambdify(snake_case_       ,      snake_case_       )
   __snake_case							       =   lambdify(snake_case_       ,      diff(snake_case_       ,      snake_case_       )       )

   __snake_case							       =   starting_point

   while True:
      if diff_function(snake_case_       ) != 0:
         __snake_case							       =   prev_guess - multiplicity * func(snake_case_       ) / diff_function(
             snake_case_       )
      else:
         raise ZeroDivisionError('''Could not find root'''       ) from None

      # Precision is checked by comparing the difference of consecutive guesses
      if abs(next_guess - prev_guess       ) < precision:
         return next_guess

      __snake_case							       =   next_guess


# 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
    # Find fourth Root of 5
    print(F'The root of x**4 - 5 = 0 is {newton_raphson("x**4 -5", 0.4 +5j)}')

    # Find value of e
    print(
        'The root of log(y) - 1 = 0 is ',
        F'{newton_raphson("log(y) - 1", 2, variable="y")}',
    )

    # Exponential Roots
    print(
        'The root of exp(x) - 1 = 0 is',
        F'{newton_raphson("exp(x) - 1", 10, precision=0.0_05)}',
    )

    # Find root of cos(x)
    print(F'The root of cos(x) = 0 is {newton_raphson("cos(x)", 0)}')








'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCAmelCase					:     Optional[Any]												={
    '''configuration_x_clip''': [
        '''XCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''XCLIPConfig''',
        '''XCLIPTextConfig''',
        '''XCLIPVisionConfig''',
    ],
    '''processing_x_clip''': ['''XCLIPProcessor'''],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase					:     Tuple												=[
     '''XCLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''XCLIPModel''',
     '''XCLIPPreTrainedModel''',
     '''XCLIPTextModel''',
     '''XCLIPVisionModel''',
 ]

if TYPE_CHECKING:
 from .configuration_x_clip import (
     XCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
     XCLIPConfig,
     XCLIPTextConfig,
     XCLIPVisionConfig,
 )
 from .processing_x_clip import XCLIPProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_x_clip import (
      XCLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
      XCLIPModel,
      XCLIPPreTrainedModel,
      XCLIPTextModel,
      XCLIPVisionModel,
  )

else:
 import sys

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


