





'''simple docstring'''


from __future__ import annotations

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

from sympy import diff
def 							UpperCAmelCase_  (						__lowerCamelCase : str     ,__lowerCamelCase : float | Decimal     ,__lowerCamelCase : float = 10**-10			):
   lowercase_      :Any         =			a
   while True:
      lowercase_      :List[Any]         =			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)}''')









'''simple docstring'''


def 							UpperCAmelCase_  (						__lowerCamelCase : str     ,__lowerCamelCase : str			):
   lowercase_      :Optional[Any]         =			len(__lowerCamelCase			)
   lowercase_      :List[Any]         =			[]
   for i in range(len(__lowerCamelCase			) - pat_len + 1			):
      lowercase_      :Dict         =			True
      for j in range(__lowerCamelCase			):
         if s[i + j] != pattern[j]:
            lowercase_      :int         =			False
            break
      if match_found:
         position.append(__lowerCamelCase			)
   return position


if __name__ == "__main__":
 assert naive_pattern_search('''ABCDEFG''', '''DE''') == [3]
 print(naive_pattern_search('''ABAAABCDBBABCDDEBCABC''', '''ABC'''))


