From c58380ae9cfade8bdda88414145d2ef44b13348f Mon Sep 17 00:00:00 2001 From: cristy Date: Sun, 3 Jun 2012 15:12:30 +0000 Subject: [PATCH] --- MagickCore/accelerate.c | 2 +- MagickCore/colorspace.c | 4 +-- MagickCore/compare.c | 2 +- MagickCore/composite-private.h | 6 ++-- MagickCore/composite.c | 4 +-- MagickCore/distort.c | 8 +++--- MagickCore/draw.c | 2 +- MagickCore/effect.c | 22 +++++++-------- MagickCore/feature.c | 2 +- MagickCore/image.c | 2 +- MagickCore/pixel-private.h | 2 +- MagickCore/pixel.c | 50 +++++++++++++++++----------------- MagickCore/quantize.c | 4 +-- MagickCore/quantum-import.c | 2 +- MagickCore/resize.c | 8 +++--- coders/pango.c | 2 +- coders/svg.c | 2 +- 17 files changed, 62 insertions(+), 62 deletions(-) diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c index eab0b31cb..5bbbdecab 100644 --- a/MagickCore/accelerate.c +++ b/MagickCore/accelerate.c @@ -295,7 +295,7 @@ static const char " break;\n" " }\n" " }\n" - " gamma=MagickReciprocal(gamma);\n" + " gamma=MagickEpsilonReciprocal(gamma);\n" " const unsigned long index = y*columns+x;\n" " output[index].x=ClampToQuantum(gamma*sum.x);\n" " output[index].y=ClampToQuantum(gamma*sum.y);\n" diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index c558a82c6..1fcff7666 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -642,7 +642,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, gamma=DisplayGamma; value=GetImageProperty(image,"gamma",exception); if (value != (const char *) NULL) - gamma=MagickReciprocal(StringToDouble(value,(char **) NULL)); + gamma=MagickEpsilonReciprocal(StringToDouble(value,(char **) NULL)); film_gamma=FilmGamma; value=GetImageProperty(image,"film-gamma",exception); if (value != (const char *) NULL) @@ -2150,7 +2150,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, gamma=DisplayGamma; value=GetImageProperty(image,"gamma",exception); if (value != (const char *) NULL) - gamma=MagickReciprocal(StringToDouble(value,(char **) NULL)); + gamma=MagickEpsilonReciprocal(StringToDouble(value,(char **) NULL)); film_gamma=FilmGamma; value=GetImageProperty(image,"film-gamma",exception); if (value != (const char *) NULL) diff --git a/MagickCore/compare.c b/MagickCore/compare.c index d90608075..b2cd11e46 100644 --- a/MagickCore/compare.c +++ b/MagickCore/compare.c @@ -950,7 +950,7 @@ static MagickBooleanType GetNormalizedCrossCorrelationDistortion( channel=GetPixelChannelMapChannel(image,i); gamma=image_statistics[i].standard_deviation* reconstruct_statistics[channel].standard_deviation; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); distortion[i]=QuantumRange*gamma*distortion[i]; distortion[CompositePixelChannel]+=distortion[i]*distortion[i]; } diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h index c0c9a7d30..620405747 100644 --- a/MagickCore/composite-private.h +++ b/MagickCore/composite-private.h @@ -62,7 +62,7 @@ static inline void CompositePixelOver(const Image *image,const PixelInfo *p, Sa=QuantumScale*alpha; Da=QuantumScale*beta, gamma=Sa*(-Da)+Sa+Da; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); for (i=0; i < (ssize_t) GetPixelChannels(image); i++) { PixelChannel @@ -133,7 +133,7 @@ static inline void CompositePixelInfoOver(const PixelInfo *p, Da=QuantumScale*beta, gamma=Sa*(-Da)+Sa+Da; composite->alpha=(MagickRealType) QuantumRange*gamma; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); composite->red=gamma*MagickOver_(p->red,alpha,q->red,beta); composite->green=gamma*MagickOver_(p->green,alpha,q->green,beta); composite->blue=gamma*MagickOver_(p->blue,alpha,q->blue,beta); @@ -162,7 +162,7 @@ static inline void CompositePixelInfoPlus(const PixelInfo *p, Da=QuantumScale*beta; gamma=RoundToUnity(Sa+Da); /* 'Plus' blending -- not 'Over' blending */ composite->alpha=(MagickRealType) QuantumRange*gamma; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); composite->red=gamma*(Sa*p->red+Da*q->red); composite->green=gamma*(Sa*p->green+Da*q->green); composite->blue=gamma*(Sa*p->blue+Da*q->blue); diff --git a/MagickCore/composite.c b/MagickCore/composite.c index 8f810a680..64f5afb8b 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -502,7 +502,7 @@ static MagickBooleanType CompositeOverImage(Image *image, */ Sc=(MagickRealType) GetPixelChannel(composite_image,channel,p); Dc=(MagickRealType) q[i]; - gamma=MagickReciprocal(alpha); + gamma=MagickEpsilonReciprocal(alpha); q[i]=ClampToQuantum(gamma*(Sa*Sc-Sa*Da*Dc+Da*Dc)); } p+=GetPixelChannels(composite_image); @@ -1649,7 +1649,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, default: break; } - gamma=MagickReciprocal(alpha); + gamma=MagickEpsilonReciprocal(alpha); pixel=Dc; switch (compose) { diff --git a/MagickCore/distort.c b/MagickCore/distort.c index 96dc6829e..5c77784fc 100644 --- a/MagickCore/distort.c +++ b/MagickCore/distort.c @@ -1798,28 +1798,28 @@ MagickExport Image *DistortImage(const Image *image,DistortImageMethod method, s.x = (double) image->page.x; s.y = (double) image->page.y; scale=inverse[6]*s.x+inverse[7]*s.y+1.0; - scale=MagickReciprocal(scale); + scale=MagickEpsilonReciprocal(scale); d.x = scale*(inverse[0]*s.x+inverse[1]*s.y+inverse[2]); d.y = scale*(inverse[3]*s.x+inverse[4]*s.y+inverse[5]); InitalBounds(d); s.x = (double) image->page.x+image->columns; s.y = (double) image->page.y; scale=inverse[6]*s.x+inverse[7]*s.y+1.0; - scale=MagickReciprocal(scale); + scale=MagickEpsilonReciprocal(scale); d.x = scale*(inverse[0]*s.x+inverse[1]*s.y+inverse[2]); d.y = scale*(inverse[3]*s.x+inverse[4]*s.y+inverse[5]); ExpandBounds(d); s.x = (double) image->page.x; s.y = (double) image->page.y+image->rows; scale=inverse[6]*s.x+inverse[7]*s.y+1.0; - scale=MagickReciprocal(scale); + scale=MagickEpsilonReciprocal(scale); d.x = scale*(inverse[0]*s.x+inverse[1]*s.y+inverse[2]); d.y = scale*(inverse[3]*s.x+inverse[4]*s.y+inverse[5]); ExpandBounds(d); s.x = (double) image->page.x+image->columns; s.y = (double) image->page.y+image->rows; scale=inverse[6]*s.x+inverse[7]*s.y+1.0; - scale=MagickReciprocal(scale); + scale=MagickEpsilonReciprocal(scale); d.x = scale*(inverse[0]*s.x+inverse[1]*s.y+inverse[2]); d.y = scale*(inverse[3]*s.x+inverse[4]*s.y+inverse[5]); ExpandBounds(d); diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 4b2b82b06..a654d0cd9 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -3180,7 +3180,7 @@ static inline MagickRealType GetStopColorOffset(const GradientInfo *gradient, q.y=(double) y-gradient_vector->y1; length=sqrt(q.x*q.x+q.y*q.y); gamma=sqrt(p.x*p.x+p.y*p.y)*length; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); scale=p.x*q.x+p.y*q.y; offset=gamma*scale*length; return(offset); diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 9b74f329d..14f386656 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -408,7 +408,7 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius, pixels+=GetPixelChannels(image); } } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); continue; } @@ -426,7 +426,7 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius, pixels+=GetPixelChannels(image); } } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } q+=GetPixelChannels(blur_image); @@ -735,7 +735,7 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius, pixels+=GetPixelChannels(image); } } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(sharp_image,channel,ClampToQuantum(gamma*pixel),q); continue; } @@ -753,7 +753,7 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius, pixels+=GetPixelChannels(image); } } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(sharp_image,channel,ClampToQuantum(gamma*pixel),q); } q+=GetPixelChannels(sharp_image); @@ -1051,7 +1051,7 @@ MagickExport Image *BlurImage(const Image *image,const double radius, k++; pixels+=GetPixelChannels(image); } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } p+=GetPixelChannels(image); @@ -1181,7 +1181,7 @@ MagickExport Image *BlurImage(const Image *image,const double radius, k++; pixels+=GetPixelChannels(blur_image); } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } p+=GetPixelChannels(blur_image); @@ -2060,7 +2060,7 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius, gamma+=(*k)*alpha; k++; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } p+=GetPixelChannels(image); @@ -2843,7 +2843,7 @@ MagickExport Image *RadialBlurImage(const Image *image,const double angle, pixel+=r[i]; gamma++; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); continue; } @@ -2861,7 +2861,7 @@ MagickExport Image *RadialBlurImage(const Image *image,const double angle, pixel+=GetPixelAlpha(image,r)*r[i]; gamma+=GetPixelAlpha(image,r); } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } p+=GetPixelChannels(image); @@ -3139,7 +3139,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius, SetPixelChannel(blur_image,channel,p[center+i],q); continue; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); continue; } @@ -3165,7 +3165,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius, SetPixelChannel(blur_image,channel,p[center+i],q); continue; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(blur_image,channel,ClampToQuantum(gamma*pixel),q); } p+=GetPixelChannels(image); diff --git a/MagickCore/feature.c b/MagickCore/feature.c index 863be65be..73af21962 100644 --- a/MagickCore/feature.c +++ b/MagickCore/feature.c @@ -572,7 +572,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image, break; } } - normalize=MagickReciprocal(normalize); + normalize=MagickEpsilonReciprocal(normalize); for (y=0; y < (ssize_t) number_grays; y++) { register ssize_t diff --git a/MagickCore/image.c b/MagickCore/image.c index c0aea2c98..e4ab882d7 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -2087,7 +2087,7 @@ static inline void FlattenPixelInfo(const Image *image,const PixelInfo *p, Sa=QuantumScale*alpha; Da=QuantumScale*beta, gamma=Sa*(-Da)+Sa+Da; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); for (i=0; i < (ssize_t) GetPixelChannels(image); i++) { PixelChannel diff --git a/MagickCore/pixel-private.h b/MagickCore/pixel-private.h index f7d3e46f7..ec296e245 100644 --- a/MagickCore/pixel-private.h +++ b/MagickCore/pixel-private.h @@ -22,7 +22,7 @@ extern "C" { #endif -static inline MagickRealType MagickReciprocal(const MagickRealType x) +static inline MagickRealType MagickEpsilonReciprocal(const MagickRealType x) { return((MagickRealType) 1.0/(((x) > (MagickRealType) 0.0 ? (x) : -(x)) < MagickEpsilon ? MagickEpsilon : x)); diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index 2eab8648e..996cd1b7f 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -4136,7 +4136,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, } for (i=0; i < 16; i++) { - gamma=MagickReciprocal(alpha[i]); + gamma=MagickEpsilonReciprocal(alpha[i]); *pixel+=gamma*0.0625*pixels[i]; } break; @@ -4199,7 +4199,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, */ gamma=1.0; if (channel != AlphaPixelChannel) - gamma=MagickReciprocal(cy[0]*(cx[0]*alpha[0]+cx[1]*alpha[1]+cx[2]* + gamma=MagickEpsilonReciprocal(cy[0]*(cx[0]*alpha[0]+cx[1]*alpha[1]+cx[2]* alpha[2]+cx[3]*alpha[3])+cy[1]*(cx[0]*alpha[4]+cx[1]*alpha[5]+ cx[2]*alpha[6]+cx[3]*alpha[7])+cy[2]*(cx[0]*alpha[8]+ cx[1]*alpha[9]+cx[2]*alpha[10]+cx[3]*alpha[11])+cy[3]*( @@ -4243,7 +4243,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, epsilon.y=1.0-delta.y; gamma=((epsilon.y*(epsilon.x*alpha[0]+delta.x*alpha[1])+delta.y* (epsilon.x*alpha[2]+delta.x*alpha[3]))); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); *pixel=gamma*(epsilon.y*(epsilon.x*pixels[0]+delta.x*pixels[1])+delta.y* (epsilon.x*pixels[2]+delta.x*pixels[3])); break; @@ -4350,7 +4350,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, */ delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[2],alpha[3],alpha[0]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); *pixel=gamma*MeshInterpolate(&delta,pixels[2],pixels[3], pixels[0]); } @@ -4361,7 +4361,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, */ delta.x=1.0-delta.x; gamma=MeshInterpolate(&delta,alpha[1],alpha[0],alpha[3]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); *pixel=gamma*MeshInterpolate(&delta,pixels[1],pixels[0], pixels[3]); } @@ -4377,7 +4377,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, Top-left triangle (pixel: 0, diagonal: 1-2). */ gamma=MeshInterpolate(&delta,alpha[0],alpha[1],alpha[2]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); *pixel=gamma*MeshInterpolate(&delta,pixels[0],pixels[1], pixels[2]); } @@ -4389,7 +4389,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, delta.x=1.0-delta.x; delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[3],alpha[2],alpha[1]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); *pixel=gamma*MeshInterpolate(&delta,pixels[3],pixels[2], pixels[1]); } @@ -4438,7 +4438,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image, for (j=(-1); j < 3L; j++) { dx=CubicWeightingFunction(delta.x-(MagickRealType) j); - gamma=MagickReciprocal(alpha[n]); + gamma=MagickEpsilonReciprocal(alpha[n]); *pixel+=gamma*dx*dy*pixels[n]; n++; } @@ -4565,7 +4565,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, alpha[j]=QuantumScale*GetPixelAlpha(source,p+j* GetPixelChannels(source)); pixels[j]*=alpha[j]; - gamma=MagickReciprocal(alpha[j]); + gamma=MagickEpsilonReciprocal(alpha[j]); sum+=gamma*0.0625*pixels[j]; } SetPixelChannel(destination,channel,ClampToQuantum(sum),pixel); @@ -4641,7 +4641,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, */ gamma=1.0; if ((traits & BlendPixelTrait) == 0) - gamma=MagickReciprocal(cy[0]*(cx[0]*alpha[0]+cx[1]*alpha[1]+cx[2]* + gamma=MagickEpsilonReciprocal(cy[0]*(cx[0]*alpha[0]+cx[1]*alpha[1]+cx[2]* alpha[2]+cx[3]*alpha[3])+cy[1]*(cx[0]*alpha[4]+cx[1]*alpha[5]+ cx[2]*alpha[6]+cx[3]*alpha[7])+cy[2]*(cx[0]*alpha[8]+ cx[1]*alpha[9]+cx[2]*alpha[10]+cx[3]*alpha[11])+cy[3]*( @@ -4687,7 +4687,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, if ((traits & BlendPixelTrait) == 0) { gamma=((epsilon.y*(epsilon.x+delta.x)+delta.y*(epsilon.x+delta.x))); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma*(epsilon.y* (epsilon.x*pixels[0]+delta.x*pixels[1])+delta.y*(epsilon.x* pixels[2]+delta.x*pixels[3]))),pixel); @@ -4705,7 +4705,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, pixels[3]*=alpha[3]; gamma=((epsilon.y*(epsilon.x*alpha[0]+delta.x*alpha[1])+delta.y* (epsilon.x*alpha[2]+delta.x*alpha[3]))); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma*(epsilon.y* (epsilon.x*pixels[0]+delta.x*pixels[1])+delta.y*(epsilon.x*pixels[2]+ delta.x*pixels[3]))),pixel); @@ -4859,7 +4859,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, */ delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[2],alpha[3],alpha[0]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma* MeshInterpolate(&delta,pixels[2],pixels[3],pixels[0])),pixel); } @@ -4870,7 +4870,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, */ delta.x=1.0-delta.x; gamma=MeshInterpolate(&delta,alpha[1],alpha[0],alpha[3]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma* MeshInterpolate(&delta,pixels[1],pixels[0],pixels[3])),pixel); } @@ -4886,7 +4886,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, Top-left triangle (pixel: 0, diagonal: 1-2). */ gamma=MeshInterpolate(&delta,alpha[0],alpha[1],alpha[2]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma* MeshInterpolate(&delta,pixels[0],pixels[1],pixels[2])),pixel); } @@ -4898,7 +4898,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, delta.x=1.0-delta.x; delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[3],alpha[2],alpha[1]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(destination,channel,ClampToQuantum(gamma* MeshInterpolate(&delta,pixels[3],pixels[2],pixels[1])),pixel); } @@ -4963,7 +4963,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source, for (k=(-1); k < 3L; k++) { dx=CubicWeightingFunction(delta.x-(MagickRealType) k); - gamma=MagickReciprocal(alpha[n]); + gamma=MagickEpsilonReciprocal(alpha[n]); sum+=gamma*dx*dy*pixels[n]; n++; } @@ -5109,7 +5109,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, pixel->alpha=0.0; for (i=0; i < 16L; i++) { - gamma=MagickReciprocal(alpha[i]); + gamma=MagickEpsilonReciprocal(alpha[i]); pixel->red+=gamma*0.0625*pixels[i].red; pixel->green+=gamma*0.0625*pixels[i].green; pixel->blue+=gamma*0.0625*pixels[i].blue; @@ -5251,7 +5251,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, epsilon.y=1.0-delta.y; gamma=((epsilon.y*(epsilon.x*alpha[0]+delta.x*alpha[1])+delta.y* (epsilon.x*alpha[2]+delta.x*alpha[3]))); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->red=gamma*(epsilon.y*(epsilon.x*pixels[0].red+delta.x* pixels[1].red)+delta.y*(epsilon.x*pixels[2].red+delta.x*pixels[3].red)); pixel->green=gamma*(epsilon.y*(epsilon.x*pixels[0].green+delta.x* @@ -5265,7 +5265,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, pixels[1].black)+delta.y*(epsilon.x*pixels[2].black+delta.x* pixels[3].black)); gamma=((epsilon.y*(epsilon.x+delta.x)+delta.y*(epsilon.x+delta.x))); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->alpha=(epsilon.y*(epsilon.x*pixels[0].alpha+delta.x* pixels[1].alpha)+delta.y*(epsilon.x*pixels[2].alpha+delta.x* pixels[3].alpha)); @@ -5350,7 +5350,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, */ delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[2],alpha[3],alpha[0]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->red=gamma*MeshInterpolate(&delta,pixels[2].red, pixels[3].red,pixels[0].red); pixel->green=gamma*MeshInterpolate(&delta,pixels[2].green, @@ -5371,7 +5371,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, */ delta.x=1.0-delta.x; gamma=MeshInterpolate(&delta,alpha[1],alpha[0],alpha[3]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->red=gamma*MeshInterpolate(&delta,pixels[1].red, pixels[0].red,pixels[3].red); pixel->green=gamma*MeshInterpolate(&delta,pixels[1].green, @@ -5397,7 +5397,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, Top-left triangle (pixel: 0, diagonal: 1-2). */ gamma=MeshInterpolate(&delta,alpha[0],alpha[1],alpha[2]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->red=gamma*MeshInterpolate(&delta,pixels[0].red, pixels[1].red,pixels[2].red); pixel->green=gamma*MeshInterpolate(&delta,pixels[0].green, @@ -5419,7 +5419,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, delta.x=1.0-delta.x; delta.y=1.0-delta.y; gamma=MeshInterpolate(&delta,alpha[3],alpha[2],alpha[1]); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); pixel->red=gamma*MeshInterpolate(&delta,pixels[3].red, pixels[2].red,pixels[1].red); pixel->green=gamma*MeshInterpolate(&delta,pixels[3].green, @@ -5504,7 +5504,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, for (j=(-1); j < 3L; j++) { dx=CubicWeightingFunction(delta.x-(MagickRealType) j); - gamma=MagickReciprocal(alpha[n]); + gamma=MagickEpsilonReciprocal(alpha[n]); pixel->red+=gamma*dx*dy*pixels[n].red; pixel->green+=gamma*dx*dy*pixels[n].green; pixel->blue+=gamma*dx*dy*pixels[n].blue; diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index f029a6566..1d6ab626c 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -1252,7 +1252,7 @@ static size_t DefineImageColormap(Image *image,CubeInfo *cube_info, */ q=image->colormap+image->colors; alpha=(MagickRealType) ((MagickOffsetType) node_info->number_unique); - alpha=MagickReciprocal(alpha); + alpha=MagickEpsilonReciprocal(alpha); if (cube_info->associate_alpha == MagickFalse) { q->red=(double) ClampToQuantum((MagickRealType) @@ -1286,7 +1286,7 @@ static size_t DefineImageColormap(Image *image,CubeInfo *cube_info, gamma; gamma=(MagickRealType) (QuantumScale*q->alpha); - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); q->red=(double) ClampToQuantum((MagickRealType) (alpha*gamma*QuantumRange*node_info->total_color.red)); q->green=(double) ClampToQuantum((MagickRealType) diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c index f9dafd173..37f649ba6 100644 --- a/MagickCore/quantum-import.c +++ b/MagickCore/quantum-import.c @@ -3610,7 +3610,7 @@ MagickExport size_t ImportQuantumPixels(const Image *image, continue; } Sa=QuantumScale*GetPixelAlpha(image,q); - gamma=MagickReciprocal(Sa); + gamma=MagickEpsilonReciprocal(Sa); for (i=0; i < (ssize_t) GetPixelChannels(image); i++) { PixelChannel diff --git a/MagickCore/resize.c b/MagickCore/resize.c index 2501e5a1f..c2e9ba892 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -2363,7 +2363,7 @@ static MagickBooleanType HorizontalFilter(const ResizeFilter *resize_filter, pixel+=alpha*p[k*GetPixelChannels(image)+i]; gamma+=alpha; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(resize_image,channel,ClampToQuantum(gamma*pixel),q); } q+=GetPixelChannels(resize_image); @@ -2579,7 +2579,7 @@ static MagickBooleanType VerticalFilter(const ResizeFilter *resize_filter, pixel+=alpha*p[k*GetPixelChannels(image)+i]; gamma+=alpha; } - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); SetPixelChannel(resize_image,channel,ClampToQuantum(gamma*pixel),q); } q+=GetPixelChannels(resize_image); @@ -3210,7 +3210,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns, } alpha=QuantumScale*scanline[x*GetPixelChannels(image)+ GetPixelChannelMapChannel(image,AlphaPixelChannel)]; - gamma=MagickReciprocal(alpha); + gamma=MagickEpsilonReciprocal(alpha); SetPixelChannel(scale_image,channel,ClampToQuantum(gamma*scanline[ x*GetPixelChannels(image)+offset]),q); } @@ -3312,7 +3312,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns, } alpha=QuantumScale*scanline[x*GetPixelChannels(image)+ GetPixelChannelMapChannel(image,AlphaPixelChannel)]; - gamma=MagickReciprocal(alpha); + gamma=MagickEpsilonReciprocal(alpha); SetPixelChannel(scale_image,channel,ClampToQuantum(gamma* scale_scanline[x*MaxPixelChannels+channel]),q); } diff --git a/coders/pango.c b/coders/pango.c index c23d19ffd..483069bfe 100644 --- a/coders/pango.c +++ b/coders/pango.c @@ -424,7 +424,7 @@ static Image *ReadPANGOImage(const ImageInfo *image_info, Disassociate alpha. */ gamma=1.0-QuantumScale*fill_color.alpha; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); fill_color.blue*=gamma; fill_color.green*=gamma; fill_color.red*=gamma; diff --git a/coders/svg.c b/coders/svg.c index 0c5c96cc6..8f741be64 100644 --- a/coders/svg.c +++ b/coders/svg.c @@ -2939,7 +2939,7 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception) gamma; gamma=1.0-QuantumScale*fill_color.alpha; - gamma=MagickReciprocal(gamma); + gamma=MagickEpsilonReciprocal(gamma); fill_color.blue*=gamma; fill_color.green*=gamma; fill_color.red*=gamma; -- 2.40.0