public static Color1931XYZ ToXYZ(this Color1976Lab Lab, Color1931XYZ whiteLab)
        {
            Color1931XYZ XYZ = default(Color1931XYZ);

            FastLab2XYZ(Lab.L, Lab.a, Lab.b, whiteLab.X, whiteLab.Y, whiteLab.Z, out XYZ.X, out XYZ.Y, out XYZ.Z);
            return(XYZ);
        }
        public static Color1976Lab ToLab(this Color1931XYZ XYZ, Color1931XYZ whiteLab)
        {
            Color1976Lab Lab = default(Color1976Lab);

            FastXYZ2Lab(XYZ.X, XYZ.Y, XYZ.Z, whiteLab.X, whiteLab.Y, whiteLab.Z, out Lab.L, out Lab.a, out Lab.b);
            return(Lab);
        }
        public static Chromaticity1976uv Touv(this Color1976Lab Lab, Color1931XYZ white)
        {
            Chromaticity1976uv uv = default(Chromaticity1976uv);

            FastLab2XYZ(Lab.L, Lab.a, Lab.b, white.X, white.Y, white.Z, out float X, out float Y, out float Z);
            FastXYZ2uv(X, Y, Z, out uv.u, out uv.v);
            return(uv);
        }
        public static Chromaticity1931xy Toxy(this Color1976Lab Lab, Color1931XYZ white)
        {
            Chromaticity1931xy xy = default(Chromaticity1931xy);

            FastLab2XYZ(Lab.L, Lab.a, Lab.b, white.X, white.Y, white.Z, out float X, out float Y, out float Z);
            FastXYZ2xy(X, Y, Z, out xy.x, out xy.y);
            return(xy);
        }
        public static Color1931xyY ToxyY(this Color1976Lab Lab, Color1931XYZ whiteLab)
        {
            Color1931xyY xyY = default(Color1931xyY);

            FastLab2XYZ(Lab.L, Lab.a, Lab.b, whiteLab.X, whiteLab.Y, whiteLab.Z, out float X, out xyY.Y, out float Z);
            FastXYZ2xy(X, xyY.Y, Z, out xyY.x, out xyY.y);
            return(xyY);
        }
        public static ColorRGB ToRGB(this Color1976Lab Lab, ColorTransformMatrix XYZtoRGB, Color1931XYZ white)
        {
            Color1931XYZ XYZ = ToXYZ(Lab, white);

            return(ToRGB(XYZ, XYZtoRGB));
        }