docs: def _init(init, X, N, rank, dtype):
      """
      Initialization for CP models
      """
      Uinit = [None for _ in range(N)]
      if isinstance(init, list):
          Uinit = init
      elif init == 'random':
          for n in range(1, N):
              Uinit[n] = array(rand(X.shape[n], rank), dtype=dtype)
      elif init == 'nvecs':
          for n in range(1, N):
              Uinit[n] = array(nvecs(X, n, rank), dtype=dtype)
      else:
          raise 'Unknown option (init=%s)' % str(init)
      return Uinit