#include "MagickCore/profile.h"
#include "MagickCore/quantum.h"
#include "MagickCore/quantum-private.h"
+#include "MagickCore/resource_.h"
#include "MagickCore/static.h"
#include "MagickCore/string_.h"
#include "MagickCore/string-private.h"
gridrcp,
half,
onethird_onethird2,
- part0,
- part1,
- part2,
- part3,
pointsWeights[16],
two,
twonineths,
besti = 0,
bestj = 0,
bestk = 0,
- iterationIndex,
- i,
- j,
- k,
- kmin;
+ iterationIndex;
+
+ ssize_t
+ i;
unsigned char
*o,
for (iterationIndex = 0;;)
{
- VectorInit(part0,0.0f);
- for (i=0; i < count; i++)
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(dynamic,1) \
+ num_threads(GetMagickResourceLimit(ThreadResource))
+#endif
+ for (i=0; i < (ssize_t) count; i++)
{
+ DDSVector4
+ part0,
+ part1,
+ part2;
+
+ size_t
+ ii,
+ j,
+ k,
+ kmin;
+
+ VectorInit(part0,0.0f);
+ for(ii=0; ii < (size_t) i; ii++)
+ VectorAdd(pointsWeights[ii],part0,&part0);
+
VectorInit(part1,0.0f);
- for (j=i;;)
+ for (j=(size_t) i;;)
{
if (j == 0)
{
betax_sum,
e1,
e2,
- factor;
+ factor,
+ part3;
float
error;
error = e2.x + e2.y + e2.z;
if (error < bestError)
- {
- VectorCopy43(a,start);
- VectorCopy43(b,end);
- bestError = error;
- besti = i;
- bestj = j;
- bestk = k;
- bestIteration = iterationIndex;
- }
+ {
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp critical (DDS_CompressClusterFit)
+#endif
+ {
+ if (error < bestError)
+ {
+ VectorCopy43(a,start);
+ VectorCopy43(b,end);
+ bestError = error;
+ besti = i;
+ bestj = j;
+ bestk = k;
+ bestIteration = iterationIndex;
+ }
+ }
+ }
if (k == count)
break;
VectorAdd(pointsWeights[j],part1,&part1);
j++;
}
-
- VectorAdd(pointsWeights[i],part0,&part0);
}
if (bestIteration != iterationIndex)