{
switch (operator)
{
+ case AddComplexOperator:
+ {
+ Cr[i]=Ar[i]+Br[i];
+ Ci[i]=Ai[i]+Bi[i];
+ break;
+ }
case ConjugateComplexOperator:
default:
{
Ci[i]=(Ai[i]*Br[i]-Ai[i]*Bi[i]);
break;
}
+ case SubtractComplexOperator:
+ {
+ Cr[i]=Ar[i]-Br[i];
+ Ci[i]=Ai[i]-Bi[i];
+ break;
+ }
}
+ Ar+=GetPixelChannels(Ar_image);
+ Ai+=GetPixelChannels(Ai_image);
+ Br+=GetPixelChannels(Br_image);
+ Bi+=GetPixelChannels(Bi_image);
+ Cr+=GetPixelChannels(Cr_image);
+ Ci+=GetPixelChannels(Ci_image);
}
}
if (SyncCacheViewAuthenticPixels(Ci_view,exception) == MagickFalse)
typedef enum
{
UndefinedComplexOperator,
+ AddComplexOperator,
ConjugateComplexOperator,
DivideComplexOperator,
- MultiplyComplexOperator
+ MultiplyComplexOperator,
+ SubtractComplexOperator
} ComplexOperator;
extern MagickExport Image
ComplexOptions[] =
{
{ "Undefined", UndefinedComplexOperator, UndefinedOptionFlag, MagickTrue },
+ { "Add", AddComplexOperator, UndefinedOptionFlag, MagickFalse },
{ "Conjugate", ConjugateComplexOperator, UndefinedOptionFlag, MagickFalse },
{ "Divide", DivideComplexOperator, UndefinedOptionFlag, MagickFalse },
{ "Multiply", MultiplyComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "Subtract", SubtractComplexOperator, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedComplexOperator, UndefinedOptionFlag, MagickFalse }
},
DataTypeOptions[] =