static fromUcsInViewingConditions(jstar, astar, bstar, viewingConditions) {
        const a = astar;
        const b = bstar;
        const m = Math.sqrt(a * a + b * b);
        const M = (Math.exp(m * 0.0228) - 1.0) / 0.0228;
        const c = M / viewingConditions.fLRoot;
        let h = Math.atan2(b, a) * (180.0 / Math.PI);
        if (h < 0.0) {
            h += 360.0;
        }
        const j = jstar / (1 - (jstar - 100) * 0.007);
        return Cam16.fromJchInViewingConditions(j, c, h, viewingConditions);
    }
@param jstar CAM16-UCS lightness.
@param astar CAM16-UCS a dimension. Like a* in L*a*b*, it is a Cartesian
    coordinate on the Y axis.
@param bstar CAM16-UCS b dimension. Like a* in L*a*b*, it is a Cartesian
    coordinate on the X axis.
@param viewingConditions Information about the environment where the color
    was observed.