public static ColorXyz convertCieLuvToXyz(final double l, final double u, final double v) {
        // problems here with div by zero

        final double varY = unPivotXyz((l + 16) / 116.0);

        final double refU = 4 * REF_X / (REF_X + 15 * REF_Y + 3 * REF_Z);
        final double refV = 9 * REF_Y / (REF_X + 15 * REF_Y + 3 * REF_Z);
        final double varU = u / (13 * l) + refU;
        final double varV = v / (13 * l) + refV;

        final double y = varY * 100;
        final double x = -(9 * y * varU) / ((varU - 4) * varV - varU * varV);
        final double z = (9 * y - 15 * varV * y - varV * x) / (3 * varV);

        return new ColorXyz(x, y, z);
    }
DIN99o.

@param l lightness of color.
@param a position between red and green.
@param b position between yellow and blue.
@return CIBELab colors converted to DIN99oLab color space.
@see <a href=
     "https://de.wikipedia.org/w/index.php?title=Diskussion:DIN99-Farbraum">https://de.wikipedia.org/w/index.php?title=Diskussion:DIN99-Farbraum</a>
src/main/java/org/apache/commons/imaging/color/ColorConversions.java