For the gen_chi_sq_cdf MATLAB code,
For the classify library,
The LLR Chi-square method of computing error volumes is faster, more accurate, and works for any number of dimensions.
So why use our method? One advantage is that our method works for custom boundaries. The LLR method can also do custom boundaries. One trivial way is to change the LLR level. This defines a 1-parameter family of boundaries which are isoclines of the LLR. Another way is possibly to change the 'ellipsoid' region of integration. Ruben's original paper mentions this.
Several regions surveyed in Ruben part I. The non-central ellipsoid is of interest to us. Simplex and 'flats' we're not interested in.
Can's book's author provides a MATLAB function mvnlps
to integrate the MVN over ellipsoidal (positive semi-definite A) regions.
Yes, such cases arise, e.g. vcov=0.3*[4 1 2; 1 4 0; 2 0 4]
. Can's book mentions simulation methods for such cases, but doesn't explicitly say which implementation takes care of it.
Actually, it seems like none of the code handles hyperboloid regions.
I'm pretty sure this'll still leave out the fully arbitrary custom boundary (not an ellipsoid or quadratic), which our code can still handle.