]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 3 Nov 2011 18:34:58 +0000 (18:34 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 3 Nov 2011 18:34:58 +0000 (18:34 +0000)
MagickCore/fx.c

index fcc585ae7c8979c4a4bffc5a5bc782127cf8400e..bab0cf5ebb7dec5a0fa545a5bc2ed2d1e5d24b56 100644 (file)
@@ -1256,30 +1256,6 @@ static MagickOffsetType FxGCD(MagickOffsetType alpha,MagickOffsetType beta)
   return(alpha);
 }
 
-static inline MagickRealType FxMax(FxInfo *fx_info,const PixelChannel channel,
-  const ssize_t x,const ssize_t y,const char *expression,
-  ExceptionInfo *exception)
-{
-  MagickRealType
-    alpha,
-    beta;
-
-  alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression,&beta,exception);
-  return((MagickRealType) MagickMax((double) alpha,(double) beta));
-}
-
-static inline MagickRealType FxMin(FxInfo *fx_info,PixelChannel channel,
-  const ssize_t x,const ssize_t y,const char *expression,
-  ExceptionInfo *exception)
-{
-  MagickRealType
-    alpha,
-    beta;
-
-  alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression,&beta,exception);
-  return((MagickRealType) MagickMin((double) alpha,(double) beta));
-}
-
 static inline const char *FxSubexpression(const char *expression,
   ExceptionInfo *exception)
 {
@@ -2681,16 +2657,25 @@ static MagickRealType FxEvaluateSubexpression(FxInfo *fx_info,
       if (LocaleNCompare(expression,"maxima",6) == 0)
         break;
       if (LocaleNCompare(expression,"max",3) == 0)
-        return(FxMax(fx_info,channel,x,y,expression+3,exception));
+        {
+          alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,beta,
+            exception);
+          return(alpha > *beta ? alpha : *beta);
+        }
       if (LocaleNCompare(expression,"minima",6) == 0)
         break;
       if (LocaleNCompare(expression,"min",3) == 0)
-        return(FxMin(fx_info,channel,x,y,expression+3,exception));
+        {
+          alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,beta,
+            exception);
+          return(alpha < *beta ? alpha : *beta);
+        }
       if (LocaleNCompare(expression,"mod",3) == 0)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,beta,
             exception);
-          return((MagickRealType) fmod((double) alpha,(double) *beta));
+          gamma=alpha-floor((double) (alpha/(*beta)))*(*beta);
+          return(gamma);
         }
       if (LocaleCompare(expression,"m") == 0)
         return(FxGetSymbol(fx_info,channel,x,y,expression,exception));