"""simple docstring"""


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


lowerCAmelCase_:					List[Any]     =					{
    "configuration_clip": [
        "CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "CLIPConfig",
        "CLIPOnnxConfig",
        "CLIPTextConfig",
        "CLIPVisionConfig",
    ],
    "processing_clip": ["CLIPProcessor"],
    "tokenization_clip": ["CLIPTokenizer"],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCAmelCase_:					Dict     =					["CLIPTokenizerFast"]

try:
      if not is_vision_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCAmelCase_:					Tuple     =					["CLIPFeatureExtractor"]
      lowerCAmelCase_:					Optional[int]     =					["CLIPImageProcessor"]

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCAmelCase_:					int     =					[
          "CLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
          "CLIPModel",
          "CLIPPreTrainedModel",
          "CLIPTextModel",
          "CLIPTextModelWithProjection",
          "CLIPVisionModel",
          "CLIPVisionModelWithProjection",
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCAmelCase_:					Any     =					[
          "TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
          "TFCLIPModel",
          "TFCLIPPreTrainedModel",
          "TFCLIPTextModel",
          "TFCLIPVisionModel",
      ]

try:
      if not is_flax_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCAmelCase_:					Optional[Any]     =					[
          "FlaxCLIPModel",
          "FlaxCLIPPreTrainedModel",
          "FlaxCLIPTextModel",
          "FlaxCLIPTextPreTrainedModel",
          "FlaxCLIPVisionModel",
          "FlaxCLIPVisionPreTrainedModel",
      ]


if TYPE_CHECKING:
      from .configuration_clip import (
          CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
          CLIPConfig,
          CLIPOnnxConfig,
          CLIPTextConfig,
          CLIPVisionConfig,
      )
      from .processing_clip import CLIPProcessor
      from .tokenization_clip import CLIPTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_clip_fast import CLIPTokenizerFast

      try:
            if not is_vision_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .feature_extraction_clip import CLIPFeatureExtractor
            from .image_processing_clip import CLIPImageProcessor

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_clip import (
                CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                CLIPModel,
                CLIPPreTrainedModel,
                CLIPTextModel,
                CLIPTextModelWithProjection,
                CLIPVisionModel,
                CLIPVisionModelWithProjection,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_clip import (
                TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFCLIPModel,
                TFCLIPPreTrainedModel,
                TFCLIPTextModel,
                TFCLIPVisionModel,
            )

      try:
            if not is_flax_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_flax_clip import (
                FlaxCLIPModel,
                FlaxCLIPPreTrainedModel,
                FlaxCLIPTextModel,
                FlaxCLIPTextPreTrainedModel,
                FlaxCLIPVisionModel,
                FlaxCLIPVisionPreTrainedModel,
            )


else:
      import sys

      lowerCAmelCase_:					Tuple     =					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





"""simple docstring"""


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







def 					__a   (		A    ,				A    ,				A = "x"    ,				A = 10**-10    ,				A = 1    ,				):






     '''simple docstring'''



     lowercase__				 =							symbols(A      )
     lowercase__				 =							lambdify(A    ,				A      )
     lowercase__				 =							lambdify(A    ,				diff(A    ,				A      )      )

     lowercase__				 =							starting_point

     while True:
          if diff_function(A      ) != 0:
               lowercase__				 =							prev_guess - multiplicity * func(A      ) / diff_function(
                   A      )
          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

          lowercase__				 =							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", 1_0, precision=0.005)}',
 )

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




