code: func xyzToLabAB(x, y, z float64) (float64, float64, float64) {
  	normalizedX := x / 95.047
  	normalizedY := y / 100.0
  	normalizedZ := z / 108.883
  
  	if normalizedX > 0.008856 {
  		normalizedX = math.Pow(normalizedX, (1.0 / 3.0))
  	} else {
  		normalizedX = (7.787 * normalizedX) + (16.0 / 116.0)
  	}
  
  	if normalizedY > 0.008856 {
  		normalizedY = math.Pow(normalizedY, (1.0 / 3.0))
  	} else {
  		normalizedY = (7.787 * normalizedY) + (16.0 / 116.0)
  	}
  
  	if normalizedZ > 0.008856 {
  		normalizedZ = math.Pow(normalizedZ, (1.0 / 3.0))
  	} else {
  		normalizedZ = (7.787 * normalizedZ) + (16.0 / 116.0)
  	}
  
  	l := (116 * normalizedY) - 16
  	a := 500 * (normalizedX - normalizedY)
  	b := 200 * (normalizedY - normalizedZ)
  
  	return l, a, b
  }
docs: // http://www.easyrgb.com/index.php?X=MATH