Unified · Split
| @@ -228,9 +228,14 @@ l2y(double l) · 227 unmodified lines | ||
| 228 | 228 | static void |
| 229 | 229 | xyz2luv(Triplet* in_out) |
| 230 | 230 | { |
| 231 | − double var_u = (4.0 * in_out->a) / (in_out->a + (15.0 * in_out->b) + (3.0 * in_out->c)); | |
| 232 | − double var_v = (9.0 * in_out->b) / (in_out->a + (15.0 * in_out->b) + (3.0 * in_out->c)); | |
| 233 | 231 | double l = y2l(in_out->b); |
| 232 | + double var_u = 4.0 * in_out->a; | |
| 233 | + double var_v = 9.0 * in_out->b; | |
| 234 | + double div = (in_out->a + (15.0 * in_out->b) + (3.0 * in_out->c)); | |
| 235 | + if (div > 0.00000001) { | |
| 236 | + var_u /= div; | |
| 237 | + var_v /= div; | |
| 238 | + } | |
| 234 | 239 | double u = 13.0 * l * (var_u - ref_u); |
| 235 | 240 | double v = 13.0 * l * (var_v - ref_v); |
| 236 | 241 | |