






from math import isclose, sqrt





def 					snake_case	(  lowerCamelCase					,	lowerCamelCase					,	lowerCamelCase       ):




	'''simple docstring'''







	__lowercase   							=	point_y / 4 / point_x
	__lowercase   							=	2 * normal_gradient / (1 + normal_gradient * normal_gradient)
	__lowercase   							=	(1 - normal_gradient * normal_gradient) / (
	    1 + normal_gradient * normal_gradient
	)
	__lowercase   							=	(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
	__lowercase   							=	outgoing_gradient**2 + 4
	__lowercase   							=	2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
	__lowercase   							=	(point_y - outgoing_gradient * point_x) ** 2 - 100

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

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

	return next_x, next_y, outgoing_gradient





def 					snake_case	(  lowerCamelCase = 1.4					,	lowerCamelCase = -9.6       ):




	'''simple docstring'''







	__lowercase   							=	0
	__lowercase   							=	first_x_coord
	__lowercase   							=	first_y_coord
	__lowercase   							=	(10.1 - point_y) / (0.0 - point_x)

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

	return num_reflections


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




def 			lowerCamelCase__			(       _a				,      _a):
	SCREAMING_SNAKE_CASE :   Optional[int]					  =							0
	while b > 0:
		if b & 1:
			res += a

		a += a
		b >>= 1

	return res

def 			lowerCamelCase__			(       _a				,      _a				,      _a):
	SCREAMING_SNAKE_CASE :   Optional[int]					  =							0
	while b > 0:
		if b & 1:
			SCREAMING_SNAKE_CASE :   Optional[Any]					  =							((res % c) + (a % c)) % c

		a += a
		b >>= 1

	return res