package Convert::Color::LUV;
-use 5.014000;
+use 5.008009;
use strict;
use warnings;
use parent qw/Convert::Color/;
use Convert::Color::XYZ;
-our $VERSION = '0.001';
+our $VERSION = '1.000';
use constant +{ ## no critic (Capitalization)
- KAPPA => 903.2962962,
- EPS => 0.0088564516,
+ KAPPA => (29/3) ** 3,
+ EPS => (6/29) ** 3,
- REF_U => 0.19783000664283,
- REF_V => 0.46831999493879,
+ REF_X => 3127/3290,
+ REF_Z => 3583/3290,
+};
+
+use constant +{ ## no critic (Capitalization)
+ REF_U => 4 * REF_X / (REF_X + 15 + 3 * REF_Z),
+ REF_V => 9 / (REF_X + 15 + 3 * REF_Z),
};
__PACKAGE__->register_color_space('luv');
my $var_v = $v / (13 * $l) + REF_V;
my $y = _l_to_y $l;
my $x = 9 * $y * $var_u / (4 * $var_v);
- my $z = (9 * $y - (14 * $var_v * $y) - ($var_v * $x)) / (3 * $var_v);
+ my $z = (9 * $y - (15 * $var_v * $y) - ($var_v * $x)) / (3 * $var_v);
Convert::Color::XYZ->new($x, $y, $z)
}