Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / muscle / gonnet.cpp
diff --git a/website/archive/binaries/mac/src/muscle/gonnet.cpp b/website/archive/binaries/mac/src/muscle/gonnet.cpp
new file mode 100644 (file)
index 0000000..5d447c8
--- /dev/null
@@ -0,0 +1,499 @@
+#include "muscle.h"\r
+#include "gonnet.h"\r
+\r
+#define ROW(A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y) \\r
+       { A/4.0, C/4.0, D/4.0, E/4.0, F/4.0, G/4.0, H/4.0, I/4.0, K/4.0, L/4.0, M/4.0, N/4.0, P/4.0, Q/4.0, R/4.0, S/4.0, T/4.0, V/4.0, W/4.0, Y/4.0 },\r
+\r
+static double Gonnet80[20][20] =\r
+       {\r
+//        A       C       D       E       F       G       H       I       K       L\r
+//        M       N       P       Q       R       S       T       V       W       Y\r
+ROW(   1990,   1140,    930,   1070,    600,   1130,    850,    810,    940,    810,\r
+        980,    900,   1080,   1020,    880,   1380,   1190,   1180,    370,    590) // A\r
+\r
+ROW(   1140,   2780,    310,    300,    850,    630,    810,    700,    360,    690,\r
+        850,    690,    310,    480,    640,   1090,    900,   1030,    810,    920) // C\r
+\r
+ROW(    930,    310,   2200,   1550,    130,    980,   1070,    180,   1030,    150,\r
+        360,   1450,    820,   1150,    800,   1100,   1000,    350,      0,    550) // D\r
+\r
+ROW(   1070,    300,   1550,   2120,    220,    770,   1070,    510,   1280,    490,\r
+        710,   1110,    890,   1470,   1010,   1050,    970,    730,    260,    500) // E\r
+\r
+ROW(    600,    850,    130,    220,   2380,     90,    980,   1090,    350,   1310,\r
+       1270,    490,    310,    540,    340,    470,    620,    930,   1400,   1730) // F\r
+\r
+ROW(   1130,    630,    980,    770,     90,   2210,    710,    100,    740,    200,\r
+        410,   1060,    660,    800,    810,   1080,    720,    380,    430,    300) // G\r
+\r
+ROW(    850,    810,   1070,   1070,    980,    710,   2510,    600,   1120,    670,\r
+        860,   1330,    790,   1380,   1140,    990,   1000,    590,    810,   1450) // H\r
+\r
+ROW(    810,    700,    180,    510,   1090,    100,    600,   2100,    650,   1460,\r
+       1490,    530,    490,    640,    530,    620,    960,   1650,    610,    770) // I\r
+\r
+ROW(    940,    360,   1030,   1280,    350,    740,   1120,    650,   2090,    660,\r
+        870,   1220,    870,   1410,   1570,   1040,   1090,    700,    350,    640) // K\r
+\r
+ROW(    810,    690,    150,    490,   1310,    200,    670,   1460,    660,   2010,\r
+       1550,    450,    660,    850,    660,    600,    750,   1270,    800,    890) // L\r
+\r
+ROW(    980,    850,    360,    710,   1270,    410,    860,   1490,    870,   1550,\r
+       2410,    620,    460,   1050,    710,    830,    990,   1250,    790,    870) // M\r
+\r
+ROW(    900,    690,   1450,   1110,    490,   1060,   1330,    530,   1220,    450,\r
+        620,   2210,    760,   1180,   1020,   1290,   1170,    550,    380,    850) // N\r
+\r
+ROW(   1080,    310,    820,    890,    310,    660,    790,    490,    870,    660,\r
+        460,    760,   2380,   1000,    790,   1100,   1040,    670,    120,    480) // P\r
+\r
+ROW(   1020,    480,   1150,   1470,    540,    800,   1380,    640,   1410,    850,\r
+       1050,   1180,   1000,   2190,   1350,   1090,   1060,    730,    620,    710) // Q\r
+\r
+ROW(    880,    640,    800,   1010,    340,    810,   1140,    530,   1570,    660,\r
+        710,   1020,    790,   1350,   2210,    970,    970,    640,    830,    740) // R\r
+\r
+ROW(   1380,   1090,   1100,   1050,    470,   1080,    990,    620,   1040,    600,\r
+        830,   1290,   1100,   1090,    970,   2020,   1490,    810,    520,    780) // S\r
+\r
+ROW(   1190,    900,   1000,    970,    620,    720,   1000,    960,   1090,    750,\r
+        990,   1170,   1040,   1060,    970,   1490,   2050,   1150,    370,    660) // T\r
+\r
+ROW(   1180,   1030,    350,    730,    930,    380,    590,   1650,    700,   1270,\r
+       1250,    550,    670,    730,    640,    810,   1150,   2040,    440,    770) // V\r
+\r
+ROW(    370,    810,      0,    260,   1400,    430,    810,    610,    350,    800,\r
+        790,    380,    120,    620,    830,    520,    370,    440,   2970,   1470) // W\r
+\r
+ROW(    590,    920,    550,    500,   1730,    300,   1450,    770,    640,    890,\r
+        870,    850,    480,    710,    740,    780,    660,    770,   1470,   2470) // Y\r
+       };\r
+\r
+static double Gonnet120[20][20] =\r
+       {\r
+//        A       C       D       E       F       G       H       I       K       L\r
+//        M       N       P       Q       R       S       T       V       W       Y\r
+ROW(   1550,    950,    780,    870,    480,    930,    700,    690,    770,    660,\r
+        790,    760,    900,    840,    730,   1120,    980,    960,    280,    480) // A\r
+\r
+ROW(    950,   2400,    270,    280,    700,    510,    650,    600,    320,    570,\r
+        700,    550,    280,    400,    510,    890,    750,    850,    670,    760) // C\r
+\r
+ROW(    780,    270,   1780,   1310,     90,    820,    890,    160,    880,    140,\r
+        320,   1220,    680,    970,    690,    910,    830,    310,      0,    430) // D\r
+\r
+ROW(    870,    280,   1310,   1680,    180,    650,    900,    410,   1070,    390,\r
+        560,    950,    740,   1210,    860,    870,    810,    580,    180,    400) // E\r
+\r
+ROW(    480,    700,     90,    180,   1980,     40,    820,    930,    290,   1110,\r
+       1070,    380,    240,    430,    280,    380,    490,    790,   1230,   1510) // F\r
+\r
+ROW(    930,    510,    820,    650,     40,   1860,    590,     90,    620,    140,\r
+        310,    890,    550,    660,    660,    900,    610,    310,    300,    220) // G\r
+\r
+ROW(    700,    650,    890,    900,    820,    590,   2060,    480,    940,    540,\r
+        680,   1100,    650,   1130,    950,    820,    820,    490,    680,   1220) // H\r
+\r
+ROW(    690,    600,    160,    410,    930,     90,    480,   1680,    520,   1240,\r
+       1250,    410,    400,    530,    430,    520,    790,   1380,    500,    650) // I\r
+\r
+ROW(    770,    320,    880,   1070,    290,    620,    940,    520,   1650,    520,\r
+        690,   1010,    720,   1160,   1320,    860,    900,    570,    280,    520) // K\r
+\r
+ROW(    660,    570,    140,    390,   1110,    140,    540,   1240,    520,   1620,\r
+       1300,    350,    520,    660,    520,    490,    620,   1090,    670,    760) // L\r
+\r
+ROW(    790,    700,    320,    560,   1070,    310,    680,   1250,    690,   1300,\r
+       1910,    500,    400,    820,    580,    670,    800,   1060,    650,    740) // M\r
+\r
+ROW(    760,    550,   1220,    950,    380,    890,   1100,    410,   1010,    350,\r
+        500,   1760,    640,    970,    860,   1060,    960,    460,    280,    680) // N\r
+\r
+ROW(    900,    280,    680,    740,    240,    550,    650,    400,    720,    520,\r
+        400,    640,   2010,    820,    660,    910,    860,    540,     70,    370) // P\r
+\r
+ROW(    840,    400,    970,   1210,    430,    660,   1130,    530,   1160,    660,\r
+        820,    970,    820,   1700,   1120,    890,    870,    600,    470,    580) // Q\r
+\r
+ROW(    730,    510,    690,    860,    280,    660,    950,    430,   1320,    520,\r
+        580,    860,    660,   1120,   1790,    810,    800,    520,    660,    590) // R\r
+\r
+ROW(   1120,    890,    910,    870,    380,    900,    820,    520,    860,    490,\r
+        670,   1060,    910,    890,    810,   1560,   1220,    680,    390,    610) // S\r
+\r
+ROW(    980,    750,    830,    810,    490,    610,    820,    790,    900,    620,\r
+        800,    960,    860,    870,    800,   1220,   1600,    930,    290,    540) // T\r
+\r
+ROW(    960,    850,    310,    580,    790,    310,    490,   1380,    570,   1090,\r
+       1060,    460,    540,    600,    520,    680,    930,   1610,    370,    630) // V\r
+\r
+ROW(    280,    670,      0,    180,   1230,    300,    680,    500,    280,    670,\r
+        650,    280,     70,    470,    660,    390,    290,    370,   2620,   1290) // W\r
+\r
+ROW(    480,    760,    430,    400,   1510,    220,   1220,    650,    520,    760,\r
+        740,    680,    370,    580,    590,    610,    540,    630,   1290,   2070) // Y\r
+       };\r
+\r
+static SCORE Gonnet160[20][20] =\r
+       {\r
+//        A       C       D       E       F       G       H       I       K       L\r
+//        M       N       P       Q       R       S       T       V       W       Y\r
+ROW(   1240,    810,    670,    740,    400,    800,    600,    600,    660,    560,\r
+        660,    660,    770,    710,    620,    940,    830,    790,    230,    410) // A\r
+\r
+ROW(    810,   2130,    250,    260,    600,    440,    550,    530,    300,    490,\r
+        590,    470,    260,    360,    430,    760,    640,    720,    570,    650) // C\r
+\r
+ROW(    670,    250,   1480,   1120,     80,    710,    770,    160,    770,    130,\r
+        280,   1040,    590,    840,    620,    780,    720,    290,      0,    360) // D\r
+\r
+ROW(    740,    260,   1120,   1370,    160,    570,    770,    350,    910,    330,\r
+        470,    830,    640,   1010,    750,    750,    700,    480,    140,    340) // E\r
+\r
+ROW(    400,    600,     80,    160,   1690,     20,    710,    810,    250,    970,\r
+        920,    310,    200,    370,    250,    330,    420,    700,   1100,   1340) // F\r
+\r
+ROW(    800,    440,    710,    570,     20,   1600,    510,     80,    540,    110,\r
+        260,    760,    480,    570,    570,    770,    540,    260,    230,    180) // G\r
+\r
+ROW(    600,    550,    770,    770,    710,    510,   1710,    410,    800,    460,\r
+        570,    930,    560,    950,    810,    700,    700,    430,    590,   1050) // H\r
+\r
+ROW(    600,    530,    160,    350,    810,     80,    410,   1370,    430,   1080,\r
+       1070,    340,    350,    460,    370,    450,    660,   1180,    440,    580) // I\r
+\r
+ROW(    660,    300,    770,    910,    250,    540,    800,    430,   1330,    440,\r
+        570,    860,    620,    980,   1130,    740,    760,    480,    240,    430) // K\r
+\r
+ROW(    560,    490,    130,    330,    970,    110,    460,   1080,    440,   1350,\r
+       1120,    300,    430,    540,    430,    420,    540,    950,    580,    670) // L\r
+\r
+ROW(    660,    590,    280,    470,    920,    260,    570,   1070,    570,   1120,\r
+       1540,    420,    360,    660,    490,    550,    670,    920,    560,    650) // M\r
+\r
+ROW(    660,    470,   1040,    830,    310,    760,    930,    340,    860,    300,\r
+        420,   1430,    560,    830,    740,    890,    810,    400,    230,    560) // N\r
+\r
+ROW(    770,    260,    590,    640,    200,    480,    560,    350,    620,    430,\r
+        360,    560,   1740,    700,    570,    780,    740,    460,     40,    300) // P\r
+\r
+ROW(    710,    360,    840,   1010,    370,    570,    950,    460,    980,    540,\r
+        660,    830,    700,   1340,    950,    760,    740,    510,    380,    490) // Q\r
+\r
+ROW(    620,    430,    620,    750,    250,    570,    810,    370,   1130,    430,\r
+        490,    740,    570,    950,   1490,    690,    690,    440,    540,    490) // R\r
+\r
+ROW(    940,    760,    780,    750,    330,    770,    700,    450,    740,    420,\r
+        550,    890,    780,    760,    690,   1220,   1010,    580,    310,    500) // S\r
+\r
+ROW(    830,    640,    720,    700,    420,    540,    700,    660,    760,    540,\r
+        670,    810,    740,    740,    690,   1010,   1280,    780,    240,    460) // T\r
+\r
+ROW(    790,    720,    290,    480,    700,    260,    430,   1180,    480,    950,\r
+        920,    400,    460,    510,    440,    580,    780,   1310,    330,    540) // V\r
+\r
+ROW(    230,    570,      0,    140,   1100,    230,    590,    440,    240,    580,\r
+        560,    230,     40,    380,    540,    310,    240,    330,   2360,   1160) // W\r
+\r
+ROW(    410,    650,    360,    340,   1340,    180,   1050,    580,    430,    670,\r
+        650,    560,    300,    490,    490,    500,    460,    540,   1160,   1780) // Y\r
+       };\r
+\r
+double Gonnet16[21][21] =\r
+       {\r
+//       A      C      D      E      F      G      H      I      K      L\r
+//       M      N      P      Q      R      S      T      V      W      Y\r
+ROW(   124,    81,    67,    74,    40,    80,    60,    60,    66,    56,\r
+        66,    66,    77,    71,    62,    94,    83,    79,    23,    41) // A\r
+\r
+ROW(    81,   213,    25,    26,    60,    44,    55,    53,    30,    49,\r
+        59,    47,    26,    36,    43,    76,    64,    72,    57,    65) // C\r
+\r
+ROW(    67,    25,   148,   112,     8,    71,    77,    16,    77,    13,\r
+        28,   104,    59,    84,    62,    78,    72,    29,     0,    36) // D\r
+\r
+ROW(    74,    26,   112,   137,    16,    57,    77,    35,    91,    33,\r
+        47,    83,    64,   101,    75,    75,    70,    48,    14,    34) // E\r
+\r
+ROW(    40,    60,     8,    16,   169,     2,    71,    81,    25,    97,\r
+        92,    31,    20,    37,    25,    33,    42,    70,   110,   134) // F\r
+\r
+ROW(    80,    44,    71,    57,     2,   160,    51,     8,    54,    11,\r
+        26,    76,    48,    57,    57,    77,    54,    26,    23,    18) // G\r
+\r
+ROW(    60,    55,    77,    77,    71,    51,   171,    41,    80,    46,\r
+        57,    93,    56,    95,    81,    70,    70,    43,    59,   105) // H\r
+\r
+ROW(    60,    53,    16,    35,    81,     8,    41,   137,    43,   108,\r
+       107,    34,    35,    46,    37,    45,    66,   118,    44,    58) // I\r
+\r
+ROW(    66,    30,    77,    91,    25,    54,    80,    43,   133,    44,\r
+        57,    86,    62,    98,   113,    74,    76,    48,    24,    43) // K\r
+\r
+ROW(    56,    49,    13,    33,    97,    11,    46,   108,    44,   135,\r
+       112,    30,    43,    54,    43,    42,    54,    95,    58,    67) // L\r
+\r
+ROW(    66,    59,    28,    47,    92,    26,    57,   107,    57,   112,\r
+       154,    42,    36,    66,    49,    55,    67,    92,    56,    65) // M\r
+\r
+ROW(    66,    47,   104,    83,    31,    76,    93,    34,    86,    30,\r
+        42,   143,    56,    83,    74,    89,    81,    40,    23,    56) // N\r
+\r
+ROW(    77,    26,    59,    64,    20,    48,    56,    35,    62,    43,\r
+        36,    56,   174,    70,    57,    78,    74,    46,     4,    30) // P\r
+\r
+ROW(    71,    36,    84,   101,    37,    57,    95,    46,    98,    54,\r
+        66,    83,    70,   134,    95,    76,    74,    51,    38,    49) // Q\r
+\r
+ROW(    62,    43,    62,    75,    25,    57,    81,    37,   113,    43,\r
+        49,    74,    57,    95,   149,    69,    69,    44,    54,    49) // R\r
+\r
+ROW(    94,    76,    78,    75,    33,    77,    70,    45,    74,    42,\r
+        55,    89,    78,    76,    69,   122,   101,    58,    31,    50) // S\r
+\r
+ROW(    83,    64,    72,    70,    42,    54,    70,    66,    76,    54,\r
+        67,    81,    74,    74,    69,   101,   128,    78,    24,    46) // T\r
+\r
+ROW(    79,    72,    29,    48,    70,    26,    43,   118,    48,    95,\r
+        92,    40,    46,    51,    44,    58,    78,   131,    33,    54) // V\r
+\r
+ROW(    23,    57,     0,    14,   110,    23,    59,    44,    24,    58,\r
+        56,    23,     4,    38,    54,    31,    24,    33,   236,   116) // W\r
+\r
+ROW(    41,    65,    36,    34,   134,    18,   105,    58,    43,    67,\r
+        65,    56,    30,    49,    49,    50,    46,    54,   116,   178) // Y\r
+       };\r
+\r
+static double Gonnet250[20][20] =\r
+       {\r
+//        A       C       D       E       F       G       H       I       K       L\r
+//        M       N       P       Q       R       S       T       V       W       Y\r
+ROW(    760,    570,    490,    520,    290,    570,    440,    440,    480,    400,\r
+        450,    490,    550,    500,    460,    630,    580,    530,    160,    300) // A\r
+\r
+ROW(    570,   1670,    200,    220,    440,    320,    390,    410,    240,    370,\r
+        430,    340,    210,    280,    300,    530,    470,    520,    420,    470) // C\r
+\r
+ROW(    490,    200,    990,    790,     70,    530,    560,    140,    570,    120,\r
+        220,    740,    450,    610,    490,    570,    520,    230,      0,    240) // D\r
+\r
+ROW(    520,    220,    790,    880,    130,    440,    560,    250,    640,    240,\r
+        320,    610,    470,    690,    560,    540,    510,    330,     90,    250) // E\r
+\r
+ROW(    290,    440,     70,    130,   1220,      0,    510,    620,    190,    720,\r
+        680,    210,    140,    260,    200,    240,    300,    530,    880,   1030) // F\r
+\r
+ROW(    570,    320,    530,    440,      0,   1180,    380,     70,    410,     80,\r
+        170,    560,    360,    420,    420,    560,    410,    190,    120,    120) // G\r
+\r
+ROW(    440,    390,    560,    560,    510,    380,   1120,    300,    580,    330,\r
+        390,    640,    410,    640,    580,    500,    490,    320,    440,    740) // H\r
+\r
+ROW(    440,    410,    140,    250,    620,     70,    300,    920,    310,    800,\r
+        770,    240,    260,    330,    280,    340,    460,    830,    340,    450) // I\r
+\r
+ROW(    480,    240,    570,    640,    190,    410,    580,    310,    840,    310,\r
+        380,    600,    460,    670,    790,    530,    530,    350,    170,    310) // K\r
+\r
+ROW(    400,    370,    120,    240,    720,     80,    330,    800,    310,    920,\r
+        800,    220,    290,    360,    300,    310,    390,    700,    450,    520) // L\r
+\r
+ROW(    450,    430,    220,    320,    680,    170,    390,    770,    380,    800,\r
+        950,    300,    280,    420,    350,    380,    460,    680,    420,    500) // M\r
+\r
+ROW(    490,    340,    740,    610,    210,    560,    640,    240,    600,    220,\r
+        300,    900,    430,    590,    550,    610,    570,    300,    160,    380) // N\r
+\r
+ROW(    550,    210,    450,    470,    140,    360,    410,    260,    460,    290,\r
+        280,    430,   1280,    500,    430,    560,    530,    340,     20,    210) // P\r
+\r
+ROW(    500,    280,    610,    690,    260,    420,    640,    330,    670,    360,\r
+        420,    590,    500,    790,    670,    540,    520,    370,    250,    350) // Q\r
+\r
+ROW(    460,    300,    490,    560,    200,    420,    580,    280,    790,    300,\r
+        350,    550,    430,    670,    990,    500,    500,    320,    360,    340) // R\r
+\r
+ROW(    630,    530,    570,    540,    240,    560,    500,    340,    530,    310,\r
+        380,    610,    560,    540,    500,    740,    670,    420,    190,    330) // S\r
+\r
+ROW(    580,    470,    520,    510,    300,    410,    490,    460,    530,    390,\r
+        460,    570,    530,    520,    500,    670,    770,    520,    170,    330) // T\r
+\r
+ROW(    530,    520,    230,    330,    530,    190,    320,    830,    350,    700,\r
+        680,    300,    340,    370,    320,    420,    520,    860,    260,    410) // V\r
+\r
+ROW(    160,    420,      0,     90,    880,    120,    440,    340,    170,    450,\r
+        420,    160,     20,    250,    360,    190,    170,    260,   1940,    930) // W\r
+\r
+ROW(    300,    470,    240,    250,   1030,    120,    740,    450,    310,    520,\r
+        500,    380,    210,    350,    340,    330,    330,    410,    930,   1300) // Y\r
+       };\r
+\r
+static double Gonnet350[20][20] =\r
+       {\r
+//        A       C       D       E       F       G       H       I       K       L\r
+//        M       N       P       Q       R       S       T       V       W       Y\r
+ROW(    450,    390,    350,    360,    210,    400,    310,    310,    340,    280,\r
+        310,    350,    380,    350,    330,    410,    390,    350,    110,    210) // A\r
+\r
+ROW(    390,   1280,    160,    180,    320,    230,    270,    300,    190,    280,\r
+        310,    240,    170,    210,    220,    360,    330,    370,    310,    340) // C\r
+\r
+ROW(    350,    160,    640,    540,     50,    390,    400,    110,    410,    100,\r
+        160,    500,    330,    430,    370,    400,    370,    170,      0,    170) // D\r
+\r
+ROW(    360,    180,    540,    550,    100,    330,    390,    180,    440,    170,\r
+        220,    440,    350,    460,    410,    380,    360,    230,     60,    180) // E\r
+\r
+ROW(    210,    320,     50,    100,    860,      0,    360,    460,    140,    530,\r
+        490,    150,    100,    190,    150,    170,    220,    400,    700,    770) // F\r
+\r
+ROW(    400,    230,    390,    330,      0,    860,    280,     60,    310,     50,\r
+        120,    400,    280,    310,    310,    400,    300,    140,     50,     80) // G\r
+\r
+ROW(    310,    270,    400,    390,    360,    280,    680,    220,    400,    240,\r
+        270,    430,    300,    420,    410,    350,    340,    240,    320,    500) // H\r
+\r
+ROW(    310,    300,    110,    180,    460,     60,    220,    620,    220,    570,\r
+        540,    170,    190,    240,    200,    240,    320,    570,    260,    340) // I\r
+\r
+ROW(    340,    190,    410,    440,    140,    310,    400,    220,    530,    210,\r
+        260,    420,    330,    450,    530,    370,    370,    250,    120,    210) // K\r
+\r
+ROW(    280,    280,    100,    170,    530,     50,    240,    570,    210,    630,\r
+        560,    160,    200,    240,    210,    220,    280,    510,    340,    400) // L\r
+\r
+ROW(    310,    310,    160,    220,    490,    120,    270,    540,    260,    560,\r
+        580,    210,    210,    280,    240,    260,    310,    490,    320,    370) // M\r
+\r
+ROW(    350,    240,    500,    440,    150,    400,    430,    170,    420,    160,\r
+        210,    550,    320,    410,    390,    410,    390,    220,    110,    250) // N\r
+\r
+ROW(    380,    170,    330,    350,    100,    280,    300,    190,    330,    200,\r
+        210,    320,    910,    350,    310,    390,    370,    240,     10,    150) // P\r
+\r
+ROW(    350,    210,    430,    460,    190,    310,    420,    240,    450,    240,\r
+        280,    410,    350,    470,    450,    370,    360,    260,    160,    240) // Q\r
+\r
+ROW(    330,    220,    370,    410,    150,    310,    410,    200,    530,    210,\r
+        240,    390,    310,    450,    630,    360,    350,    230,    230,    230) // R\r
+\r
+ROW(    410,    360,    400,    380,    170,    400,    350,    240,    370,    220,\r
+        260,    410,    390,    370,    360,    450,    430,    290,    130,    230) // S\r
+\r
+ROW(    390,    330,    370,    360,    220,    300,    340,    320,    370,    280,\r
+        310,    390,    370,    360,    350,    430,    460,    350,    120,    230) // T\r
+\r
+ROW(    350,    370,    170,    230,    400,    140,    240,    570,    250,    510,\r
+        490,    220,    240,    260,    230,    290,    350,    560,    210,    310) // V\r
+\r
+ROW(    110,    310,      0,     60,    700,     50,    320,    260,    120,    340,\r
+        320,    110,     10,    160,    230,    130,    120,    210,   1590,    740) // W\r
+\r
+ROW(    210,    340,    170,    180,    770,     80,    500,    340,    210,    400,\r
+        370,    250,    150,    240,    230,    230,    230,    310,    740,    920) // Y\r
+       };\r
+\r
+const t_ROW *GetGonnetMatrix(unsigned N)\r
+       {\r
+       switch (N)\r
+               {\r
+       case 80:\r
+               return Gonnet80;\r
+       case 120:\r
+               return Gonnet120;\r
+       //case 16:\r
+       //      return Gonnet16;\r
+       //case 160:\r
+       //      return Gonnet160;\r
+       case 250:\r
+               return Gonnet250;\r
+       case 350:\r
+               return Gonnet350;\r
+               }\r
+       Quit("Invalid Gonnet%u", N);\r
+       return 0;\r
+       }\r
+\r
+//SCORE GetGonnetGapOpen(unsigned N)\r
+//     {\r
+//     switch (N)\r
+//             {\r
+//     case 80:\r
+//             return -639;\r
+//     case 120:\r
+//             return -863;\r
+//     case 160:\r
+//             return -611;\r
+//     case 250:\r
+//             return -308;\r
+//     case 350:\r
+//             return -158;\r
+//             }\r
+//     Quit("Invalid Gonnet%u", N);\r
+//     return 0;\r
+//     }\r
+\r
+SCORE GetGonnetGapOpen(unsigned N)\r
+       {\r
+       switch (N)\r
+               {\r
+       case 80:\r
+               return -1000;\r
+       case 120:\r
+               return -800;\r
+       case 160:\r
+               return -700;\r
+       case 250:\r
+               return -200;\r
+       case 350:\r
+               return -175;\r
+               }\r
+       Quit("Invalid Gonnet%u", N);\r
+       return 0;\r
+       }\r
+\r
+SCORE GetGonnetGapExtend(unsigned N)\r
+       {\r
+       switch (N)\r
+               {\r
+       case 80:\r
+               return 350;\r
+       case 120:\r
+               return 200;\r
+       case 160:\r
+               return 175;\r
+       case 250:\r
+               return 20;\r
+       case 350:\r
+               return 20;\r
+               }\r
+       Quit("Invalid Gonnet%u", N);\r
+       return 0;\r
+       }\r
+\r
+//double GonnetLookup[400][400];\r
+//\r
+//static bool InitGonnetLookup()\r
+//     {\r
+//     for (unsigned i = 0; i < 400; ++i)\r
+//             {\r
+//             const unsigned A1 = i/20;\r
+//             const unsigned A2 = i%20;\r
+//             for (unsigned j = 0; j <= i; ++j)\r
+//                     {\r
+//                     const unsigned B1 = j/20;\r
+//                     const unsigned B2 = j%20;\r
+//                     \r
+//                     const double s00 = Gonnet16[A1][B1];\r
+//                     const double s01 = Gonnet16[A1][B2];\r
+//                     const double s10 = Gonnet16[A2][B1];\r
+//                     const double s11 = Gonnet16[A2][B2];\r
+//\r
+//                     GonnetLookup[i][j] = GonnetLookup[j][i] = (s00 + s01 + s10 + s11)/4;\r
+//                     }\r
+//             }\r
+//     return true;\r
+//     }\r
+//\r
+//static bool bGonnetLookupInitialized = InitGonnetLookup();\r