mirror of
https://github.com/VK3FNG/soundmodem.git
synced 2025-12-06 03:01:59 +01:00
254 lines
16 KiB
C
254 lines
16 KiB
C
/*
|
|
trsym = [ 1 1 1 -1 1 1 -1 -1 -1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 ];
|
|
trsymcc = [ 32 0 -4 0 -4 4 -4 4 0 -4 4 -4 0 -8 -4 4 0 4 -4 -8 0 -4 4 -4 0 4 -4 4 -4 0 -4 0 ];
|
|
a = [ 1 1 1 -1 1 1 -1 -1 ;
|
|
1 1 -1 1 1 -1 -1 -1 ;
|
|
1 -1 1 1 -1 -1 -1 1 ;
|
|
-1 1 1 -1 -1 -1 1 1 ;
|
|
1 1 -1 -1 -1 1 1 1 ;
|
|
1 -1 -1 -1 1 1 1 1 ;
|
|
-1 -1 -1 1 1 1 1 1 ;
|
|
-1 -1 1 1 1 1 1 -1 ;
|
|
-1 1 1 1 1 1 -1 -1 ;
|
|
1 1 1 1 1 -1 -1 1 ;
|
|
1 1 1 1 -1 -1 1 1 ;
|
|
1 1 1 -1 -1 1 1 -1 ;
|
|
1 1 -1 -1 1 1 -1 1 ;
|
|
1 -1 -1 1 1 -1 1 -1 ;
|
|
-1 -1 1 1 -1 1 -1 -1 ;
|
|
-1 1 1 -1 1 -1 -1 1 ;
|
|
1 1 -1 1 -1 -1 1 -1 ;
|
|
1 -1 1 -1 -1 1 -1 -1 ;
|
|
-1 1 -1 -1 1 -1 -1 -1 ;
|
|
1 -1 -1 1 -1 -1 -1 -1 ;
|
|
-1 -1 1 -1 -1 -1 -1 1 ;
|
|
-1 1 -1 -1 -1 -1 1 -1 ;
|
|
1 -1 -1 -1 -1 1 -1 1 ;
|
|
-1 -1 -1 -1 1 -1 1 -1 ;
|
|
-1 -1 -1 1 -1 1 -1 -1 ];
|
|
atainvat = [ 0.0572165 0.035571 0.0434153 -0.0443537 0.0151366 0.0507619 -0.0518015 -0.0172795 -0.0453469 0.0400477 0.0324898 0.0496586 0.0226944 0.0636385 -0.0419792 -0.0367959 0.0280132 0.0605841 -0.0412725 0.0389387 -0.0334282 -0.0488303 0.0260621 -0.0132051 -0.0614785 ;
|
|
0.0193683 0.0409242 -0.0516993 0.0314468 0.0573939 -0.0583612 -0.0130789 -0.0403294 0.0646506 0.0269611 0.0377362 0.0301434 0.0466188 -0.0640558 -0.0140098 0.0206717 0.0516993 -0.0592921 0.0346348 -0.0377362 -0.0579886 0.0454099 -0.0320416 -0.0703452 0.006597 ;
|
|
0.0537376 -0.042435 0.0388938 0.0325406 -0.0525663 -0.014739 -0.0472295 0.0626156 0.0212471 0.0355076 0.0390488 0.0572788 -0.0561075 -0.00106646 0.0246333 0.0289994 -0.0388938 0.0571238 -0.0489431 -0.0390488 0.0323857 -0.0454019 -0.0527213 -0.00757458 -0.0692605 ;
|
|
-0.0522436 0.0351837 0.0273114 -0.0279467 -0.00926656 -0.0449048 0.06094 0.0268965 0.0536012 0.0432448 0.0521783 -0.04331 -0.0182001 0.00847892 0.0376678 -0.0368802 0.0441172 -0.0681769 -0.0449413 0.0192503 -0.0528136 -0.0360078 -0.0341335 -0.071646 0.050659 ;
|
|
0.0485725 0.0310051 -0.0228655 -0.0400468 -0.0506442 0.0551137 0.0291324 0.048781 0.0225913 0.0457976 -0.0337705 -0.0309956 0.0289239 0.0571948 -0.0460719 0.0395213 -0.048563 -0.0200906 0.0247287 -0.0376581 -0.0291419 -0.0548394 -0.0397392 0.0509185 -0.0632924 ;
|
|
0.027829 -0.0316789 -0.0492649 -0.0322535 0.0565143 0.022172 0.0514346 0.0322646 0.0570916 -0.0339338 -0.0244185 0.0373442 0.046999 -0.056506 0.0417605 -0.0417688 -0.0221637 0.0124978 -0.0395139 -0.0470101 -0.0570999 -0.0299987 0.0316679 -0.064341 0.0524729 ;
|
|
-0.0243519 -0.0460423 -0.0316508 0.0382603 0.0260792 0.0414939 0.032004 0.0592659 -0.0338418 -0.0317807 0.0459124 0.0533411 -0.0516138 0.0470654 -0.0337119 -0.0394327 0.0316508 -0.024222 -0.0536943 -0.0459124 -0.0393028 0.0239987 -0.0514839 0.0394134 -0.0544737 ;
|
|
-0.0605078 -0.0319618 0.036034 0.0301479 0.0395341 0.0304624 0.0665374 -0.0375767 -0.0244328 0.0402497 0.0361775 -0.0645799 0.0436063 -0.0451057 -0.0286485 0.0342201 -0.036034 -0.0647235 -0.0379914 -0.0361775 0.0300044 -0.0420636 0.0393906 -0.0511353 -0.0126972 ];
|
|
*/
|
|
|
|
static const unsigned char trainsymbmap[4] = {
|
|
0x37, 0x3e, 0x4b, 0x28
|
|
};
|
|
|
|
static const int trainsyms[32] = {
|
|
1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1,
|
|
1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1
|
|
};
|
|
|
|
static const int trainmat[200] = {
|
|
3749, 2331, 2845, -2906, 991, 3326, -3394, -1132,
|
|
-2971, 2624, 2129, 3254, 1487, 4170, -2751, -2411,
|
|
1835, 3970, -2704, 2551, -2190, -3200, 1708, -865,
|
|
-4029,
|
|
1269, 2682, -3388, 2060, 3761, -3824, -857, -2643,
|
|
4236, 1766, 2473, 1975, 3055, -4197, -918, 1354,
|
|
3388, -3885, 2269, -2473, -3800, 2975, -2099, -4610,
|
|
432,
|
|
3521, -2781, 2548, 2132, -3444, -965, -3095, 4103,
|
|
1392, 2327, 2559, 3753, -3677, -69, 1614, 1900,
|
|
-2548, 3743, -3207, -2559, 2122, -2975, -3455, -496,
|
|
-4539,
|
|
-3423, 2305, 1789, -1831, -607, -2942, 3993, 1762,
|
|
3512, 2834, 3419, -2838, -1192, 555, 2468, -2416,
|
|
2891, -4468, -2945, 1261, -3461, -2359, -2236, -4695,
|
|
3319,
|
|
3183, 2031, -1498, -2624, -3319, 3611, 1909, 3196,
|
|
1480, 3001, -2213, -2031, 1895, 3748, -3019, 2590,
|
|
-3182, -1316, 1620, -2467, -1909, -3593, -2604, 3336,
|
|
-4147,
|
|
1823, -2076, -3228, -2113, 3703, 1453, 3370, 2114,
|
|
3741, -2223, -1600, 2447, 3080, -3703, 2736, -2737,
|
|
-1452, 819, -2589, -3080, -3742, -1965, 2075, -4216,
|
|
3438,
|
|
-1595, -3017, -2074, 2507, 1709, 2719, 2097, 3884,
|
|
-2217, -2082, 3008, 3495, -3382, 3084, -2209, -2584,
|
|
2074, -1587, -3518, -3008, -2575, 1572, -3374, 2582,
|
|
-3569,
|
|
-3965, -2094, 2361, 1975, 2590, 1996, 4360, -2462,
|
|
-1601, 2637, 2370, -4232, 2857, -2956, -1877, 2242,
|
|
-2361, -4241, -2489, -2370, 1966, -2756, 2581, -3351,
|
|
-832
|
|
};
|
|
|
|
#define MLSEROOTNODE 0x14
|
|
#define MLSETOORNODE 0x76
|
|
|
|
/*
|
|
txfilt = [ -7.89211e-19 ; -0.000169639 ; -0.000356223 ; -0.000549436 ;
|
|
-0.000737741 ; -0.000909138 ; -0.001052 ; -0.00115595 ;
|
|
-0.00121261 ; -0.00121637 ; -0.00116487 ; -0.00105933 ;
|
|
-0.000904593 ; -0.000708972 ; -0.000483741 ; -0.000242448 ;
|
|
1.03876e-18 ; 0.000228389 ; 0.000428328 ; 0.000587364 ;
|
|
0.000696013 ; 0.000748609 ; 0.000743905 ; 0.000685371 ;
|
|
0.000581136 ; 0.000443577 ; 0.000288539 ; 0.000134254 ;
|
|
-4.59404e-19 ; -9.5412e-05 ; -0.000135207 ; -0.00010617 ;
|
|
5.46552e-19 ; 0.000185619 ; 0.000446326 ; 0.00077085 ;
|
|
0.00114129 ; 0.0015339 ; 0.00192042 ; 0.00226978 ;
|
|
0.00255019 ; 0.00273144 ; 0.00278726 ; 0.00269755 ;
|
|
0.00245035 ; 0.00204336 ; 0.00148485 ; 0.000793942 ;
|
|
-2.59878e-18 ; -0.000858639 ; -0.00173676 ; -0.00258502 ;
|
|
-0.00335312 ; -0.00399341 ; -0.0044645 ; -0.00473465 ;
|
|
-0.0047848 ; -0.00461084 ; -0.00422493 ; -0.00365583 ;
|
|
-0.00294782 ; -0.00215855 ; -0.00135555 ; -0.000611731 ;
|
|
1.30368e-18 ; 0.000412633 ; 0.000571146 ; 0.000438343 ;
|
|
-1.37821e-18 ; -0.000731099 ; -0.00171266 ; -0.00287225 ;
|
|
-0.00410874 ; -0.00529605 ; -0.00628909 ; -0.00693185 ;
|
|
-0.00706721 ; -0.00654822 ; -0.00525007 ; -0.00308225 ;
|
|
6.62539e-18 ; 0.00398561 ; 0.00879986 ; 0.0142994 ;
|
|
0.0202711 ; 0.0264345 ; 0.032449 ; 0.0379254 ;
|
|
0.0424413 ; 0.045561 ; 0.0468577 ; 0.0459391 ;
|
|
0.0424728 ; 0.0362128 ; 0.027024 ; 0.0149038 ;
|
|
-2.02159e-17 ; -0.0173775 ; -0.0367505 ; -0.0574747 ;
|
|
-0.0787489 ; -0.0996327 ; -0.119072 ; -0.135932 ;
|
|
-0.149035 ; -0.157207 ; -0.159322 ; -0.154354 ;
|
|
-0.141421 ; -0.119838 ; -0.0891489 ; -0.0491676 ;
|
|
3.34611e-17 ; 0.0579397 ; 0.123925 ; 0.196924 ;
|
|
0.275621 ; 0.358446 ; 0.443618 ; 0.529196 ;
|
|
0.613138 ; 0.693369 ; 0.767845 ; 0.834623 ;
|
|
0.891929 ; 0.938215 ; 0.97222 ; 0.993006 ;
|
|
1 ; 0.993006 ; 0.97222 ; 0.938215 ;
|
|
0.891929 ; 0.834623 ; 0.767845 ; 0.693369 ;
|
|
0.613138 ; 0.529196 ; 0.443618 ; 0.358446 ;
|
|
0.275621 ; 0.196924 ; 0.123925 ; 0.0579397 ;
|
|
3.34611e-17 ; -0.0491676 ; -0.0891489 ; -0.119838 ;
|
|
-0.141421 ; -0.154354 ; -0.159322 ; -0.157207 ;
|
|
-0.149035 ; -0.135932 ; -0.119072 ; -0.0996327 ;
|
|
-0.0787489 ; -0.0574747 ; -0.0367505 ; -0.0173775 ;
|
|
-2.02159e-17 ; 0.0149038 ; 0.027024 ; 0.0362128 ;
|
|
0.0424728 ; 0.0459391 ; 0.0468577 ; 0.045561 ;
|
|
0.0424413 ; 0.0379254 ; 0.032449 ; 0.0264345 ;
|
|
0.0202711 ; 0.0142994 ; 0.00879986 ; 0.00398561 ;
|
|
6.62539e-18 ; -0.00308225 ; -0.00525007 ; -0.00654822 ;
|
|
-0.00706721 ; -0.00693185 ; -0.00628909 ; -0.00529605 ;
|
|
-0.00410874 ; -0.00287225 ; -0.00171266 ; -0.000731099 ;
|
|
-1.37821e-18 ; 0.000438343 ; 0.000571146 ; 0.000412633 ;
|
|
1.30368e-18 ; -0.000611731 ; -0.00135555 ; -0.00215855 ;
|
|
-0.00294782 ; -0.00365583 ; -0.00422493 ; -0.00461084 ;
|
|
-0.0047848 ; -0.00473465 ; -0.0044645 ; -0.00399341 ;
|
|
-0.00335312 ; -0.00258502 ; -0.00173676 ; -0.000858639 ;
|
|
-2.59878e-18 ; 0.000793942 ; 0.00148485 ; 0.00204336 ;
|
|
0.00245035 ; 0.00269755 ; 0.00278726 ; 0.00273144 ;
|
|
0.00255019 ; 0.00226978 ; 0.00192042 ; 0.0015339 ;
|
|
0.00114129 ; 0.00077085 ; 0.000446326 ; 0.000185619 ;
|
|
5.46552e-19 ; -0.00010617 ; -0.000135207 ; -9.5412e-05 ;
|
|
-4.59404e-19 ; 0.000134254 ; 0.000288539 ; 0.000443577 ;
|
|
0.000581136 ; 0.000685371 ; 0.000743905 ; 0.000748609 ;
|
|
0.000696013 ; 0.000587364 ; 0.000428328 ; 0.000228389 ;
|
|
1.03876e-18 ; -0.000242448 ; -0.000483741 ; -0.000708972 ;
|
|
-0.000904593 ; -0.00105933 ; -0.00116487 ; -0.00121637 ;
|
|
-0.00121261 ; -0.00115595 ; -0.001052 ; -0.000909138 ;
|
|
-0.000737741 ; -0.000549436 ; -0.000356223 ; -0.000169639 ; ];
|
|
abssum = 1.6357;
|
|
semilogy((0:255)/256,abs(fft(txfilt)))
|
|
*/
|
|
|
|
static const int txfilter[16][16] = {
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 20032, 0, 0, 0, 0, 0, 0, 0 },
|
|
{ -3, 4, 3, -17, 8, 79, -348, 1160, 19892, -984, 298, -61, -12, 15, -2, -4 },
|
|
{ -7, 8, 8, -34, 11, 176, -736, 2482, 19475, -1785, 541, -105, -27, 29, -2, -9 },
|
|
{ -11, 11, 15, -51, 8, 286, -1151, 3944, 18794, -2400, 725, -131, -43, 40, -1, -14 },
|
|
{ -14, 13, 22, -67, 0, 406, -1577, 5521, 17867, -2833, 850, -141, -59, 49, 0, -18 },
|
|
{ -18, 14, 30, -79, -14, 529, -1995, 7180, 16719, -3092, 920, -138, -73, 54, 2, -21 },
|
|
{ -21, 14, 38, -89, -34, 650, -2385, 8886, 15381, -3191, 938, -125, -84, 55, 5, -23 },
|
|
{ -23, 13, 45, -94, -57, 759, -2723, 10601, 13889, -3149, 912, -106, -92, 54, 8, -24 },
|
|
{ -24, 11, 51, -95, -82, 850, -2985, 12282, 12282, -2985, 850, -82, -95, 51, 11, -24 },
|
|
{ -24, 8, 54, -92, -106, 912, -3149, 13889, 10601, -2723, 759, -57, -94, 45, 13, -23 },
|
|
{ -23, 5, 55, -84, -125, 938, -3191, 15381, 8886, -2385, 650, -34, -89, 38, 14, -21 },
|
|
{ -21, 2, 54, -73, -138, 920, -3092, 16719, 7180, -1995, 529, -14, -79, 30, 14, -18 },
|
|
{ -18, 0, 49, -59, -141, 850, -2833, 17867, 5521, -1577, 406, 0, -67, 22, 13, -14 },
|
|
{ -14, -1, 40, -43, -131, 725, -2400, 18794, 3944, -1151, 286, 8, -51, 15, 11, -11 },
|
|
{ -9, -2, 29, -27, -105, 541, -1785, 19475, 2482, -736, 176, 11, -34, 8, 8, -7 },
|
|
{ -4, -2, 15, -12, -61, 298, -984, 19892, 1160, -348, 79, 8, -17, 3, 4, -3 }
|
|
};
|
|
|
|
/*
|
|
rxfilt = [ -0.00183249 ; -0.00224264 ; -0.00254037 ; -0.00270819 ;
|
|
-0.00273315 ; -0.00260751 ; -0.0023295 ; -0.00190399 ;
|
|
-0.00134302 ; -0.000666167 ; 9.94485e-05 ; 0.000919496 ;
|
|
0.00175326 ; 0.00255495 ; 0.00327563 ; 0.00386552 ;
|
|
0.00427687 ; 0.00446707 ; 0.00440189 ; 0.00405866 ;
|
|
0.00342917 ; 0.00252195 ; 0.00136374 ; -2.7396e-17 ;
|
|
-0.00150586 ; -0.00307449 ; -0.00461389 ; -0.00602407 ;
|
|
-0.00720258 ; -0.00805101 ; -0.00848182 ; -0.00842518 ;
|
|
-0.00783541 ; -0.00669643 ; -0.00502577 ; -0.00287682 ;
|
|
-0.000338826 ; 0.00246541 ; 0.00538431 ; 0.00824467 ;
|
|
0.0108608 ; 0.0130455 ; 0.0146218 ; 0.0154355 ;
|
|
0.0153672 ; 0.0143427 ; 0.0123418 ; 0.00940433 ;
|
|
0.00563274 ; 0.00119066 ; -0.00370232 ; -0.00877998 ;
|
|
-0.0137426 ; -0.0182731 ; -0.0220557 ; -0.024796 ;
|
|
-0.0262411 ; -0.0261987 ; -0.0245537 ; -0.0212817 ;
|
|
-0.0164569 ; -0.0102554 ; -0.00295155 ; 0.00509153 ;
|
|
0.013438 ; 0.0216007 ; 0.0290676 ; 0.0353316 ;
|
|
0.0399217 ; 0.0424348 ; 0.0425649 ; 0.040129 ;
|
|
0.035087 ; 0.0275541 ; 0.0178046 ; 0.00626695 ;
|
|
-0.00649166 ; -0.0197897 ; -0.0328643 ; -0.0449114 ;
|
|
-0.055131 ; -0.0627751 ; -0.0671964 ; -0.0678933 ;
|
|
-0.0645501 ; -0.0570689 ; -0.0455902 ; -0.0305021 ;
|
|
-0.0124346 ; 0.00775961 ; 0.0290392 ; 0.0502208 ;
|
|
0.0700369 ; 0.0872029 ; 0.100489 ; 0.108795 ;
|
|
0.11122 ; 0.107132 ; 0.0962197 ; 0.0785352 ;
|
|
0.0545209 ; 0.0250144 ; -0.00876542 ; -0.0452525 ;
|
|
-0.0825884 ; -0.118694 ; -0.151359 ; -0.178337 ;
|
|
-0.197457 ; -0.206726 ; -0.204437 ; -0.189263 ;
|
|
-0.160341 ; -0.117335 ; -0.0604796 ; 0.00940584 ;
|
|
0.0909221 ; 0.182127 ; 0.280599 ; 0.383516 ;
|
|
0.487767 ; 0.590067 ; 0.687091 ; 0.775607 ;
|
|
0.85261 ; 0.91545 ; 0.961938 ; 0.990444 ;
|
|
0.999965 ; 0.990167 ; 0.9614 ; 0.914683 ;
|
|
0.851658 ; 0.774524 ; 0.685939 ; 0.588913 ;
|
|
0.486676 ; 0.38255 ; 0.279813 ; 0.181566 ;
|
|
0.0906162 ; 0.00937153 ; -0.0602418 ; -0.116841 ;
|
|
-0.159619 ; -0.188356 ; -0.203399 ; -0.205617 ;
|
|
-0.19634 ; -0.177277 ; -0.150414 ; -0.117919 ;
|
|
-0.0820243 ; -0.04493 ; -0.00870032 ; 0.0248211 ;
|
|
0.0540831 ; 0.0778807 ; 0.0953883 ; 0.106174 ;
|
|
0.110191 ; 0.107754 ; 0.0994956 ; 0.0863131 ;
|
|
0.0692999 ; 0.0496761 ; 0.0287148 ; 0.00767039 ;
|
|
-0.0122876 ; -0.0301312 ; -0.0450204 ; -0.0563363 ;
|
|
-0.0636993 ; -0.066975 ; -0.066264 ; -0.0618819 ;
|
|
-0.0543269 ; -0.0442402 ; -0.0323612 ; -0.0194794 ;
|
|
-0.00638747 ; 0.006164 ; 0.0175053 ; 0.0270803 ;
|
|
0.0344701 ; 0.0394076 ; 0.0417826 ; 0.0416378 ;
|
|
0.0391556 ; 0.034639 ; 0.0284856 ; 0.021159 ;
|
|
0.0131574 ; 0.00498301 ; -0.00288734 ; -0.0100277 ;
|
|
-0.0160841 ; -0.0207898 ; -0.0239748 ; -0.0255687 ;
|
|
-0.0255976 ; -0.024176 ; -0.0214935 ; -0.0177983 ;
|
|
-0.0133787 ; -0.00854307 ; -0.00360053 ; 0.00115732 ;
|
|
0.00547208 ; 0.00913117 ; 0.0119768 ; 0.013911 ;
|
|
0.0148965 ; 0.0149544 ; 0.0141582 ; 0.0126249 ;
|
|
0.0105049 ; 0.00797008 ; 0.00520214 ; 0.00238071 ;
|
|
-0.00032701 ; -0.00277505 ; -0.0048455 ; -0.00645304 ;
|
|
-0.00754703 ; -0.00811142 ; -0.00816249 ; -0.00774486 ;
|
|
-0.00692624 ; -0.00579115 ; -0.00443436 ; -0.00295427 ;
|
|
-0.00144679 ; -2.63199e-17 ; 0.00131023 ; 0.00242331 ;
|
|
0.00329584 ; 0.00390228 ; 0.0042344 ; 0.0042999 ;
|
|
0.00412016 ; 0.00372756 ; 0.00316243 ; 0.00247005 ;
|
|
0.00169768 ; 0.00089195 ; 9.66641e-05 ; -0.000648966 ;
|
|
-0.00131156 ; -0.00186435 ; -0.00228754 ; -0.00256834 ;
|
|
-0.0027007 ; -0.00268494 ; -0.00252716 ; -0.00223873 ; ];
|
|
abssum = 3.02625;
|
|
semilogy((0:255)/256,abs(fft(rxfilt)))
|
|
*/
|
|
|
|
static const int rxfilter[8][32] = {
|
|
{ -39, -29, 92, -32, -169, 235, 121, -568, 291, 759, -1193, -269, 2408, -1788, -3472, 10562, 21654, 10539, -3456, -1776, 2386, -266, -1176, 746, 284, -554, 118, 227, -163, -31, 89, -28 },
|
|
{ -48, -14, 96, -66, -145, 282, 25, -567, 467, 596, -1359, 168, 2320, -2570, -2540, 12778, 21442, 8284, -4078, -972, 2333, -652, -958, 853, 107, -523, 197, 172, -175, 0, 80, -40 },
|
|
{ -55, 2, 95, -99, -108, 316, -80, -531, 629, 385, -1455, 628, 2083, -3277, -1309, 14879, 20819, 6059, -4404, -188, 2154, -974, -700, 904, -62, -465, 259, 112, -176, 28, 68, -49 },
|
|
{ -58, 19, 87, -130, -62, 334, -190, -460, 765, 135, -1470, 1087, 1700, -3861, 203, 16796, 19807, 3931, -4452, 537, 1869, -1219, -421, 901, -217, -385, 301, 51, -167, 52, 53, -55 },
|
|
{ -59, 37, 74, -155, -7, 332, -297, -356, 864, -140, -1397, 1516, 1180, -4276, 1968, 18463, 18443, 1962, -4251, 1171, 1500, -1379, -138, 847, -348, -289, 322, -7, -149, 71, 36, -58 },
|
|
{ -56, 55, 54, -174, 53, 310, -395, -222, 918, -428, -1235, 1888, 541, -4476, 3944, 19824, 16772, 202, -3839, 1686, 1075, -1450, 133, 750, -450, -185, 323, -60, -125, 84, 19, -58 },
|
|
{ -50, 70, 29, -183, 116, 267, -477, -63, 921, -711, -987, 2176, -189, -4427, 6076, 20831, 14854, -1304, -3257, 2065, 621, -1434, 379, 616, -519, -77, 306, -104, -96, 91, 2, -54 },
|
|
{ -41, 83, 0, -182, 178, 203, -536, 110, 869, -972, -660, 2356, -979, -4098, 8305, 21448, 12753, -2530, -2553, 2299, 166, -1340, 586, 458, -553, 25, 273, -139, -63, 93, -14, -48 }
|
|
};
|
|
|