


"""simple docstring"""






UpperCamelCase__				:List[Any]			   =	"""Tobias Carryer"""

from time import time






class      A:

		"""simple docstring"""





		def __init__( self					,				SCREAMING_SNAKE_CASE__					,				SCREAMING_SNAKE_CASE__					,				SCREAMING_SNAKE_CASE__					,				SCREAMING_SNAKE_CASE__=int(time()   )   )      ->	int:  # noqa: B008

					"""simple docstring"""



					_UpperCamelCase					:Optional[int]					     =	multiplier
					_UpperCamelCase					:Tuple					     =	increment
					_UpperCamelCase					:Tuple					     =	modulo
					_UpperCamelCase					:Optional[int]					     =	seed





		def   _UpperCamelCase( self   )      ->	Union[str, Any]:

					"""simple docstring"""



					_UpperCamelCase					:Tuple					     =	(self.multiplier * self.seed + self.increment) % self.modulo
					return self.seed


if __name__ == "__main__":
					# Show the LCG in action.
					UpperCamelCase__				:Union[str, Any]			   =	LinearCongruentialGenerator(1_664_525, 1_013_904_223, 2 << 31)
					while True:
										print(lcg.next_number())





"""simple docstring"""






from collections.abc import Callable

import numpy as np





def 				A_       ( snake_case__       ,					snake_case__       ,					snake_case__       ,					snake_case__       ,					snake_case__		)					->  np.ndarray:
			_UpperCamelCase					:str					     =	int(np.ceil((x_end - xa) / step_size		)		)
			_UpperCamelCase					:Union[str, Any]					     =	np.zeros((n + 1,)		)
			_UpperCamelCase					:List[str]					     =	ya
			_UpperCamelCase					:Any					     =	xa

			for k in range(snake_case__		):
						_UpperCamelCase					:Union[str, Any]					     =	y[k] + step_size * ode_func(snake_case__       ,					y[k]		)
						x += step_size

			return y


if __name__ == "__main__":
					import doctest

					doctest.testmod()

