
def 						_snake_case(  SCREAMING_SNAKE_CASE__    )			->   int:
       assert (
           isinstance(SCREAMING_SNAKE_CASE__ ,     SCREAMING_SNAKE_CASE__    ) and number_of_steps > 0
       ), f"number_of_steps needs to be positive integer, your input {number_of_steps}"
       if number_of_steps == 1:
              return 1
       lowercase							:					Tuple	     =				1, 1
       for _ in range(number_of_steps - 1    ):
              lowercase							:					str	     =				current + previous, current
       return current


if __name__ == "__main__":
  import doctest

  doctest.testmod()


from collections.abc import Callable

import numpy as np







def 						_snake_case(  SCREAMING_SNAKE_CASE__ ,     SCREAMING_SNAKE_CASE__ ,     SCREAMING_SNAKE_CASE__ ,     SCREAMING_SNAKE_CASE__ ,     SCREAMING_SNAKE_CASE__    )			->   np.array:
       lowercase							:					Optional[int]	     =				int(np.ceil((x_end - xa) / step_size    )    )
       lowercase							:					List[Any]	     =				np.zeros((n + 1,)    )
       lowercase							:					Optional[int]	     =				ya
       lowercase							:					Optional[int]	     =				xa

       for k in range(SCREAMING_SNAKE_CASE__    ):
              lowercase							:					str	     =				y[k] + step_size * ode_func(SCREAMING_SNAKE_CASE__ ,     y[k]    )
              lowercase							:					Union[str, Any]	     =				y[k] + (
                  (step_size / 2) * (ode_func(SCREAMING_SNAKE_CASE__ ,     y[k]    ) + ode_func(x + step_size ,     SCREAMING_SNAKE_CASE__    ))
              )
              x += step_size

       return y


if __name__ == "__main__":
  import doctest

  doctest.testmod()
