source: trunk/GDE/MUSCLE/src/gonnet.cpp

Last change on this file was 10390, checked in by aboeckma, 11 years ago

added muscle sourcles amd makefile

File size: 23.8 KB
Line 
1#include "muscle.h"
2#include "gonnet.h"
3
4#define ROW(A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y) \
5        { 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 },
6
7static double Gonnet80[20][20] =
8        {
9//        A       C       D       E       F       G       H       I       K       L
10//        M       N       P       Q       R       S       T       V       W       Y
11ROW(   1990,   1140,    930,   1070,    600,   1130,    850,    810,    940,    810,
12        980,    900,   1080,   1020,    880,   1380,   1190,   1180,    370,    590) // A
13
14ROW(   1140,   2780,    310,    300,    850,    630,    810,    700,    360,    690,
15        850,    690,    310,    480,    640,   1090,    900,   1030,    810,    920) // C
16
17ROW(    930,    310,   2200,   1550,    130,    980,   1070,    180,   1030,    150,
18        360,   1450,    820,   1150,    800,   1100,   1000,    350,      0,    550) // D
19
20ROW(   1070,    300,   1550,   2120,    220,    770,   1070,    510,   1280,    490,
21        710,   1110,    890,   1470,   1010,   1050,    970,    730,    260,    500) // E
22
23ROW(    600,    850,    130,    220,   2380,     90,    980,   1090,    350,   1310,
24       1270,    490,    310,    540,    340,    470,    620,    930,   1400,   1730) // F
25
26ROW(   1130,    630,    980,    770,     90,   2210,    710,    100,    740,    200,
27        410,   1060,    660,    800,    810,   1080,    720,    380,    430,    300) // G
28
29ROW(    850,    810,   1070,   1070,    980,    710,   2510,    600,   1120,    670,
30        860,   1330,    790,   1380,   1140,    990,   1000,    590,    810,   1450) // H
31
32ROW(    810,    700,    180,    510,   1090,    100,    600,   2100,    650,   1460,
33       1490,    530,    490,    640,    530,    620,    960,   1650,    610,    770) // I
34
35ROW(    940,    360,   1030,   1280,    350,    740,   1120,    650,   2090,    660,
36        870,   1220,    870,   1410,   1570,   1040,   1090,    700,    350,    640) // K
37
38ROW(    810,    690,    150,    490,   1310,    200,    670,   1460,    660,   2010,
39       1550,    450,    660,    850,    660,    600,    750,   1270,    800,    890) // L
40
41ROW(    980,    850,    360,    710,   1270,    410,    860,   1490,    870,   1550,
42       2410,    620,    460,   1050,    710,    830,    990,   1250,    790,    870) // M
43
44ROW(    900,    690,   1450,   1110,    490,   1060,   1330,    530,   1220,    450,
45        620,   2210,    760,   1180,   1020,   1290,   1170,    550,    380,    850) // N
46
47ROW(   1080,    310,    820,    890,    310,    660,    790,    490,    870,    660,
48        460,    760,   2380,   1000,    790,   1100,   1040,    670,    120,    480) // P
49
50ROW(   1020,    480,   1150,   1470,    540,    800,   1380,    640,   1410,    850,
51       1050,   1180,   1000,   2190,   1350,   1090,   1060,    730,    620,    710) // Q
52
53ROW(    880,    640,    800,   1010,    340,    810,   1140,    530,   1570,    660,
54        710,   1020,    790,   1350,   2210,    970,    970,    640,    830,    740) // R
55
56ROW(   1380,   1090,   1100,   1050,    470,   1080,    990,    620,   1040,    600,
57        830,   1290,   1100,   1090,    970,   2020,   1490,    810,    520,    780) // S
58
59ROW(   1190,    900,   1000,    970,    620,    720,   1000,    960,   1090,    750,
60        990,   1170,   1040,   1060,    970,   1490,   2050,   1150,    370,    660) // T
61
62ROW(   1180,   1030,    350,    730,    930,    380,    590,   1650,    700,   1270,
63       1250,    550,    670,    730,    640,    810,   1150,   2040,    440,    770) // V
64
65ROW(    370,    810,      0,    260,   1400,    430,    810,    610,    350,    800,
66        790,    380,    120,    620,    830,    520,    370,    440,   2970,   1470) // W
67
68ROW(    590,    920,    550,    500,   1730,    300,   1450,    770,    640,    890,
69        870,    850,    480,    710,    740,    780,    660,    770,   1470,   2470) // Y
70        };
71
72static double Gonnet120[20][20] =
73        {
74//        A       C       D       E       F       G       H       I       K       L
75//        M       N       P       Q       R       S       T       V       W       Y
76ROW(   1550,    950,    780,    870,    480,    930,    700,    690,    770,    660,
77        790,    760,    900,    840,    730,   1120,    980,    960,    280,    480) // A
78
79ROW(    950,   2400,    270,    280,    700,    510,    650,    600,    320,    570,
80        700,    550,    280,    400,    510,    890,    750,    850,    670,    760) // C
81
82ROW(    780,    270,   1780,   1310,     90,    820,    890,    160,    880,    140,
83        320,   1220,    680,    970,    690,    910,    830,    310,      0,    430) // D
84
85ROW(    870,    280,   1310,   1680,    180,    650,    900,    410,   1070,    390,
86        560,    950,    740,   1210,    860,    870,    810,    580,    180,    400) // E
87
88ROW(    480,    700,     90,    180,   1980,     40,    820,    930,    290,   1110,
89       1070,    380,    240,    430,    280,    380,    490,    790,   1230,   1510) // F
90
91ROW(    930,    510,    820,    650,     40,   1860,    590,     90,    620,    140,
92        310,    890,    550,    660,    660,    900,    610,    310,    300,    220) // G
93
94ROW(    700,    650,    890,    900,    820,    590,   2060,    480,    940,    540,
95        680,   1100,    650,   1130,    950,    820,    820,    490,    680,   1220) // H
96
97ROW(    690,    600,    160,    410,    930,     90,    480,   1680,    520,   1240,
98       1250,    410,    400,    530,    430,    520,    790,   1380,    500,    650) // I
99
100ROW(    770,    320,    880,   1070,    290,    620,    940,    520,   1650,    520,
101        690,   1010,    720,   1160,   1320,    860,    900,    570,    280,    520) // K
102
103ROW(    660,    570,    140,    390,   1110,    140,    540,   1240,    520,   1620,
104       1300,    350,    520,    660,    520,    490,    620,   1090,    670,    760) // L
105
106ROW(    790,    700,    320,    560,   1070,    310,    680,   1250,    690,   1300,
107       1910,    500,    400,    820,    580,    670,    800,   1060,    650,    740) // M
108
109ROW(    760,    550,   1220,    950,    380,    890,   1100,    410,   1010,    350,
110        500,   1760,    640,    970,    860,   1060,    960,    460,    280,    680) // N
111
112ROW(    900,    280,    680,    740,    240,    550,    650,    400,    720,    520,
113        400,    640,   2010,    820,    660,    910,    860,    540,     70,    370) // P
114
115ROW(    840,    400,    970,   1210,    430,    660,   1130,    530,   1160,    660,
116        820,    970,    820,   1700,   1120,    890,    870,    600,    470,    580) // Q
117
118ROW(    730,    510,    690,    860,    280,    660,    950,    430,   1320,    520,
119        580,    860,    660,   1120,   1790,    810,    800,    520,    660,    590) // R
120
121ROW(   1120,    890,    910,    870,    380,    900,    820,    520,    860,    490,
122        670,   1060,    910,    890,    810,   1560,   1220,    680,    390,    610) // S
123
124ROW(    980,    750,    830,    810,    490,    610,    820,    790,    900,    620,
125        800,    960,    860,    870,    800,   1220,   1600,    930,    290,    540) // T
126
127ROW(    960,    850,    310,    580,    790,    310,    490,   1380,    570,   1090,
128       1060,    460,    540,    600,    520,    680,    930,   1610,    370,    630) // V
129
130ROW(    280,    670,      0,    180,   1230,    300,    680,    500,    280,    670,
131        650,    280,     70,    470,    660,    390,    290,    370,   2620,   1290) // W
132
133ROW(    480,    760,    430,    400,   1510,    220,   1220,    650,    520,    760,
134        740,    680,    370,    580,    590,    610,    540,    630,   1290,   2070) // Y
135        };
136
137static SCORE Gonnet160[20][20] =
138        {
139//        A       C       D       E       F       G       H       I       K       L
140//        M       N       P       Q       R       S       T       V       W       Y
141ROW(   1240,    810,    670,    740,    400,    800,    600,    600,    660,    560,
142        660,    660,    770,    710,    620,    940,    830,    790,    230,    410) // A
143
144ROW(    810,   2130,    250,    260,    600,    440,    550,    530,    300,    490,
145        590,    470,    260,    360,    430,    760,    640,    720,    570,    650) // C
146
147ROW(    670,    250,   1480,   1120,     80,    710,    770,    160,    770,    130,
148        280,   1040,    590,    840,    620,    780,    720,    290,      0,    360) // D
149
150ROW(    740,    260,   1120,   1370,    160,    570,    770,    350,    910,    330,
151        470,    830,    640,   1010,    750,    750,    700,    480,    140,    340) // E
152
153ROW(    400,    600,     80,    160,   1690,     20,    710,    810,    250,    970,
154        920,    310,    200,    370,    250,    330,    420,    700,   1100,   1340) // F
155
156ROW(    800,    440,    710,    570,     20,   1600,    510,     80,    540,    110,
157        260,    760,    480,    570,    570,    770,    540,    260,    230,    180) // G
158
159ROW(    600,    550,    770,    770,    710,    510,   1710,    410,    800,    460,
160        570,    930,    560,    950,    810,    700,    700,    430,    590,   1050) // H
161
162ROW(    600,    530,    160,    350,    810,     80,    410,   1370,    430,   1080,
163       1070,    340,    350,    460,    370,    450,    660,   1180,    440,    580) // I
164
165ROW(    660,    300,    770,    910,    250,    540,    800,    430,   1330,    440,
166        570,    860,    620,    980,   1130,    740,    760,    480,    240,    430) // K
167
168ROW(    560,    490,    130,    330,    970,    110,    460,   1080,    440,   1350,
169       1120,    300,    430,    540,    430,    420,    540,    950,    580,    670) // L
170
171ROW(    660,    590,    280,    470,    920,    260,    570,   1070,    570,   1120,
172       1540,    420,    360,    660,    490,    550,    670,    920,    560,    650) // M
173
174ROW(    660,    470,   1040,    830,    310,    760,    930,    340,    860,    300,
175        420,   1430,    560,    830,    740,    890,    810,    400,    230,    560) // N
176
177ROW(    770,    260,    590,    640,    200,    480,    560,    350,    620,    430,
178        360,    560,   1740,    700,    570,    780,    740,    460,     40,    300) // P
179
180ROW(    710,    360,    840,   1010,    370,    570,    950,    460,    980,    540,
181        660,    830,    700,   1340,    950,    760,    740,    510,    380,    490) // Q
182
183ROW(    620,    430,    620,    750,    250,    570,    810,    370,   1130,    430,
184        490,    740,    570,    950,   1490,    690,    690,    440,    540,    490) // R
185
186ROW(    940,    760,    780,    750,    330,    770,    700,    450,    740,    420,
187        550,    890,    780,    760,    690,   1220,   1010,    580,    310,    500) // S
188
189ROW(    830,    640,    720,    700,    420,    540,    700,    660,    760,    540,
190        670,    810,    740,    740,    690,   1010,   1280,    780,    240,    460) // T
191
192ROW(    790,    720,    290,    480,    700,    260,    430,   1180,    480,    950,
193        920,    400,    460,    510,    440,    580,    780,   1310,    330,    540) // V
194
195ROW(    230,    570,      0,    140,   1100,    230,    590,    440,    240,    580,
196        560,    230,     40,    380,    540,    310,    240,    330,   2360,   1160) // W
197
198ROW(    410,    650,    360,    340,   1340,    180,   1050,    580,    430,    670,
199        650,    560,    300,    490,    490,    500,    460,    540,   1160,   1780) // Y
200        };
201
202double Gonnet16[21][21] =
203        {
204//       A      C      D      E      F      G      H      I      K      L
205//       M      N      P      Q      R      S      T      V      W      Y
206ROW(   124,    81,    67,    74,    40,    80,    60,    60,    66,    56,
207        66,    66,    77,    71,    62,    94,    83,    79,    23,    41) // A
208
209ROW(    81,   213,    25,    26,    60,    44,    55,    53,    30,    49,
210        59,    47,    26,    36,    43,    76,    64,    72,    57,    65) // C
211
212ROW(    67,    25,   148,   112,     8,    71,    77,    16,    77,    13,
213        28,   104,    59,    84,    62,    78,    72,    29,     0,    36) // D
214
215ROW(    74,    26,   112,   137,    16,    57,    77,    35,    91,    33,
216        47,    83,    64,   101,    75,    75,    70,    48,    14,    34) // E
217
218ROW(    40,    60,     8,    16,   169,     2,    71,    81,    25,    97,
219        92,    31,    20,    37,    25,    33,    42,    70,   110,   134) // F
220
221ROW(    80,    44,    71,    57,     2,   160,    51,     8,    54,    11,
222        26,    76,    48,    57,    57,    77,    54,    26,    23,    18) // G
223
224ROW(    60,    55,    77,    77,    71,    51,   171,    41,    80,    46,
225        57,    93,    56,    95,    81,    70,    70,    43,    59,   105) // H
226
227ROW(    60,    53,    16,    35,    81,     8,    41,   137,    43,   108,
228       107,    34,    35,    46,    37,    45,    66,   118,    44,    58) // I
229
230ROW(    66,    30,    77,    91,    25,    54,    80,    43,   133,    44,
231        57,    86,    62,    98,   113,    74,    76,    48,    24,    43) // K
232
233ROW(    56,    49,    13,    33,    97,    11,    46,   108,    44,   135,
234       112,    30,    43,    54,    43,    42,    54,    95,    58,    67) // L
235
236ROW(    66,    59,    28,    47,    92,    26,    57,   107,    57,   112,
237       154,    42,    36,    66,    49,    55,    67,    92,    56,    65) // M
238
239ROW(    66,    47,   104,    83,    31,    76,    93,    34,    86,    30,
240        42,   143,    56,    83,    74,    89,    81,    40,    23,    56) // N
241
242ROW(    77,    26,    59,    64,    20,    48,    56,    35,    62,    43,
243        36,    56,   174,    70,    57,    78,    74,    46,     4,    30) // P
244
245ROW(    71,    36,    84,   101,    37,    57,    95,    46,    98,    54,
246        66,    83,    70,   134,    95,    76,    74,    51,    38,    49) // Q
247
248ROW(    62,    43,    62,    75,    25,    57,    81,    37,   113,    43,
249        49,    74,    57,    95,   149,    69,    69,    44,    54,    49) // R
250
251ROW(    94,    76,    78,    75,    33,    77,    70,    45,    74,    42,
252        55,    89,    78,    76,    69,   122,   101,    58,    31,    50) // S
253
254ROW(    83,    64,    72,    70,    42,    54,    70,    66,    76,    54,
255        67,    81,    74,    74,    69,   101,   128,    78,    24,    46) // T
256
257ROW(    79,    72,    29,    48,    70,    26,    43,   118,    48,    95,
258        92,    40,    46,    51,    44,    58,    78,   131,    33,    54) // V
259
260ROW(    23,    57,     0,    14,   110,    23,    59,    44,    24,    58,
261        56,    23,     4,    38,    54,    31,    24,    33,   236,   116) // W
262
263ROW(    41,    65,    36,    34,   134,    18,   105,    58,    43,    67,
264        65,    56,    30,    49,    49,    50,    46,    54,   116,   178) // Y
265        };
266
267static double Gonnet250[20][20] =
268        {
269//        A       C       D       E       F       G       H       I       K       L
270//        M       N       P       Q       R       S       T       V       W       Y
271ROW(    760,    570,    490,    520,    290,    570,    440,    440,    480,    400,
272        450,    490,    550,    500,    460,    630,    580,    530,    160,    300) // A
273
274ROW(    570,   1670,    200,    220,    440,    320,    390,    410,    240,    370,
275        430,    340,    210,    280,    300,    530,    470,    520,    420,    470) // C
276
277ROW(    490,    200,    990,    790,     70,    530,    560,    140,    570,    120,
278        220,    740,    450,    610,    490,    570,    520,    230,      0,    240) // D
279
280ROW(    520,    220,    790,    880,    130,    440,    560,    250,    640,    240,
281        320,    610,    470,    690,    560,    540,    510,    330,     90,    250) // E
282
283ROW(    290,    440,     70,    130,   1220,      0,    510,    620,    190,    720,
284        680,    210,    140,    260,    200,    240,    300,    530,    880,   1030) // F
285
286ROW(    570,    320,    530,    440,      0,   1180,    380,     70,    410,     80,
287        170,    560,    360,    420,    420,    560,    410,    190,    120,    120) // G
288
289ROW(    440,    390,    560,    560,    510,    380,   1120,    300,    580,    330,
290        390,    640,    410,    640,    580,    500,    490,    320,    440,    740) // H
291
292ROW(    440,    410,    140,    250,    620,     70,    300,    920,    310,    800,
293        770,    240,    260,    330,    280,    340,    460,    830,    340,    450) // I
294
295ROW(    480,    240,    570,    640,    190,    410,    580,    310,    840,    310,
296        380,    600,    460,    670,    790,    530,    530,    350,    170,    310) // K
297
298ROW(    400,    370,    120,    240,    720,     80,    330,    800,    310,    920,
299        800,    220,    290,    360,    300,    310,    390,    700,    450,    520) // L
300
301ROW(    450,    430,    220,    320,    680,    170,    390,    770,    380,    800,
302        950,    300,    280,    420,    350,    380,    460,    680,    420,    500) // M
303
304ROW(    490,    340,    740,    610,    210,    560,    640,    240,    600,    220,
305        300,    900,    430,    590,    550,    610,    570,    300,    160,    380) // N
306
307ROW(    550,    210,    450,    470,    140,    360,    410,    260,    460,    290,
308        280,    430,   1280,    500,    430,    560,    530,    340,     20,    210) // P
309
310ROW(    500,    280,    610,    690,    260,    420,    640,    330,    670,    360,
311        420,    590,    500,    790,    670,    540,    520,    370,    250,    350) // Q
312
313ROW(    460,    300,    490,    560,    200,    420,    580,    280,    790,    300,
314        350,    550,    430,    670,    990,    500,    500,    320,    360,    340) // R
315
316ROW(    630,    530,    570,    540,    240,    560,    500,    340,    530,    310,
317        380,    610,    560,    540,    500,    740,    670,    420,    190,    330) // S
318
319ROW(    580,    470,    520,    510,    300,    410,    490,    460,    530,    390,
320        460,    570,    530,    520,    500,    670,    770,    520,    170,    330) // T
321
322ROW(    530,    520,    230,    330,    530,    190,    320,    830,    350,    700,
323        680,    300,    340,    370,    320,    420,    520,    860,    260,    410) // V
324
325ROW(    160,    420,      0,     90,    880,    120,    440,    340,    170,    450,
326        420,    160,     20,    250,    360,    190,    170,    260,   1940,    930) // W
327
328ROW(    300,    470,    240,    250,   1030,    120,    740,    450,    310,    520,
329        500,    380,    210,    350,    340,    330,    330,    410,    930,   1300) // Y
330        };
331
332static double Gonnet350[20][20] =
333        {
334//        A       C       D       E       F       G       H       I       K       L
335//        M       N       P       Q       R       S       T       V       W       Y
336ROW(    450,    390,    350,    360,    210,    400,    310,    310,    340,    280,
337        310,    350,    380,    350,    330,    410,    390,    350,    110,    210) // A
338
339ROW(    390,   1280,    160,    180,    320,    230,    270,    300,    190,    280,
340        310,    240,    170,    210,    220,    360,    330,    370,    310,    340) // C
341
342ROW(    350,    160,    640,    540,     50,    390,    400,    110,    410,    100,
343        160,    500,    330,    430,    370,    400,    370,    170,      0,    170) // D
344
345ROW(    360,    180,    540,    550,    100,    330,    390,    180,    440,    170,
346        220,    440,    350,    460,    410,    380,    360,    230,     60,    180) // E
347
348ROW(    210,    320,     50,    100,    860,      0,    360,    460,    140,    530,
349        490,    150,    100,    190,    150,    170,    220,    400,    700,    770) // F
350
351ROW(    400,    230,    390,    330,      0,    860,    280,     60,    310,     50,
352        120,    400,    280,    310,    310,    400,    300,    140,     50,     80) // G
353
354ROW(    310,    270,    400,    390,    360,    280,    680,    220,    400,    240,
355        270,    430,    300,    420,    410,    350,    340,    240,    320,    500) // H
356
357ROW(    310,    300,    110,    180,    460,     60,    220,    620,    220,    570,
358        540,    170,    190,    240,    200,    240,    320,    570,    260,    340) // I
359
360ROW(    340,    190,    410,    440,    140,    310,    400,    220,    530,    210,
361        260,    420,    330,    450,    530,    370,    370,    250,    120,    210) // K
362
363ROW(    280,    280,    100,    170,    530,     50,    240,    570,    210,    630,
364        560,    160,    200,    240,    210,    220,    280,    510,    340,    400) // L
365
366ROW(    310,    310,    160,    220,    490,    120,    270,    540,    260,    560,
367        580,    210,    210,    280,    240,    260,    310,    490,    320,    370) // M
368
369ROW(    350,    240,    500,    440,    150,    400,    430,    170,    420,    160,
370        210,    550,    320,    410,    390,    410,    390,    220,    110,    250) // N
371
372ROW(    380,    170,    330,    350,    100,    280,    300,    190,    330,    200,
373        210,    320,    910,    350,    310,    390,    370,    240,     10,    150) // P
374
375ROW(    350,    210,    430,    460,    190,    310,    420,    240,    450,    240,
376        280,    410,    350,    470,    450,    370,    360,    260,    160,    240) // Q
377
378ROW(    330,    220,    370,    410,    150,    310,    410,    200,    530,    210,
379        240,    390,    310,    450,    630,    360,    350,    230,    230,    230) // R
380
381ROW(    410,    360,    400,    380,    170,    400,    350,    240,    370,    220,
382        260,    410,    390,    370,    360,    450,    430,    290,    130,    230) // S
383
384ROW(    390,    330,    370,    360,    220,    300,    340,    320,    370,    280,
385        310,    390,    370,    360,    350,    430,    460,    350,    120,    230) // T
386
387ROW(    350,    370,    170,    230,    400,    140,    240,    570,    250,    510,
388        490,    220,    240,    260,    230,    290,    350,    560,    210,    310) // V
389
390ROW(    110,    310,      0,     60,    700,     50,    320,    260,    120,    340,
391        320,    110,     10,    160,    230,    130,    120,    210,   1590,    740) // W
392
393ROW(    210,    340,    170,    180,    770,     80,    500,    340,    210,    400,
394        370,    250,    150,    240,    230,    230,    230,    310,    740,    920) // Y
395        };
396
397const t_ROW *GetGonnetMatrix(unsigned N)
398        {
399        switch (N)
400                {
401        case 80:
402                return Gonnet80;
403        case 120:
404                return Gonnet120;
405        //case 16:
406        //      return Gonnet16;
407        //case 160:
408        //      return Gonnet160;
409        case 250:
410                return Gonnet250;
411        case 350:
412                return Gonnet350;
413                }
414        Quit("Invalid Gonnet%u", N);
415        return 0;
416        }
417
418//SCORE GetGonnetGapOpen(unsigned N)
419//      {
420//      switch (N)
421//              {
422//      case 80:
423//              return -639;
424//      case 120:
425//              return -863;
426//      case 160:
427//              return -611;
428//      case 250:
429//              return -308;
430//      case 350:
431//              return -158;
432//              }
433//      Quit("Invalid Gonnet%u", N);
434//      return 0;
435//      }
436
437SCORE GetGonnetGapOpen(unsigned N)
438        {
439        switch (N)
440                {
441        case 80:
442                return -1000;
443        case 120:
444                return -800;
445        case 160:
446                return -700;
447        case 250:
448                return -200;
449        case 350:
450                return -175;
451                }
452        Quit("Invalid Gonnet%u", N);
453        return 0;
454        }
455
456SCORE GetGonnetGapExtend(unsigned N)
457        {
458        switch (N)
459                {
460        case 80:
461                return 350;
462        case 120:
463                return 200;
464        case 160:
465                return 175;
466        case 250:
467                return 20;
468        case 350:
469                return 20;
470                }
471        Quit("Invalid Gonnet%u", N);
472        return 0;
473        }
474
475//double GonnetLookup[400][400];
476//
477//static bool InitGonnetLookup()
478//      {
479//      for (unsigned i = 0; i < 400; ++i)
480//              {
481//              const unsigned A1 = i/20;
482//              const unsigned A2 = i%20;
483//              for (unsigned j = 0; j <= i; ++j)
484//                      {
485//                      const unsigned B1 = j/20;
486//                      const unsigned B2 = j%20;
487//                     
488//                      const double s00 = Gonnet16[A1][B1];
489//                      const double s01 = Gonnet16[A1][B2];
490//                      const double s10 = Gonnet16[A2][B1];
491//                      const double s11 = Gonnet16[A2][B2];
492//
493//                      GonnetLookup[i][j] = GonnetLookup[j][i] = (s00 + s01 + s10 + s11)/4;
494//                      }
495//              }
496//      return true;
497//      }
498//
499//static bool bGonnetLookupInitialized = InitGonnetLookup();
Note: See TracBrowser for help on using the repository browser.