
'''simple docstring'''
from collections.abc import Callable

import numpy as np







def        A_     (						__SCREAMING_SNAKE_CASE						:  Callable			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float )				->       np.array:





  """simple docstring"""

  __A		:     Union[str, Any]												=		int(np.ceil((x_end - xa) / step_size ) )
  __A		:     Union[str, Any]												=		np.zeros((n + 1,) )
  __A		:     List[str]												=		ya
  __A		:     List[Any]												=		xa

  for k in range(__SCREAMING_SNAKE_CASE ):
    __A		:     List[str]												=		y[k] + step_size * ode_func(__SCREAMING_SNAKE_CASE			,     y[k] )
    __A		:     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()





'''simple docstring'''
A__   :		int 		=8.3_1_4_4_6_2  # Unit - J mol-1 K-1







def        A_     (						__SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float )				->       float:





  """simple docstring"""

  if moles < 0 or kelvin < 0 or volume < 0:
    raise ValueError("""Invalid inputs. Enter positive value.""" )
  return moles * kelvin * UNIVERSAL_GAS_CONSTANT / volume







def        A_     (						__SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float )				->       float:





  """simple docstring"""

  if moles < 0 or kelvin < 0 or pressure < 0:
    raise ValueError("""Invalid inputs. Enter positive value.""" )
  return moles * kelvin * UNIVERSAL_GAS_CONSTANT / pressure


if __name__ == "__main__":
     from doctest import testmod

     testmod()



