/** * \file edit_cost.h * \brief global variables for Edit Costs included by treedist.c and stringdist.c */ #define PRIVATE static PRIVATE char sep = ':'; PRIVATE char *coding = "Null:U:P:H:B:I:M:S:E:R"; #define DIST_INF 10000 /* infinity */ typedef int CostMatrix[10][10]; PRIVATE CostMatrix *EditCost; /* will point to UsualCost or ShapiroCost */ PRIVATE CostMatrix UsualCost = { /* Null, U, P, H, B, I, M, S, E, R */ { 0, 1, 2, 2, 2, 2, 2, 1, 1, DIST_INF}, /* Null replaced */ { 1, 0, 1, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF}, /* U replaced */ { 2, 1, 0, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF}, /* P replaced */ { 2, DIST_INF, DIST_INF, 0, 2, 2, 2, DIST_INF, DIST_INF, DIST_INF}, /* H replaced */ { 2, DIST_INF, DIST_INF, 2, 0, 1, 2, DIST_INF, DIST_INF, DIST_INF}, /* B replaced */ { 2, DIST_INF, DIST_INF, 2, 1, 0, 2, DIST_INF, DIST_INF, DIST_INF}, /* I replaced */ { 2, DIST_INF, DIST_INF, 2, 2, 2, 0, DIST_INF, DIST_INF, DIST_INF}, /* M replaced */ { 1, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0, DIST_INF, DIST_INF}, /* S replaced */ { 1, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0, DIST_INF}, /* E replaced */ { DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0}, /* R replaced */ }; PRIVATE CostMatrix ShapiroCost = { /* Null, U, P, H, B, I, M, S, E, R */ { 0, 1, 2, 100, 5, 5, 75, 5, 5, DIST_INF}, /* Null replaced */ { 1, 0, 1, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF}, /* U replaced */ { 2, 1, 0, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF}, /* P replaced */ { 100, DIST_INF, DIST_INF, 0, 8, 8, 8, DIST_INF, DIST_INF, DIST_INF}, /* H replaced */ { 5, DIST_INF, DIST_INF, 8, 0, 3, 8, DIST_INF, DIST_INF, DIST_INF}, /* B replaced */ { 5, DIST_INF, DIST_INF, 8, 3, 0, 8, DIST_INF, DIST_INF, DIST_INF}, /* I replaced */ { 75, DIST_INF, DIST_INF, 8, 8, 8, 0, DIST_INF, DIST_INF, DIST_INF}, /* M replaced */ { 5, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0, DIST_INF, DIST_INF}, /* S replaced */ { 5, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0, DIST_INF}, /* E replaced */ { DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, DIST_INF, 0}, /* R replaced */ };