

"""simple docstring"""




from math import isclose, sqrt



def 	UpperCAmelCase__   (				A__	,    A__	,    A__   )      ->      tuple[float, float, float]:




   """simple docstring"""
   lowerCamelCase__						=			point_y / 4 / point_x
   lowerCamelCase__						=			2 * normal_gradient / (1 + normal_gradient * normal_gradient)
   lowerCamelCase__						=			(1 - normal_gradient * normal_gradient) / (
       1 + normal_gradient * normal_gradient
   )
   lowerCamelCase__						=			(sa - ca * incoming_gradient) / (ca + sa * incoming_gradient)

   # to find the next point, solve the simultaeneous equations:
   # y^2 + 4x^2 = 100
   # y - b = m * (x - a)
   # ==> A x^2 + B x + C = 0
   lowerCamelCase__						=			outgoing_gradient**2 + 4
   lowerCamelCase__						=			2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
   lowerCamelCase__						=			(point_y - outgoing_gradient * point_x) ** 2 - 100

   lowerCamelCase__						=			(
       -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term   )
   ) / (2 * quadratic_term)
   lowerCamelCase__						=			(
       -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term   )
   ) / (2 * quadratic_term)

   # two solutions, one of which is our input point
   lowerCamelCase__						=			x_minus if isclose(A__	,    A__   ) else x_plus
   lowerCamelCase__						=			point_y + outgoing_gradient * (next_x - point_x)

   return next_x, next_y, outgoing_gradient



def 	UpperCAmelCase__   (				A__ = 1.4	,    A__ = -9.6   )      ->      int:




   """simple docstring"""
   lowerCamelCase__						=			0
   lowerCamelCase__						=			first_x_coord
   lowerCamelCase__						=			first_y_coord
   lowerCamelCase__						=			(10.1 - point_y) / (0.0 - point_x)

   while not (-0.01 <= point_x <= 0.01 and point_y > 0):
      lowerCamelCase__					,       lowerCamelCase__					,       lowerCamelCase__						=			next_point(A__	,    A__	,    A__   )
      num_reflections += 1

   return num_reflections


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







"""simple docstring"""




# flake8: noqa
# Lint as: python3
SCREAMING_SNAKE_CASE_     :			Dict	  =			[
    '''VerificationMode''',
    '''Version''',
    '''disable_progress_bar''',
    '''enable_progress_bar''',
    '''is_progress_bar_enabled''',
    '''experimental''',
]

from .info_utils import VerificationMode
from .logging import disable_progress_bar, enable_progress_bar, is_progress_bar_enabled
from .version import Version
from .experimental import experimental




