#undef LOCAL_DEBUG
-#include "lib/lib.h"
-#include "lib/conf.h"
-#include "lib/heap.h"
+#include "ucw/lib.h"
+#include "ucw/conf.h"
+#include "ucw/heap.h"
#include "images/images.h"
#include "images/signature.h"
#include "images/math.h"
#define ASORT_PREFIX(x) prequant_##x
#define ASORT_KEY_TYPE uns
-#define ASORT_ELT(i) val[i]
-#define ASORT_EXTRA_ARGS , uns *val
-#include "lib/arraysort.h"
+#include "ucw/sorter/array-simple.h"
static uns
prequant(struct image_sig_block *blocks, uns blocks_count, struct image_sig_region *regions)
block = region->blocks;
for (uns i = 0; i < region->count; i++, block = block->next)
val[i] = block->v[axis];
- prequant_sort(region->count, val);
+ prequant_sort(val, region->count);
cval = 1;
cnt[0] = 1;
for (uns i = 1; i < region->count; i++)
cval++;
}
}
-
+
/* Select split value - to minimize error */
uns b1 = val[0] * cnt[0];
uns c1 = isqr(val[0]) * cnt[0];
c2 -= c0;
i += cnt[k];
j -= cnt[k];
- u64 err = (u64)c1 - (u64)b1 * b1 / i + (u64)c2 - (u64)b2 * b2 / j;
+ u64 err = (u64)c1 - (u64)b1 * b1 / i + (u64)c2 - (u64)b2 * b2 / j;
if (err < best_err)
{
best_err = err;