Calculate RSR (RMSE-to-SD Ratio).

        Programmed according to equation (3) in
        Moriasi et al. 2007.  Model evalutaion guidelines for systematic quantification of accuracy 
        in watershed simulations. Transactions of the ASABE 50(3): 885-900.

        Args:
            obsvalues: observe values array
            simvalues: simulate values array

        Examples:
            >>> obs = [2.92, 2.75, 2.01, 1.09, 2.87, 1.43, 1.96,\
                       4.00, 2.24, 29.28, 5.88, 0.86, 13.21]
            >>> sim = [2.90, 2.87, 2.85, 2.83, 3.04, 2.81, 2.85,\
                       2.78, 2.76, 13.40, 2.70, 2.09, 1.62]
            >>> MathClass.rsr(obs, sim)  # doctest: +ELLIPSIS
            0.7404026155824978...

        Returns:
            RSR value, or raise exception

def rsr(obsvalues,  # type: Union[numpy.ndarray, List[Union[float, int]]]
            simvalues  # type: Union[numpy.ndarray, List[Union[float, int]]]
            ):
        # type: (...) -> Union[float, numpy.ScalarType]
        """Calculate RSR (RMSE-to-SD Ratio).

        Programmed according to equation (3) in
        Moriasi et al. 2007.  Model evalutaion guidelines for systematic quantification of accuracy 
        in watershed simulations. Transactions of the ASABE 50(3): 885-900.

        Args:
            obsvalues: observe values array
            simvalues: simulate values array

        Examples:
            >>> obs = [2.92, 2.75, 2.01, 1.09, 2.87, 1.43, 1.96,\
                       4.00, 2.24, 29.28, 5.88, 0.86, 13.21]
            >>> sim = [2.90, 2.87, 2.85, 2.83, 3.04, 2.81, 2.85,\
                       2.78, 2.76, 13.40, 2.70, 2.09, 1.62]
            >>> MathClass.rsr(obs, sim)  # doctest: +ELLIPSIS
            0.7404026155824978...

        Returns:
            RSR value, or raise exception
        """
        if len(obsvalues) != len(simvalues):
            raise ValueError("The size of observed and simulated values must be"
                             " the same for RSR calculation!")
        mean_obs = sum(obsvalues) / len(obsvalues)
        return sqrt(sum(map(lambda x, y: (x - y) ** 2, obsvalues, simvalues))) / \
               sqrt(sum(map(lambda x, y: (x - y) ** 2, obsvalues, [mean_obs] * len(obsvalues))))