def METHOD_NAME(ix=100001, iy=200002, iz=300003, it=400004):
    """Wichmann Hill (2006) random number generator.
    B.A. Wichmann, I.D. Hill, Generating good pseudo-random numbers,
    Computational Statistics & Data Analysis, Volume 51, Issue 3, 1
    December 2006, Pages 1614-1622, ISSN 0167-9473, DOI:
    10.1016/j.csda.2006.05.019.
    (http://www.sciencedirect.com/science/article/B6V8V-4K7F86W-2/2/a3a33291b8264e4c882a8f21b6e43351)
    for advice on generating many sequences for use together, and on
    alternative algorithms and codes
    Parameters
    ----------
    ix: int
        First seed value. Should not be null. (default 100001)
    iy: int
        Second seed value. Should not be null. (default 200002)
    iz: int
        Third seed value. Should not be null. (default 300003)
    it: int
        Fourth seed value. Should not be null. (default 400004)
    Returns
    -------
    r_number : float
        pseudo-random number uniformly distributed between [0-1]
    Examples
    --------
    >>> from dipy.core import rng
    >>> N = 1000
    >>> a = [rng.WichmannHill2006() for i in range(N)]
    """
    if not ix or not iy or not iz or not it:
        raise ValueError('A seed value can not be null.')
    if architecture()[0] == '64':
        # If 64 bits are available then the following lines of code will be
        # faster.
        ix = (11600 * ix) % 2147483579
        iy = (47003 * iy) % 2147483543
        iz = (23000 * iz) % 2147483423
        it = (33000 * it) % 2147483123
    else:
        # If only 32 bits are available
        ix = 11600 * (ix % 185127) - 10379 * (ix / 185127)
        iy = 47003 * (ix % 45688) - 10479 * (iy / 45688)
        iz = 23000 * (iz % 93368) - 19423 * (iz / 93368)
        it = 33000 * (it % 65075) - 8123 * (it / 65075)
        if ix < 0:
            ix = ix + 2147483579
        if iy < 0:
            iy = iy + 2147483543
        if iz < 0:
            iz = iz + 2147483423
        if it < 0:
            it = it + 2147483123
    W = ix/2147483579.0 + iy/2147483543.0 + iz/2147483423.0 + it/2147483123.0
    return W - floor(W)