






"""simple docstring"""



from itertools import count
from math import asin, pi, sqrt




def   _lowerCAmelCase		(				UpperCAmelCase__							:       float   )		->float:
						return (
						    (1 - 2 * point) * sqrt(point - point**2   ) + 2 * point + asin(sqrt(1 - point   )   )
						) / 4




def   _lowerCAmelCase		(				UpperCAmelCase__							:       int   )		->float:
						A__    :	Optional[int]			=	(circles_number + 1 - sqrt(2 * circles_number   )) / (
						    2 * (circles_number**2 + 1)
						)
						A__    :	List[Any]			=	circles_number * intersection_y

						A__    :	Optional[Any]			=	intersection_x * intersection_y / 2
						A__    :	int			=	circle_bottom_arc_integral(
						    1 / 2   ) - circle_bottom_arc_integral(_UpperCAmelCase   )

						return triangle_area + concave_region_area




def   _lowerCAmelCase		(				UpperCAmelCase__							:       float = 1 / 1_0_0_0   )		->int:
						A__    :	int			=	(1 - pi / 4) / 4

						for n in count(1   ):
												if concave_triangle_area(_UpperCAmelCase   ) / l_section_area < fraction:
																		return n

						return -1


if __name__ == "__main__":
						print(F'{solution() = }')













'''simple docstring'''


from __future__ import annotations

from collections.abc import Callable




def       A							(      _UpperCAmelCase   :				Callable[[int | float], int | float]						,_UpperCAmelCase   :				int | float						,_UpperCAmelCase   :				int | float						,_UpperCAmelCase   :				int = 1_0_0						,)  ->				float:


  '''simple docstring'''




  __lowerCAmelCase		:    Dict			     =  x_start
  __lowerCAmelCase		:    Tuple			     =  fnc(_UpperCAmelCase					)
  __lowerCAmelCase		:    Optional[int]			     =  0.0

  for _ in range(_UpperCAmelCase					):
    # Approximates small segments of curve as linear and solve
    # for trapezoidal area
    __lowerCAmelCase		:    Optional[int]			     =  (x_end - x_start) / steps + xa
    __lowerCAmelCase		:    Optional[Any]			     =  fnc(_UpperCAmelCase					)
    area += abs(fxa + fxa					) * (xa - xa) / 2

    # Increment step
    __lowerCAmelCase		:    Optional[Any]			     =  xa
    __lowerCAmelCase		:    List[Any]			     =  fxa
  return area


if __name__ == "__main__":




    def       A							(      _UpperCAmelCase   :				List[Any]					)  ->				List[Any]:


      '''simple docstring'''




      return x**3

    print("f(x) = x^3")
    print("The area between the curve, x = -10, x = 10 and the x axis is:")
    A_				     =							10
    while i <= 10_00_00:
        A_				     =							trapezoidal_area(f, -5, 5, i)
        print(F'''with {i} steps: {area}''')
        i *= 10





