code: def value(self):
          
          wishart = self._wishart_cdf
  
          # Prepare variables for integration algorithm
          A = self.A
          p = self._gammainc_a
          g = gamma(wishart.alpha_vec)
          q_ind = np.arange(2 * wishart.n_min - 2)
          q_vec = 2 * wishart.alpha + q_ind + 2
          q = np.float_power(0.5, q_vec) * gamma(q_vec) * gammainc(q_vec, self._chisq_val)
  
          # Perform integration (i.e. calculate Pfaffian CDF)
          for i in xrange(wishart.n_min):
              # TODO consider index tricks instead of iteration here
              b = 0.5 * p[i] * p[i]
              for j in xrange(i, wishart.n_min - 1):
                  b -= q[i + j] / (g[i] * g[j + 1])
                  A[j + 1, i] = p[i] * p[j + 1] - 2 * b
                  A[i, j + 1] = -A[j + 1, i]
  
          if np.any(np.isnan(A)):
              return 0
          return np.sqrt(det(A))
docs: return float Cumulative Distribution Function.
  
          The return value represents a floating point number of the CDF of the
          largest eigenvalue of a Wishart(n, p) evaluated at chisq_val.