From 3b3f68e112ce36989063ed9c0ac036c66f88de48 Mon Sep 17 00:00:00 2001
From: cristy <urban-warrior@git.imagemagick.org>
Date: Fri, 17 Aug 2012 23:11:57 +0000
Subject: [PATCH]

---
 MagickCore/colorspace.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index c8cbb69af..ff0ee29bc 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -171,6 +171,9 @@ static inline void ConvertXYZToLab(const double X,const double Y,const double Z,
 static inline void ConvertXYZToLuv(const double X,const double Y,const double Z,
   double *L,double *u,double *v)
 {
+  double
+    alpha;
+
   assert(L != (double *) NULL);
   assert(u != (double *) NULL);
   assert(v != (double *) NULL);
@@ -178,8 +181,9 @@ static inline void ConvertXYZToLuv(const double X,const double Y,const double Z,
     *L=(double) (116.0*pow(Y/D50Y,1/3.0)-16.0);
   else
     *L=CIEK*(Y/D50Y);
-  *u=13.0*(*L)*((4.0*X/(X+15.0*Y+3.0*Z))-(4.0*D50X/(D50X+15.0*D50Y+3.0*D50Z)));
-  *v=13.0*(*L)*((9.0*Y/(X+15.0*Y+3.0*Z))-(9.0*D50Y/(D50X+15.0*D50Y+3.0*D50Z)));
+  alpha=MagickEpsilonReciprocal(X+15.0*Y+3.0*Z);
+  *u=13.0*(*L)*((4.0*alpha*X)-(4.0*D50X/(D50X+15.0*D50Y+3.0*D50Z)));
+  *v=13.0*(*L)*((9.0*alpha*Y)-(9.0*D50Y/(D50X+15.0*D50Y+3.0*D50Z)));
   *L/=100.0;
   *u=(*u+134.0)/354.0;
   *v=(*v+140.0)/256.0;
-- 
2.40.0