






from math import isclose, sqrt





def 				SCREAMING_SNAKE_CASE_ (UpperCamelCase       ,    UpperCamelCase       ,    UpperCamelCase   )   -> tuple[float, float, float]:
							lowerCamelCase__      :			str 						= point_y / 4 / point_x
							lowerCamelCase__      :			Dict 						= 2 * normal_gradient / (1 + normal_gradient * normal_gradient)
							lowerCamelCase__      :			Optional[int] 						= (1 - normal_gradient * normal_gradient) / (
							    1 + normal_gradient * normal_gradient
							)
							lowerCamelCase__      :			int 						= (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__      :			Union[str, Any] 						= outgoing_gradient**2 + 4
							lowerCamelCase__      :			Any 						= 2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
							lowerCamelCase__      :			int 						= (point_y - outgoing_gradient * point_x) ** 2 - 100

							lowerCamelCase__      :			List[Any] 						= (
							    -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term   )
							) / (2 * quadratic_term)
							lowerCamelCase__      :			int 						= (
							    -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term   )
							) / (2 * quadratic_term)

							# two solutions, one of which is our input point
							lowerCamelCase__      :			List[str] 						= x_minus if isclose(UpperCamelCase       ,    UpperCamelCase   ) else x_plus
							lowerCamelCase__      :			Tuple 						= point_y + outgoing_gradient * (next_x - point_x)

							return next_x, next_y, outgoing_gradient





def 				SCREAMING_SNAKE_CASE_ (UpperCamelCase = 1.4       ,    UpperCamelCase = -9.6   )   -> int:
							lowerCamelCase__      :			int 						= 0
							lowerCamelCase__      :			float 						= first_x_coord
							lowerCamelCase__      :			float 						= first_y_coord
							lowerCamelCase__      :			float 						= (10.1 - point_y) / (0.0 - point_x)

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

							return num_reflections


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









'''simple docstring'''







from ...configuration_utils import PretrainedConfig
from ...utils import logging


_A			:    str					  =logging.get_logger(__name__)

_A			:    int					  ={
    '''weiweishi/roc-bert-base-zh''': '''https://huggingface.co/weiweishi/roc-bert-base-zh/resolve/main/config.json''',
}

class _lowercase			(       _lowercase	):
							a          = """roc_bert"""




							def __init__(							self:       Optional[Any]    ,							UpperCamelCase__:       Any=30_522    ,							UpperCamelCase__:       Optional[Any]=768    ,							UpperCamelCase__:       Union[str, Any]=12    ,							UpperCamelCase__:       Tuple=12    ,							UpperCamelCase__:       Tuple=3_072    ,							UpperCamelCase__:       str="gelu"    ,							UpperCamelCase__:       List[Any]=0.1    ,							UpperCamelCase__:       List[str]=0.1    ,							UpperCamelCase__:       Dict=512    ,							UpperCamelCase__:       str=2    ,							UpperCamelCase__:       str=0.02    ,							UpperCamelCase__:       Tuple=1e-12    ,							UpperCamelCase__:       Any=True    ,							UpperCamelCase__:       Union[str, Any]=0    ,							UpperCamelCase__:       List[Any]="absolute"    ,							UpperCamelCase__:       Any=None    ,							UpperCamelCase__:       Any=True    ,							UpperCamelCase__:       Optional[int]=True    ,							UpperCamelCase__:       Union[str, Any]=768    ,							UpperCamelCase__:       int=910    ,							UpperCamelCase__:       Tuple=512    ,							UpperCamelCase__:       int=24_858    ,							UpperCamelCase__:       Optional[Any]=True    ,							**UpperCamelCase__:       Optional[Any]    ,							):
														lowerCamelCase__      :			Optional[Any] 						= vocab_size
														lowerCamelCase__      :			Tuple 						= max_position_embeddings
														lowerCamelCase__      :			List[Any] 						= hidden_size
														lowerCamelCase__      :			int 						= num_hidden_layers
														lowerCamelCase__      :			Tuple 						= num_attention_heads
														lowerCamelCase__      :			Any 						= intermediate_size
														lowerCamelCase__      :			List[str] 						= hidden_act
														lowerCamelCase__      :			str 						= hidden_dropout_prob
														lowerCamelCase__      :			Dict 						= attention_probs_dropout_prob
														lowerCamelCase__      :			Union[str, Any] 						= initializer_range
														lowerCamelCase__      :			Tuple 						= type_vocab_size
														lowerCamelCase__      :			Optional[Any] 						= layer_norm_eps
														lowerCamelCase__      :			List[Any] 						= use_cache
														lowerCamelCase__      :			Tuple 						= enable_pronunciation
														lowerCamelCase__      :			Union[str, Any] 						= enable_shape
														lowerCamelCase__      :			Union[str, Any] 						= pronunciation_embed_dim
														lowerCamelCase__      :			Any 						= pronunciation_vocab_size
														lowerCamelCase__      :			int 						= shape_embed_dim
														lowerCamelCase__      :			Tuple 						= shape_vocab_size
														lowerCamelCase__      :			Optional[Any] 						= concat_input
														lowerCamelCase__      :			str 						= position_embedding_type
														lowerCamelCase__      :			Dict 						= classifier_dropout
														super().__init__(pad_token_id=UpperCamelCase__    ,							**UpperCamelCase__  )

