+#ifdef CONFIG_UCW_CLEAN_ABI
+#define image_signatures_dist ucw_image_signatures_dist
+#define image_signatures_dist_explain ucw_image_signatures_dist_explain
+#endif
+
#ifdef EXPLAIN
# define MSG(x...) do{ line += sprintf(line, x); }while(0)
# define LINE do{ line = buf; msg(line, param); }while(0)
-static void
-explain_signature(struct image_signature *sig, void (*msg)(byte *text, void *param), void *param)
+static void explain_signature(struct image_signature *sig, void (*msg)(byte *text, void *param), void *param)
{
byte buf[1024], *line = buf;
MSG("signature: flags=0x%x df=%u dh=%u f=(%u", sig->flags, sig->df, sig->dh, sig->vec.f[0]);
#define MSGL(x...) do{ MSG(x); LINE; }while(0)
#ifndef EXPLAIN
-static uns
-image_signatures_dist_integrated(struct image_signature *sig1, struct image_signature *sig2)
+static uns image_signatures_dist_integrated(struct image_signature *sig1, struct image_signature *sig2)
#else
-static uns
-image_signatures_dist_integrated_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
+static uns image_signatures_dist_integrated_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
#endif
{
uns dist[IMAGE_REG_MAX * IMAGE_REG_MAX], p[IMAGE_REG_MAX], q[IMAGE_REG_MAX];
dt += image_sig_cmp_features_weights[i] * isqr((int)reg1->f[i] - (int)reg2->f[i]);
for (uns i = 0; i < 3; i++)
ds += image_sig_cmp_features_weights[IMAGE_VEC_F + i] * isqr((int)reg1->h[i] - (int)reg2->h[i]);
- for (uns i = 3; i < 4; i++)
+ for (uns i = 3; i < 5; i++)
dp += image_sig_cmp_features_weights[IMAGE_VEC_F + i] * isqr((int)reg1->h[i] - (int)reg2->h[i]);
#if 0
int x1, y1, x2, y2;
d = dt;
if (ds < 1000)
d = d * 4;
- else if (ds < 3000)
+ else if (ds < 4000)
d = d * 6 + 8;
else if (ds < 10000)
d = d * 8 + 20;
q[i] = reg2->wb;
/* Sort entries in distance matrix */
- image_signatures_dist_integrated_sort(n, dist);
+ image_signatures_dist_integrated_sort(dist, n);
/* Compute significance matrix and resulting distance */
uns sum = 0;
}
#ifndef EXPLAIN
-static uns
-image_signatures_dist_fuzzy(struct image_signature *sig1, struct image_signature *sig2)
+static uns image_signatures_dist_fuzzy(struct image_signature *sig1, struct image_signature *sig2)
#else
-static uns
-image_signatures_dist_fuzzy_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
+static uns image_signatures_dist_fuzzy_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
#endif
{
#ifdef EXPLAIN
}
#ifndef EXPLAIN
-static uns
-image_signatures_dist_average(struct image_signature *sig1, struct image_signature *sig2)
+static uns image_signatures_dist_average(struct image_signature *sig1, struct image_signature *sig2)
#else
-static uns
-image_signatures_dist_average_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
+static uns image_signatures_dist_average_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
#endif
{
#ifdef EXPLAIN
uns dist = 0;
for (uns i = 0; i < IMAGE_VEC_F; i++)
{
- uns d = image_sig_cmp_features_weights[0] * isqr((int)sig1->vec.f[i] - (int)sig2->vec.f[i]);
+ uns d = image_sig_cmp_features_weights[0] * isqr((int)sig1->vec.f[i] - (int)sig2->vec.f[i]);
MSGL("feature %u: d=%u (%u %u)", i, d, sig1->vec.f[i], sig2->vec.f[i]);
dist += d;
}
#ifndef EXPLAIN
#define CALL(x) image_signatures_dist_##x(sig1, sig2)
-uns
-image_signatures_dist(struct image_signature *sig1, struct image_signature *sig2)
+uns image_signatures_dist(struct image_signature *sig1, struct image_signature *sig2)
#else
#define CALL(x) image_signatures_dist_##x##_explain(sig1, sig2, msg, param)
-uns
-image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
+uns image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
#endif
{
if (!sig1->len)