def normal_cdf(x, mu=0, sigma=1):
    """Cumulative Normal Distribution Function.

    :param x: scalar or array of real numbers.
    :type x: numpy.ndarray, float

    :param mu: Mean value. Default 0.
    :type mu: float, numpy.ndarray

    :param sigma: Standard deviation. Default 1.
    :type sigma: float

    :returns: An approximation of the cdf of the normal.
    :rtype: numpy.ndarray

    Note:
        CDF of the normal distribution is defined as
        \frac12 [1 + erf(\frac{x - \mu}{\sigma \sqrt{2}})], x \in \R

        Source: http://en.wikipedia.org/wiki/Normal_distribution
    """
    arg = (x - mu) / (sigma * numpy.sqrt(2))
    res = (1 + erf(arg)) / 2
    return res
Cumulative Normal Distribution Function.

    :param x: scalar or array of real numbers.
    :type x: numpy.ndarray, float

    :param mu: Mean value. Default 0.
    :type mu: float, numpy.ndarray

    :param sigma: Standard deviation. Default 1.
    :type sigma: float

    :returns: An approximation of the cdf of the normal.
    :rtype: numpy.ndarray

    Note:
        CDF of the normal distribution is defined as
        \frac12 [1 + erf(\frac{x - \mu}{\sigma \sqrt{2}})], x \in \R

        Source: http://en.wikipedia.org/wiki/Normal_distribution