def gcd_single(a, b):
    """
    Returns the greatest common divisor of the integers `a` and `b` using
    Euclid's Algorithm [1]_.

    Parameters
    ----------
    a, b : int
        The two integers to calculate the greatest common divisor for.

    Returns
    -------
    gcd : int
        Greatest common divisor of `a` and `b`.

    Notes
    -----
    The calculation of the greatest common divisor uses Euclid's Algorithm [1]_
    with Lamé's improvements.

    References
    ----------
    .. [1] https://en.wikipedia.org/wiki/Euclidean_algorithm

    Example
    -------
    >>> gcd_single(42, 56)
    14

    See also
    --------
    :func:`~gcd`
        Greatest common divisor for sequence of integers.

    :func:`~lcm`
        Least common multiple for sequence of integers.

    :func:`~core.lcm_single`
        Least common multiple for two integers.

    """
    while b:
        a, b = b, a % b
    return a
