code: def WichmannHill2006(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.
      (https://www.sciencedirect.com/science/article/abs/pii/S0167947306001836)
      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)
  
imports: from math import floor
  from platform import architecture
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: WichmannHill2006(ix, iy, iz, it) and returns: unknown