So what algorithm do you use to calculate "cubic colorspace units"?

First step is creating a gamut surface. The gamut surface is computed using a variation of

Jan Morovic's Segment Maximum approach. Points are generated from the contents of the

A2B table, with either explicit or guessed ink limits. The segments are filtered with an adaptive

depth structure, so that approximately the same detail is kept on the gamut surface. Multiple

direction vectors at each point are retained. The resultant points are used to create the overal

convex hull, but in an adaptive, non-linearly scaled radial space, that allows for a level of

convexity in the PCS result.

Since the resulting surface is a closed set of polygons, a standard volume computation

can be used, in this case the formula from "Area of planar polygons and volume of polyhedra"

by Ronald N. Goldman, from Graphics Gems II, pp 170.

The major sources of inaccuracy are: 1) The surface not following the gamuts actual convexity

2) The surface showing convexity where it doesn't exist, 3) Not following surface detail due to

insufficient sampling density (this can be selected with a parameter), 4) Inaccurate ink limit

boundary due to the use of an ink limit that is not a simple sum of inks.