

"""simple docstring"""





def     _A    (    UpperCamelCase_	:			int,     UpperCamelCase_	:			int = 1000)      ->		str:
   '''simple docstring'''


   if (not isinstance(UpperCamelCase_,     UpperCamelCase_)) or (digit_position <= 0):
      raise ValueError("Digit position must be a positive integer")
   elif (not isinstance(UpperCamelCase_,     UpperCamelCase_)) or (precision < 0):
      raise ValueError("Precision must be a nonnegative integer")

   # compute an approximation of (16 ** (n - 1)) * pi whose fractional part is mostly
   # accurate
   __lowercase								=		(
       4 * _subsum(UpperCamelCase_,     1,     UpperCamelCase_)
       - 2 * _subsum(UpperCamelCase_,     4,     UpperCamelCase_)
       - _subsum(UpperCamelCase_,     5,     UpperCamelCase_)
       - _subsum(UpperCamelCase_,     6,     UpperCamelCase_)
   )

   # return the first hex digit of the fractional part of the result
   return hex(int((sum_result % 1) * 16))[2:]




def     _A    (    UpperCamelCase_	:			int,     UpperCamelCase_	:			int,     UpperCamelCase_	:			int)      ->		float:
   '''simple docstring'''


   __lowercase								=		0.0
   for sum_index in range(digit_pos_to_extract + precision):
      __lowercase								=		8 * sum_index + denominator_addend
      if sum_index < digit_pos_to_extract:
         # if the exponential term is an integer and we mod it by the denominator
         # before dividing, only the integer part of the sum will change;
         # the fractional part will not
         __lowercase								=		pow(
             16,     digit_pos_to_extract - 1 - sum_index,     UpperCamelCase_)
      else:
         __lowercase								=		pow(16,     digit_pos_to_extract - 1 - sum_index)
      total += exponential_term / denominator
   return total


if __name__ == "__main__":
   import doctest

   doctest.testmod()







"""simple docstring"""





import numpy as np
from cva import COLOR_BGR2GRAY, cvtColor, imread, imshow, waitKey

from digital_image_processing.filters.convolve import img_convolve




def     _A    (    UpperCamelCase_	:			int)      ->		str:
   '''simple docstring'''


   __lowercase								=		np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]])
   __lowercase								=		np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]])

   __lowercase								=		np.abs(img_convolve(UpperCamelCase_,     UpperCamelCase_))
   __lowercase								=		np.abs(img_convolve(UpperCamelCase_,     UpperCamelCase_))
   # modify the pix within [0, 255]
   __lowercase								=		dst_x * 255 / np.max(UpperCamelCase_)
   __lowercase								=		dst_y * 255 / np.max(UpperCamelCase_)

   __lowercase								=		np.sqrt((np.square(UpperCamelCase_)) + (np.square(UpperCamelCase_)))
   __lowercase								=		dst_xy * 255 / np.max(UpperCamelCase_)
   __lowercase								=		dst_xy.astype(np.uinta)

   __lowercase								=		np.arctana(UpperCamelCase_,     UpperCamelCase_)
   return dst, theta


if __name__ == "__main__":
   # read original image
   _a					 =				imread('../image_data/lena.jpg')
   # turn image in gray scale value
   _a					 =				cvtColor(img, COLOR_BGR2GRAY)

   _a ,		_a					 =				sobel_filter(gray)

   # show result images
   imshow('sobel filter', sobel_grad)
   imshow('sobel theta', sobel_theta)
   waitKey(0)




