TAB_LBC.C
上传用户:meifeng08
上传日期:2013-06-18
资源大小:5304k
文件大小:91k
源码类别:

语音压缩

开发平台:

C/C++

  1. /*
  2.     ITU-T G.723 Speech Coder   ANSI-C Source Code Version 5.0
  3.     copyright (c) 1995, AudioCodes, DSP Group, France Telecom,
  4.     Universite de Sherbrooke.  All rights reserved.
  5. */
  6. #include "typedef.h"
  7. #include "cst_lbc.h"
  8. #include "tab_lbc.h"
  9. /*
  10. **
  11. ** File:        tab_lbc.c
  12. **
  13. ** Description: Tables used for G.723 encoding and decoding
  14. **  
  15. ** Tables:      HammingWindowTable[180]
  16. **
  17. **              LPC Computation and Filtering
  18. **
  19. **                  BinomialWindowTable[10]
  20. **                  BandExpTable[10]
  21. **
  22. **              LSP calculation and quantization
  23. **
  24. **                  CosineTable[512]
  25. **                  LspDcTable[10]
  26. **                  BandInfoTable[3][2]
  27. **                  Band0Tb8[256*3]
  28. **                  Band1Tb8[256*3]
  29. **                  Band2Tb8[256*4]
  30. **                  BandQntTable[3]
  31. **
  32. **              Perceptual Filtering and Post Filtering
  33. **
  34. **                  PerFiltZeroTable[10]
  35. **                  PerFiltPoleTable[10]
  36. **                  PostFiltZeroTable[10]
  37. **                  PostFiltPoleTable[10]
  38. **                  LpfConstTable[2] (pitch postfilter)
  39. **
  40. **              ACELP or MP-MLQ
  41. **
  42. **                  Nb_puls[4] (MP-MLQ)
  43. **                  FcbkGainTable[24] (ACELP and MP-MLQ)
  44. **                  MaxPosTable[4]  (MP-MLQ), Word32
  45. **                  CombinatorialTable[6][30](MP-MLQ),Word32
  46. **                  epsi170[170] (ACELP)
  47. **                  gain170[170] (ACELP)
  48. **
  49. **              Pitch Prediction
  50. **
  51. **                  AcbkGainTable085[85*20]
  52. **                  AcbkGainTable170[170*20]
  53. **                  AcbkGainTablePtr[2]
  54. **
  55. **              Taming procedure
  56. **
  57. **                  tabgain170[170]
  58. **                  tabgain85[85]
  59. **
  60. **              Comfort Noise Generation
  61. **
  62. **                  fact[4]
  63. **                  L_bseg[3], Word32
  64. **                  base[3]
  65. **
  66. **
  67. **              All tables are Word16 unless separately denoted
  68. */
  69. /*
  70. **  HammingWindowTable:
  71. **
  72. **  Hamming Window coefficients scaled by 32768 (Q15).
  73. **
  74. */
  75. Word16   HammingWindowTable[LpcFrame] = {
  76.     2621 ,
  77.     2631 ,
  78.     2659 ,
  79.     2705 ,
  80.     2770 ,
  81.     2853 ,
  82.     2955 ,
  83.     3074 ,
  84.     3212 ,
  85.     3367 ,
  86.     3541 ,
  87.     3731 ,
  88.     3939 ,
  89.     4164 ,
  90.     4405 ,
  91.     4663 ,
  92.     4937 ,
  93.     5226 ,
  94.     5531 ,
  95.     5851 ,
  96.     6186 ,
  97.     6534 ,
  98.     6897 ,
  99.     7273 ,
  100.     7661 ,
  101.     8062 ,
  102.     8475 ,
  103.     8899 ,
  104.     9334 ,
  105.     9780 ,
  106.    10235 ,
  107.    10699 ,
  108.    11172 ,
  109.    11653 ,
  110.    12141 ,
  111.    12636 ,
  112.    13138 ,
  113.    13645 ,
  114.    14157 ,
  115.    14673 ,
  116.    15193 ,
  117.    15716 ,
  118.    16242 ,
  119.    16769 ,
  120.    17298 ,
  121.    17827 ,
  122.    18356 ,
  123.    18884 ,
  124.    19411 ,
  125.    19935 ,
  126.    20457 ,
  127.    20975 ,
  128.    21489 ,
  129.    21999 ,
  130.    22503 ,
  131.    23002 ,
  132.    23494 ,
  133.    23978 ,
  134.    24455 ,
  135.    24924 ,
  136.    25384 ,
  137.    25834 ,
  138.    26274 ,
  139.    26704 ,
  140.    27122 ,
  141.    27529 ,
  142.    27924 ,
  143.    28306 ,
  144.    28675 ,
  145.    29031 ,
  146.    29373 ,
  147.    29700 ,
  148.    30012 ,
  149.    30310 ,
  150.    30592 ,
  151.    30857 ,
  152.    31107 ,
  153.    31340 ,
  154.    31557 ,
  155.    31756 ,
  156.    31938 ,
  157.    32102 ,
  158.    32249 ,
  159.    32377 ,
  160.    32488 ,
  161.    32580 ,
  162.    32654 ,
  163.    32710 ,
  164.    32747 ,
  165.    32766 ,
  166.    32766 ,
  167.    32747 ,
  168.    32710 ,
  169.    32654 ,
  170.    32580 ,
  171.    32488 ,
  172.    32377 ,
  173.    32249 ,
  174.    32102 ,
  175.    31938 ,
  176.    31756 ,
  177.    31557 ,
  178.    31340 ,
  179.    31107 ,
  180.    30857 ,
  181.    30592 ,
  182.    30310 ,
  183.    30012 ,
  184.    29700 ,
  185.    29373 ,
  186.    29031 ,
  187.    28675 ,
  188.    28306 ,
  189.    27924 ,
  190.    27529 ,
  191.    27122 ,
  192.    26704 ,
  193.    26274 ,
  194.    25834 ,
  195.    25384 ,
  196.    24924 ,
  197.    24455 ,
  198.    23978 ,
  199.    23494 ,
  200.    23002 ,
  201.    22503 ,
  202.    21999 ,
  203.    21489 ,
  204.    20975 ,
  205.    20457 ,
  206.    19935 ,
  207.    19411 ,
  208.    18884 ,
  209.    18356 ,
  210.    17827 ,
  211.    17298 ,
  212.    16769 ,
  213.    16242 ,
  214.    15716 ,
  215.    15193 ,
  216.    14673 ,
  217.    14157 ,
  218.    13645 ,
  219.    13138 ,
  220.    12636 ,
  221.    12141 ,
  222.    11653 ,
  223.    11172 ,
  224.    10699 ,
  225.    10235 ,
  226.     9780 ,
  227.     9334 ,
  228.     8899 ,
  229.     8475 ,
  230.     8062 ,
  231.     7661 ,
  232.     7273 ,
  233.     6897 ,
  234.     6534 ,
  235.     6186 ,
  236.     5851 ,
  237.     5531 ,
  238.     5226 ,
  239.     4937 ,
  240.     4663 ,
  241.     4405 ,
  242.     4164 ,
  243.     3939 ,
  244.     3731 ,
  245.     3541 ,
  246.     3367 ,
  247.     3212 ,
  248.     3074 ,
  249.     2955 ,
  250.     2853 ,
  251.     2770 ,
  252.     2705 ,
  253.     2659 ,
  254.     2631 ,
  255.     2621 ,
  256.    } ;
  257. /*
  258. **  BinomialWindowTable:
  259. **
  260. **  Purpose:
  261. **     Binomial Window coefficients used to weight the autocorrelation before
  262. **     Levinson-Durbin in the LPC coefficient calculation.  
  263. **
  264. **     Table Structure:
  265. **     Coefficients are scaled by 32768 (Q15).
  266. **
  267. */
  268. Word16   BinomialWindowTable[LpcOrder] = {
  269.      32749 ,
  270.      32695 ,
  271.      32604 ,
  272.      32477 ,
  273.      32315 ,
  274.      32118 ,
  275.      31887 ,
  276.      31622 ,
  277.      31324 ,
  278.      30995 ,
  279.    } ;
  280. /*
  281. **  BandExpTable:
  282. **
  283. **  Purpose:
  284. **      Do bandwidth expansion on the LPC coefficients by scaling the
  285. **      poles of the LPC synthesis filter by a factor of 0.994
  286. **
  287. **  Table Structure:
  288. **      Table values correspond to (0.994) to the power of x,
  289. **      where x = [0,..,10].
  290. **      These values are scaled by 32768 (Q15).
  291. **
  292. */
  293. Word16   BandExpTable[LpcOrder] = {
  294.      32571 ,  
  295.      32376 ,
  296.      32182 ,
  297.      31989 ,
  298.      31797 ,
  299.      31606 ,
  300.      31416 ,
  301.      31228 ,
  302.      31040 ,
  303.      30854 ,
  304.    } ;
  305.    
  306. /*
  307. **  CosineTable:
  308. **
  309. **  Purpose:
  310. **      Used to evaluate polynomial for LSP-LPC conversion
  311. **
  312. **  Table Structure:
  313. **      Contains one period of a cosine wave.  Amplitude has been
  314. **      scaled to go between 0 and 16384 instead of 0 and 1.
  315. **
  316. */
  317. Word16   CosineTable[CosineTableSize] = {
  318.  16384 ,
  319.  16383 ,
  320.  16379 ,
  321.  16373 ,
  322.  16364 ,
  323.  16353 ,
  324.  16340 ,
  325.  16324 ,
  326.  16305 ,
  327.  16284 ,
  328.  16261 ,
  329.  16235 ,
  330.  16207 ,
  331.  16176 ,
  332.  16143 ,
  333.  16107 ,
  334.  16069 ,
  335.  16029 ,
  336.  15986 ,
  337.  15941 ,
  338.  15893 ,
  339.  15843 ,
  340.  15791 ,
  341.  15736 ,
  342.  15679 ,
  343.  15619 ,
  344.  15557 ,
  345.  15493 ,
  346.  15426 ,
  347.  15357 ,
  348.  15286 ,
  349.  15213 ,
  350.  15137 ,
  351.  15059 ,
  352.  14978 ,
  353.  14896 ,
  354.  14811 ,
  355.  14724 ,
  356.  14635 ,
  357.  14543 ,
  358.  14449 ,
  359.  14354 ,
  360.  14256 ,
  361.  14155 ,
  362.  14053 ,
  363.  13949 ,
  364.  13842 ,
  365.  13733 ,
  366.  13623 ,
  367.  13510 ,
  368.  13395 ,
  369.  13279 ,
  370.  13160 ,
  371.  13039 ,
  372.  12916 ,
  373.  12792 ,
  374.  12665 ,
  375.  12537 ,
  376.  12406 ,
  377.  12274 ,
  378.  12140 ,
  379.  12004 ,
  380.  11866 ,
  381.  11727 ,
  382.  11585 ,
  383.  11442 ,
  384.  11297 ,
  385.  11151 ,
  386.  11003 ,
  387.  10853 ,
  388.  10702 ,
  389.  10549 ,
  390.  10394 ,
  391.  10238 ,
  392.  10080 ,
  393.  9921  ,
  394.  9760  ,
  395.  9598  ,
  396.  9434  ,
  397.  9269  ,
  398.  9102  ,
  399.  8935  ,
  400.  8765  ,
  401.  8595  ,
  402.  8423  ,
  403.  8250  ,
  404.  8076  ,
  405.  7900  ,
  406.  7723  ,
  407.  7545  ,
  408.  7366  ,
  409.  7186  ,
  410.  7005  ,
  411.  6823  ,
  412.  6639  ,
  413.  6455  ,
  414.  6270  ,
  415.  6084  ,
  416.  5897  ,
  417.  5708  ,
  418.  5520  ,
  419.  5330  ,
  420.  5139  ,
  421.  4948  ,
  422.  4756  ,
  423.  4563  ,
  424.  4370  ,
  425.  4176  ,
  426.  3981  ,
  427.  3786  ,
  428.  3590  ,
  429.  3393  ,
  430.  3196  ,
  431.  2999  ,
  432.  2801  ,
  433.  2603  ,
  434.  2404  ,
  435.  2205  ,
  436.  2006  ,
  437.  1806  ,
  438.  1606  ,
  439.  1406  ,
  440.  1205  ,
  441.  1005  ,
  442.  804   ,
  443.  603   ,
  444.  402   ,
  445.  201   ,
  446.  0     ,
  447.  -201  ,
  448.  -402  ,
  449.  -603  ,
  450.  -804  ,
  451.  -1005 ,
  452.  -1205 ,
  453.  -1406 ,
  454.  -1606 ,
  455.  -1806 ,
  456.  -2006 ,
  457.  -2205 ,
  458.  -2404 ,
  459.  -2603 ,
  460.  -2801 ,
  461.  -2999 ,
  462.  -3196 ,
  463.  -3393 ,
  464.  -3590 ,
  465.  -3786 ,
  466.  -3981 ,
  467.  -4176 ,
  468.  -4370 ,
  469.  -4563 ,
  470.  -4756 ,
  471.  -4948 ,
  472.  -5139 ,
  473.  -5330 ,
  474.  -5520 ,
  475.  -5708 ,
  476.  -5897 ,
  477.  -6084 ,
  478.  -6270 ,
  479.  -6455 ,
  480.  -6639 ,
  481.  -6823 ,
  482.  -7005 ,
  483.  -7186 ,
  484.  -7366 ,
  485.  -7545 ,
  486.  -7723 ,
  487.  -7900 ,
  488.  -8076 ,
  489.  -8250 ,
  490.  -8423 ,
  491.  -8595 ,
  492.  -8765 ,
  493.  -8935 ,
  494.  -9102 ,
  495.  -9269 ,
  496.  -9434 ,
  497.  -9598 ,
  498.  -9760 ,
  499.  -9921 ,
  500.  -10080,
  501.  -10238,
  502.  -10394,
  503.  -10549,
  504.  -10702,
  505.  -10853,
  506.  -11003,
  507.  -11151,
  508.  -11297,
  509.  -11442,
  510.  -11585,
  511.  -11727,
  512.  -11866,
  513.  -12004,
  514.  -12140,
  515.  -12274,
  516.  -12406,
  517.  -12537,
  518.  -12665,
  519.  -12792,
  520.  -12916,
  521.  -13039,
  522.  -13160,
  523.  -13279,
  524.  -13395,
  525.  -13510,
  526.  -13623,
  527.  -13733,
  528.  -13842,
  529.  -13949,
  530.  -14053,
  531.  -14155,
  532.  -14256,
  533.  -14354,
  534.  -14449,
  535.  -14543,
  536.  -14635,
  537.  -14724,
  538.  -14811,
  539.  -14896,
  540.  -14978,
  541.  -15059,
  542.  -15137,
  543.  -15213,
  544.  -15286,
  545.  -15357,
  546.  -15426,
  547.  -15493,
  548.  -15557,
  549.  -15619,
  550.  -15679,
  551.  -15736,
  552.  -15791,
  553.  -15843,
  554.  -15893,
  555.  -15941,
  556.  -15986,
  557.  -16029,
  558.  -16069,
  559.  -16107,
  560.  -16143,
  561.  -16176,
  562.  -16207,
  563.  -16235,
  564.  -16261,
  565.  -16284,
  566.  -16305,
  567.  -16324,
  568.  -16340,
  569.  -16353,
  570.  -16364,
  571.  -16373,
  572.  -16379,
  573.  -16383,
  574.  -16384,
  575.  -16383,
  576.  -16379,
  577.  -16373,
  578.  -16364,
  579.  -16353,
  580.  -16340,
  581.  -16324,
  582.  -16305,
  583.  -16284,
  584.  -16261,
  585.  -16235,
  586.  -16207,
  587.  -16176,
  588.  -16143,
  589.  -16107,
  590.  -16069,
  591.  -16029,
  592.  -15986,
  593.  -15941,
  594.  -15893,
  595.  -15843,
  596.  -15791,
  597.  -15736,
  598.  -15679,
  599.  -15619,
  600.  -15557,
  601.  -15493,
  602.  -15426,
  603.  -15357,
  604.  -15286,
  605.  -15213,
  606.  -15137,
  607.  -15059,
  608.  -14978,
  609.  -14896,
  610.  -14811,
  611.  -14724,
  612.  -14635,
  613.  -14543,
  614.  -14449,
  615.  -14354,
  616.  -14256,
  617.  -14155,
  618.  -14053,
  619.  -13949,
  620.  -13842,
  621.  -13733,
  622.  -13623,
  623.  -13510,
  624.  -13395,
  625.  -13279,
  626.  -13160,
  627.  -13039,
  628.  -12916,
  629.  -12792,
  630.  -12665,
  631.  -12537,
  632.  -12406,
  633.  -12274,
  634.  -12140,
  635.  -12004,
  636.  -11866,
  637.  -11727,
  638.  -11585,
  639.  -11442,
  640.  -11297,
  641.  -11151,
  642.  -11003,
  643.  -10853,
  644.  -10702,
  645.  -10549,
  646.  -10394,
  647.  -10238,
  648.  -10080,
  649.  -9921 ,
  650.  -9760 ,
  651.  -9598 ,
  652.  -9434 ,
  653.  -9269 ,
  654.  -9102 ,
  655.  -8935 ,
  656.  -8765 ,
  657.  -8595 ,
  658.  -8423 ,
  659.  -8250 ,
  660.  -8076 ,
  661.  -7900 ,
  662.  -7723 ,
  663.  -7545 ,
  664.  -7366 ,
  665.  -7186 ,
  666.  -7005 ,
  667.  -6823 ,
  668.  -6639 ,
  669.  -6455 ,
  670.  -6270 ,
  671.  -6084 ,
  672.  -5897 ,
  673.  -5708 ,
  674.  -5520 ,
  675.  -5330 ,
  676.  -5139 ,
  677.  -4948 ,
  678.  -4756 ,
  679.  -4563 ,
  680.  -4370 ,
  681.  -4176 ,
  682.  -3981 ,
  683.  -3786 ,
  684.  -3590 ,
  685.  -3393 ,
  686.  -3196 ,
  687.  -2999 ,
  688.  -2801 ,
  689.  -2603 ,
  690.  -2404 ,
  691.  -2205 ,
  692.  -2006 ,
  693.  -1806 ,
  694.  -1606 ,
  695.  -1406 ,
  696.  -1205 ,
  697.  -1005 ,
  698.  -804  ,
  699.  -603  ,
  700.  -402  ,
  701.  -201  ,
  702.  0     ,
  703.  201   ,
  704.  402   ,
  705.  603   ,
  706.  804   ,
  707.  1005  ,
  708.  1205  ,
  709.  1406  ,
  710.  1606  ,
  711.  1806  ,
  712.  2006  ,
  713.  2205  ,
  714.  2404  ,
  715.  2603  ,
  716.  2801  ,
  717.  2999  ,
  718.  3196  ,
  719.  3393  ,
  720.  3590  ,
  721.  3786  ,
  722.  3981  ,
  723.  4176  ,
  724.  4370  ,
  725.  4563  ,
  726.  4756  ,
  727.  4948  ,
  728.  5139  ,
  729.  5330  ,
  730.  5520  ,
  731.  5708  ,
  732.  5897  ,
  733.  6084  ,
  734.  6270  ,
  735.  6455  ,
  736.  6639  ,
  737.  6823  ,
  738.  7005  ,
  739.  7186  ,
  740.  7366  ,
  741.  7545  ,
  742.  7723  ,
  743.  7900  ,
  744.  8076  ,
  745.  8250  ,
  746.  8423  ,
  747.  8595  ,
  748.  8765  ,
  749.  8935  ,
  750.  9102  ,
  751.  9269  ,
  752.  9434  ,
  753.  9598  ,
  754.  9760  ,
  755.  9921  ,
  756.  10080 ,
  757.  10238 ,
  758.  10394 ,
  759.  10549 ,
  760.  10702 ,
  761.  10853 ,
  762.  11003 ,
  763.  11151 ,
  764.  11297 ,
  765.  11442 ,
  766.  11585 ,
  767.  11727 ,
  768.  11866 ,
  769.  12004 ,
  770.  12140 ,
  771.  12274 ,
  772.  12406 ,
  773.  12537 ,
  774.  12665 ,
  775.  12792 ,
  776.  12916 ,
  777.  13039 ,
  778.  13160 ,
  779.  13279 ,
  780.  13395 ,
  781.  13510 ,
  782.  13623 ,
  783.  13733 ,
  784.  13842 ,
  785.  13949 ,
  786.  14053 ,
  787.  14155 ,
  788.  14256 ,
  789.  14354 ,
  790.  14449 ,
  791.  14543 ,
  792.  14635 ,
  793.  14724 ,
  794.  14811 ,
  795.  14896 ,
  796.  14978 ,
  797.  15059 ,
  798.  15137 ,
  799.  15213 ,
  800.  15286 ,
  801.  15357 ,
  802.  15426 ,
  803.  15493 ,
  804.  15557 ,
  805.  15619 ,
  806.  15679 ,
  807.  15736 ,
  808.  15791 ,
  809.  15843 ,
  810.  15893 ,
  811.  15941 ,
  812.  15986 ,
  813.  16029 ,
  814.  16069 ,
  815.  16107 ,
  816.  16143 ,
  817.  16176 ,
  818.  16207 ,
  819.  16235 ,
  820.  16261 ,
  821.  16284 ,
  822.  16305 ,
  823.  16324 ,
  824.  16340 ,
  825.  16353 ,
  826.  16364 ,
  827.  16373 ,
  828.  16379 ,
  829.  16383 ,
  830.    } ;
  831. /*
  832. **  LspDcTable: LSP long term Dc component
  833. **
  834. */
  835. Word16   LspDcTable[LpcOrder] = {
  836.    0x0c3b ,
  837.    0x1271 ,
  838.    0x1e0a ,
  839.    0x2a36 ,
  840.    0x3630 ,
  841.    0x406f ,
  842.    0x4d28 ,
  843.    0x56f4 ,
  844.    0x638c ,
  845.    0x6c46 ,
  846.    } ;
  847. /*
  848. **  BandInfoTable:
  849. **
  850. **  Purpose:
  851. **      Used to index in arrays. Called by LSP sub vector 
  852. **      quantization routines.
  853. **
  854. **  Table Structure:
  855. **      The unquantized LSP vector, quantized LSP vector, and residual
  856. **      LSP error vector are each divided into three subvectors.  
  857. **              The table format is as follows:
  858. **
  859. **      1st pair corresponds to subvector 0
  860. **      2nd pair corresponds to subvector 1
  861. **      3rd pair corresponds to subvector 2
  862. **
  863. **      The 1st slot in each pair is used to index the location of 
  864. **      the vector in a 10-element array.  For example, for subvector
  865. **      1, dimensions [0,..,2] get automatically mapped to array
  866. **      location [3,..,5], and for subvector 3, dimensions
  867. **      [0,..,3] automatically get mapped to array location [6,..,9].
  868. **
  869. **      The 2nd slot in each pair corresponds to the dimension of
  870. **      the subvector
  871. */
  872. Word16   BandInfoTable[LspQntBands][2] = {
  873.    { 0,3},
  874.    { 3,3},
  875.    { 6,4}
  876.    } ;
  877. /*
  878. **  Band0Tb8:
  879. **
  880. **  Purpose:
  881. **      Vector Quantize the first 3-vector of the 10 LSP parameters.
  882. **
  883. **  Table Structure:
  884. **      8 bit, 256 entry table.
  885. */
  886. Word16   Band0Tb8[LspCbSize*3] = {
  887.       0,      0,      0,
  888.    -270,  -1372,  -1032,
  889.    -541,  -1650,  -1382,
  890.    -723,  -2011,  -2213,
  891.    -941,  -1122,  -1942,
  892.    -780,  -1145,  -2454,
  893.    -884,  -1309,  -1373,
  894.   -1051,  -1523,  -1766,
  895.   -1083,  -1622,  -2300,
  896.    -777,  -1377,  -2147,
  897.    -935,  -1467,  -2763,
  898.    -802,  -1327,  -3471,
  899.    -935,  -1959,  -3999,
  900.    -240,    -89,    222,
  901.    -661,   -257,   -160,
  902.    -994,   -466,   -419,
  903.    -188,   -164,   -278,
  904.    -342,   -512,   -415,
  905.    -607,   -511,   -797,
  906.      16,     19,   -716,
  907.     374,    425,   -972,
  908.    -346,    245,   -282,
  909.    -265,    506,   -754,
  910.    -620,   -147,   1955,
  911.    -742,   -860,   2597,
  912.    -150,   -352,   2704,
  913.     305,    880,   1954,
  914.     123,    731,   2766,
  915.    -348,    765,   3327,
  916.     618,    221,   3258,
  917.    -178,    -47,   4219,
  918.     393,   1304,   3842,
  919.     698,   1702,   4801,
  920.      63,   -584,   1229,
  921.    -215,   -732,   1704,
  922.     172,   -335,   1909,
  923.      -2,    216,   1797,
  924.     353,    127,   2205,
  925.   -1208,    188,     11,
  926.    -513,    -75,   -683,
  927.    -973,    222,   -646,
  928.    -616,   -843,   -388,
  929.    -950,  -1113,   -359,
  930.   -1431,   -623,   -705,
  931.   -1398,  -1063,   -178,
  932.     -45,   -461,     35,
  933.      -9,   -657,   -216,
  934.     127,  -1078,     95,
  935.    -950,  -1156,    584,
  936.   -1480,  -1494,    449,
  937.    -120,   -705,    516,
  938.    -368,   -961,    727,
  939.    -378,   -526,    973,
  940.    -793,   -614,    676,
  941.    -801,   -755,   1287,
  942.   -1476,   -340,   1636,
  943.    -505,  -1254,   1543,
  944.   -1243,  -1622,   1532,
  945.    -776,  -1477,   -655,
  946.   -1151,  -1296,   -823,
  947.   -1153,  -1672,  -1124,
  948.   -1291,  -2003,  -1702,
  949.    -622,  -1283,     57,
  950.    -471,  -1611,    509,
  951.   -1060,  -1570,   -139,
  952.    -873,  -2156,   -536,
  953.   -1716,  -2021,   -364,
  954.   -2150,  -3218,  -1291,
  955.   -1248,  -1945,  -2904,
  956.   -1215,  -2633,  -2855,
  957.     167,   -244,     84,
  958.     349,   -412,   -217,
  959.     -40,   -352,    632,
  960.     227,   -529,    405,
  961.      68,   -383,   -443,
  962.     167,   -558,   -706,
  963.    -275,   -854,    -14,
  964.    -351,  -1089,   -449,
  965.     341,    -72,   -289,
  966.     603,   -106,   -474,
  967.     322,   -219,   -649,
  968.     179,   -317,   -998,
  969.     450,   -291,   -996,
  970.     555,    195,   -525,
  971.     784,    272,   -831,
  972.    -148,   -384,   -849,
  973.      82,   -536,  -1357,
  974.     238,   -172,  -1354,
  975.     422,   -268,  -1841,
  976.     297,   -737,  -2079,
  977.    -111,   -801,   -598,
  978.       1,   -668,   -984,
  979.    -131,   -818,  -1299,
  980.    -329,   -521,  -1310,
  981.    -151,   -778,  -1834,
  982.     -93,   -352,  -1746,
  983.    -568,   -640,  -1821,
  984.    -509,   -941,  -2183,
  985.     464,   -815,  -1250,
  986.      79,  -1133,  -1597,
  987.    -184,  -1353,  -2123,
  988.    -196,   -410,  -2427,
  989.    -192,   -833,  -2810,
  990.    -259,  -1382,  -3045,
  991.    -217,      4,  -1166,
  992.    -800,   -325,  -1219,
  993.    -363,   -830,   -898,
  994.    -661,  -1134,   -960,
  995.    -386,   -980,  -1501,
  996.    -627,  -1159,  -1722,
  997.    -903,   -829,   -855,
  998.    -685,   -829,  -1313,
  999.   -1065,   -959,  -1405,
  1000.     441,     25,   -847,
  1001.     655,    -27,  -1181,
  1002.    1159,   -110,   -705,
  1003.     856,    253,  -1671,
  1004.     415,    404,     -1,
  1005.     322,    903,   -398,
  1006.     670,    499,   -292,
  1007.     803,    591,   -610,
  1008.    1144,    591,   -814,
  1009.     717,    183,    393,
  1010.     857,    381,    106,
  1011.     609,     62,    -27,
  1012.     792,    198,   -325,
  1013.     735,    805,     88,
  1014.    1142,    812,     78,
  1015.    1028,    366,   -292,
  1016.    1309,    743,   -237,
  1017.    1615,    589,    -79,
  1018.    1010,    639,   -243,
  1019.     999,    964,   -311,
  1020.    1500,   1137,   -615,
  1021.     988,    357,    646,
  1022.    1227,    667,    683,
  1023.    1164,   1565,    894,
  1024.    1392,   2015,    477,
  1025.    1138,    533,    250,
  1026.    1437,    896,    391,
  1027.    1765,   1118,     99,
  1028.    1112,   1090,    802,
  1029.    1596,    846,   1134,
  1030.     937,   1161,    279,
  1031.    1719,   1254,    683,
  1032.    1338,   1086,     35,
  1033.    1419,   1324,    428,
  1034.    1428,   1524,     40,
  1035.    2108,   1594,     89,
  1036.    1015,    544,   1222,
  1037.    1121,    925,   1263,
  1038.    1030,   1318,   1485,
  1039.    1295,    789,   1817,
  1040.    1323,   1272,   1909,
  1041.    1724,   1237,   1803,
  1042.    1797,   1689,    858,
  1043.    2149,   1367,   1301,
  1044.    2302,   1867,    761,
  1045.    2863,   2351,   1053,
  1046.      52,    163,    -76,
  1047.     230,    309,   -492,
  1048.     -71,    619,     39,
  1049.    -218,    856,    499,
  1050.    -654,    736,   -207,
  1051.    -535,   1259,    155,
  1052.    -480,   1476,    643,
  1053.     262,   1081,    102,
  1054.     309,   1592,   -182,
  1055.     627,   1629,    534,
  1056.     337,    643,    456,
  1057.     758,    670,    713,
  1058.     202,   1126,    658,
  1059.     612,   1131,    666,
  1060.     686,   1223,   1136,
  1061.    -131,    377,    525,
  1062.      42,    708,    907,
  1063.      87,   1488,   1035,
  1064.     432,   2117,    904,
  1065.     137,    981,   1332,
  1066.    -447,   1014,   1136,
  1067.    -839,   1793,   1246,
  1068.    -559,    297,    198,
  1069.    -850,    685,    446,
  1070.   -1273,    632,    826,
  1071.    -401,   -544,    173,
  1072.    -753,   -793,    144,
  1073.    -436,     -9,    772,
  1074.    -115,   -243,   1310,
  1075.    -670,   -269,    374,
  1076.   -1027,    -13,    639,
  1077.    -887,    -81,   1137,
  1078.   -1277,   -455,    158,
  1079.   -1411,   -720,    736,
  1080.     172,     88,    403,
  1081.     386,    255,    756,
  1082.    -500,    522,    910,
  1083.    -958,    659,   1388,
  1084.    -395,    301,   1344,
  1085.    -356,    768,   1813,
  1086.    -613,    841,   2419,
  1087.     445,   -122,    252,
  1088.     629,    -87,    723,
  1089.     283,   -253,    870,
  1090.     456,   -116,   1381,
  1091.     757,    180,   1059,
  1092.     532,    408,   1509,
  1093.     947,    288,   1806,
  1094.    1325,    994,   2524,
  1095.     892,   1219,   3023,
  1096.    1397,   1596,   3406,
  1097.    1143,   1552,   2546,
  1098.    1850,   1433,   2710,
  1099.     -10,    134,   1002,
  1100.     154,    499,   1323,
  1101.     508,    792,   1117,
  1102.     509,   1340,   1616,
  1103.     762,    862,   1608,
  1104.     787,    740,   2320,
  1105.     794,   1727,   1283,
  1106.     465,   2108,   1660,
  1107.    -120,   1451,   1613,
  1108.    -386,   2016,   2169,
  1109.     891,   1225,   2050,
  1110.     456,   1480,   2185,
  1111.    1493,   1283,   1209,
  1112.    1397,   1636,   1518,
  1113.    1776,   1738,   1552,
  1114.    1572,   1698,   2141,
  1115.    1389,   2126,   1271,
  1116.    1959,   2413,   1119,
  1117.    1365,   2892,   1505,
  1118.    2206,   1971,   1623,
  1119.    2076,   1950,   2280,
  1120.    1717,   2291,   1867,
  1121.    2366,   2515,   1953,
  1122.    2865,   2838,   2522,
  1123.    2535,   3465,   2011,
  1124.    3381,   4127,   2638,
  1125.     836,   2667,   2289,
  1126.    1761,   2773,   2337,
  1127.    1415,   3325,   2911,
  1128.    2354,   3138,   3126,
  1129.    2659,   4192,   4010,
  1130.    1048,   1786,   1818,
  1131.    1242,   2111,   2240,
  1132.    1512,   2079,   2780,
  1133.    1573,   2491,   3138,
  1134.    2230,   2377,   2782,
  1135.     416,   1773,   2704,
  1136.     725,   2336,   3297,
  1137.    1252,   2373,   3978,
  1138.    2094,   2268,   3568,
  1139.    2011,   2712,   4528,
  1140.    1341,   3507,   3876,
  1141.    1216,   3919,   4922,
  1142.    1693,   4793,   6012,
  1143.    } ;
  1144. /*
  1145. **  Band1Tb8:
  1146. **
  1147. **  Purpose:
  1148. **      Vector Quantize the second 3-vector of the 10 LSP parameters.
  1149. **
  1150. **  Table Structure:
  1151. **      8 bit, 256 entry table.
  1152. */
  1153. Word16   Band1Tb8[LspCbSize*3] = {
  1154.       0,      0,      0,
  1155.   -2114,  -1302,     76,
  1156.   -2652,  -1278,  -1368,
  1157.   -2847,   -828,   -349,
  1158.   -3812,  -2190,   -349,
  1159.   -3946,   -364,   -449,
  1160.   -2725,  -4492,  -3607,
  1161.   -3495,  -4764,  -1744,
  1162.     -51,   -756,     84,
  1163.    -153,  -1191,    504,
  1164.     108,  -1418,   1167,
  1165.    -835,   -896,    390,
  1166.    -569,  -1702,     87,
  1167.   -1151,  -1818,    933,
  1168.   -1826,  -2547,    411,
  1169.   -1842,  -1818,   1451,
  1170.   -2438,  -1611,    781,
  1171.   -2747,  -2477,   1311,
  1172.    -940,   1252,    477,
  1173.   -1629,   1688,    602,
  1174.   -1202,    617,    280,
  1175.   -1737,    393,    580,
  1176.   -1528,   1077,   1199,
  1177.   -2165,   -161,   1408,
  1178.   -2504,  -1087,   2371,
  1179.   -3458,   -175,   1395,
  1180.   -1397,    -98,   -843,
  1181.   -2252,   -177,  -1149,
  1182.   -1489,   -726,  -1283,
  1183.   -1558,   -265,  -1744,
  1184.   -1867,   -821,  -1897,
  1185.   -2062,  -1516,  -2340,
  1186.   -2595,  -1142,  -2861,
  1187.     170,     46,   -819,
  1188.    -193,   -204,  -1151,
  1189.     326,   -196,  -1532,
  1190.     780,    329,   -816,
  1191.     201,    369,  -1243,
  1192.     650,   -209,  -1060,
  1193.    1144,    -15,  -1216,
  1194.    1203,   -259,  -1867,
  1195.    -890,   -564,  -1430,
  1196.    -638,   -852,  -1921,
  1197.     177,   -739,  -1358,
  1198.    -261,   -526,  -1666,
  1199.     206,   -407,  -2255,
  1200.     338,   -526,   -822,
  1201.     421,  -1095,  -1009,
  1202.     765,   -607,  -1408,
  1203.     825,  -1295,  -2004,
  1204.     357,   -905,  -1815,
  1205.     -58,  -1248,  -1588,
  1206.    -596,  -1436,  -2046,
  1207.     -73,  -1159,  -2116,
  1208.    -115,  -1382,  -2581,
  1209.    -160,  -1723,  -1952,
  1210.      -6,  -2196,  -2954,
  1211.    -649,  -1705,  -2603,
  1212.    -617,  -1453,  -3282,
  1213.    -949,  -2019,  -3102,
  1214.    -812,   1544,   1937,
  1215.   -1854,    574,   2000,
  1216.   -1463,   1140,   2649,
  1217.   -2683,   1748,   1452,
  1218.   -2486,   2241,   2523,
  1219.     783,   1910,   1435,
  1220.     581,   2682,   1376,
  1221.     236,   2197,   1885,
  1222.    -453,   2943,   2057,
  1223.    -682,   2178,   2565,
  1224.   -1342,   3201,   3328,
  1225.    -288,   -184,    262,
  1226.     121,   -149,   -183,
  1227.     758,   -412,    206,
  1228.    1038,   -204,    853,
  1229.    1577,   -457,    700,
  1230.     937,   -640,   -567,
  1231.    1508,   -528,  -1024,
  1232.    -225,   -527,   -427,
  1233.    -564,  -1095,   -332,
  1234.    -742,   -353,   -186,
  1235.   -1288,   -459,     84,
  1236.   -1853,   -484,   -274,
  1237.   -1554,   -731,    825,
  1238.   -2425,   -234,    382,
  1239.   -1722,    293,   -271,
  1240.   -2515,    425,   -564,
  1241.   -2599,    818,    464,
  1242.    -358,    118,   -375,
  1243.    -613,    198,   -874,
  1244.    -690,    683,   -324,
  1245.   -1352,   1155,   -168,
  1246.   -1093,    129,   -324,
  1247.   -1184,    611,   -858,
  1248.     433,    386,   -372,
  1249.    -120,    486,   -634,
  1250.     234,    851,   -631,
  1251.     602,    128,     46,
  1252.    1099,    410,    159,
  1253.     715,   -145,   -424,
  1254.    1198,    -85,   -593,
  1255.    1390,    367,   -358,
  1256.    1683,    362,   -964,
  1257.    1711,    622,     45,
  1258.    2033,    833,   -383,
  1259.    2890,    549,   -506,
  1260.       7,    401,     52,
  1261.      72,    811,    415,
  1262.     566,    668,     41,
  1263.     467,   1218,    130,
  1264.      68,    957,   -187,
  1265.     -25,   1649,   -103,
  1266.    -661,    260,    214,
  1267.    -925,    -94,    612,
  1268.    -321,   -422,    965,
  1269.    -788,   -672,   1783,
  1270.     400,   -673,    779,
  1271.     741,   -595,   1635,
  1272.    -161,    307,    657,
  1273.    -382,    836,    871,
  1274.    -814,    400,   1223,
  1275.     364,    606,   1247,
  1276.      57,     75,   1571,
  1277.     151,    471,   2287,
  1278.     -81,   1021,   1502,
  1279.     227,   1470,   1097,
  1280.     658,   1275,   1653,
  1281.     664,   1478,   2377,
  1282.     263,   -127,    444,
  1283.     264,     89,    969,
  1284.     794,    171,    576,
  1285.     821,    186,   1226,
  1286.     404,    462,    517,
  1287.     339,    918,    794,
  1288.    1280,   1423,    196,
  1289.    1453,   2019,    365,
  1290.    1615,   1481,    672,
  1291.    2394,   1708,    508,
  1292.     806,   1238,    573,
  1293.     713,   1158,   1078,
  1294.    1285,   1436,   1232,
  1295.    1790,   1188,   1141,
  1296.     765,    643,    864,
  1297.    1032,    797,   1279,
  1298.     900,    563,   1827,
  1299.    1514,    673,   2312,
  1300.    1544,   1129,   3240,
  1301.    1469,   1050,   1594,
  1302.    1945,   1318,   1988,
  1303.    2397,   2026,   2060,
  1304.    3538,   2057,   2620,
  1305.    1249,   -118,     74,
  1306.    1727,    194,    421,
  1307.    2078,    -50,   -463,
  1308.     970,    688,   -432,
  1309.    1149,    952,   -110,
  1310.    1254,   1275,   -651,
  1311.    1386,    929,    401,
  1312.    1960,   1167,    232,
  1313.     407,   -752,   -243,
  1314.     859,  -1118,    172,
  1315.    -227,   -860,   -992,
  1316.    -796,  -1175,  -1380,
  1317.       8,  -1282,   -388,
  1318.     353,  -1781,  -1037,
  1319.    -732,   -397,   -807,
  1320.    -853,    -28,  -1342,
  1321.   -1229,  -1207,  -1959,
  1322.   -1015,  -1125,  -2543,
  1323.   -1452,  -1791,  -2725,
  1324.   -1891,  -2416,  -3269,
  1325.    -918,  -1629,   -783,
  1326.    -580,  -2155,   -698,
  1327.   -1097,  -2364,    -96,
  1328.   -1387,  -1513,      7,
  1329.   -1588,  -2076,   -664,
  1330.   -1473,  -2740,   -784,
  1331.   -2378,  -3149,    -56,
  1332.   -2856,  -2092,   -169,
  1333.   -3391,  -3708,    316,
  1334.   -1176,   -890,   -614,
  1335.   -1944,  -1061,   -800,
  1336.    -299,  -1517,  -1000,
  1337.    -640,  -1850,  -1526,
  1338.   -1454,  -1536,  -1233,
  1339.   -1890,  -1955,  -1756,
  1340.   -1086,  -1921,  -2122,
  1341.    -750,  -2325,  -2260,
  1342.   -1325,  -2413,  -2673,
  1343.   -1114,  -2542,  -3459,
  1344.   -1341,  -2901,  -3963,
  1345.   -1160,  -2226,  -1393,
  1346.   -1001,  -2772,  -1573,
  1347.   -1594,  -2641,  -1978,
  1348.   -1534,  -3046,  -2624,
  1349.   -2224,  -2196,   -675,
  1350.   -2807,  -3054,  -1102,
  1351.   -2008,  -2840,  -1186,
  1352.   -1980,  -3332,  -1695,
  1353.   -1715,  -3562,   -505,
  1354.   -2527,  -4000,  -1887,
  1355.   -2333,  -2734,  -2296,
  1356.   -3440,  -2401,  -3211,
  1357.   -2008,  -3528,  -3337,
  1358.   -2247,  -3291,  -4510,
  1359.    -475,    949,    155,
  1360.    -149,   1365,    545,
  1361.    -757,   1644,   1083,
  1362.    -217,   2053,   1353,
  1363.   -1433,   2301,   1462,
  1364.     495,   1661,    529,
  1365.      10,   2037,    740,
  1366.    2082,   1898,    978,
  1367.    2831,   2294,    911,
  1368.     842,    793,    420,
  1369.    1223,   1023,    863,
  1370.    1237,    451,    780,
  1371.    1744,    708,    822,
  1372.    1533,    284,   1384,
  1373.    2135,    609,   1538,
  1374.    2305,    626,    540,
  1375.    2368,   1187,    955,
  1376.    2586,   1255,     -7,
  1377.    3116,   1131,    726,
  1378.    3431,   1730,    428,
  1379.    2734,   1648,   1307,
  1380.    2988,   1231,   2010,
  1381.    3523,   2024,   1488,
  1382.    1034,   1657,    871,
  1383.    1206,   2163,   1036,
  1384.    1807,   2372,   1233,
  1385.    1808,   1769,   1493,
  1386.    1573,   2332,   1779,
  1387.    1216,   1609,   1866,
  1388.    1480,   1898,   2513,
  1389.     465,   2708,   2776,
  1390.     771,   3638,   3338,
  1391.    1869,   2599,   2623,
  1392.    2825,   2745,   2468,
  1393.    2638,   2439,   1585,
  1394.    2094,   2970,   1308,
  1395.    2022,   3057,   1999,
  1396.    3428,   2912,   1816,
  1397.    4536,   2974,   2129,
  1398.    1046,   2563,   2086,
  1399.    1363,   3562,   2318,
  1400.    2511,   1891,   2984,
  1401.    1866,   2306,   3986,
  1402.    3272,   2924,   3682,
  1403.    3146,   3564,   2272,
  1404.    3592,   3968,   2822,
  1405.    2431,   3369,   3069,
  1406.    1931,   4709,   3090,
  1407.    2629,   4220,   3986,
  1408.    4639,   4056,   3664,
  1409.    4035,   5334,   4912,
  1410.    } ;
  1411. /*
  1412. **  Band2Tb8:
  1413. **
  1414. **  Purpose:
  1415. **      Vector Quantize the last 4-vector of the 10 LSP parameters.
  1416. **
  1417. **  Table Structure:
  1418. **      8 bit, 256 entry table.
  1419. */
  1420. Word16   Band2Tb8[LspCbSize*4] = {
  1421.       0,      0,      0,      0,
  1422.     601,    512,   -542,    334,
  1423.     428,   1087,   -484,   -132,
  1424.     652,    622,   -391,   -572,
  1425.     378,    799,    141,   -860,
  1426.    1040,    409,    112,   -554,
  1427.    1123,    670,    -75,   -847,
  1428.    1421,    494,   -315,  -1095,
  1429.     787,   1001,    114,   -460,
  1430.     988,   1672,    216,   -681,
  1431.    1007,   1241,   -132,  -1247,
  1432.    1073,    399,    186,     -5,
  1433.    1262,    193,   -694,   -129,
  1434.     325,    196,     51,   -641,
  1435.     861,    -59,    350,   -458,
  1436.    1261,    567,    586,   -346,
  1437.    1532,    885,    210,   -517,
  1438.    2027,    937,    113,   -792,
  1439.    1383,   1064,    334,     38,
  1440.    1964,   1468,    459,    133,
  1441.    2062,   1186,    -98,   -121,
  1442.    2577,   1445,    506,   -373,
  1443.    2310,   1682,     -2,   -960,
  1444.    2876,   1939,    765,    138,
  1445.    3581,   2360,    649,   -414,
  1446.     219,    176,   -398,   -309,
  1447.     434,    -78,   -435,   -880,
  1448.    -344,    301,    265,   -552,
  1449.    -915,    470,    657,   -380,
  1450.     419,   -432,   -163,   -453,
  1451.     351,   -953,      8,   -562,
  1452.     789,    -43,     20,   -958,
  1453.     302,   -594,   -352,  -1159,
  1454.    1040,    108,   -668,   -924,
  1455.    1333,    210,  -1217,  -1663,
  1456.     483,    589,   -350,  -1140,
  1457.    1003,    824,   -802,  -1184,
  1458.     745,     58,   -589,  -1443,
  1459.     346,    247,   -915,  -1683,
  1460.     270,    796,   -720,  -2043,
  1461.    1208,    722,   -222,   -193,
  1462.    1486,   1180,   -412,   -672,
  1463.    1722,    179,    -69,   -521,
  1464.    2047,    860,   -666,  -1410,
  1465.    -146,    222,   -281,   -805,
  1466.    -189,     90,   -114,  -1307,
  1467.    -152,   1086,   -241,   -764,
  1468.    -439,    733,   -601,  -1302,
  1469.    -833,   -167,   -351,   -601,
  1470.    -856,   -422,   -411,  -1059,
  1471.    -747,   -355,   -582,  -1644,
  1472.    -837,    210,   -916,  -1144,
  1473.   -1800,     32,   -878,  -1687,
  1474.     -48,    -23,  -1146,     52,
  1475.    -350,   -409,  -1656,   -364,
  1476.     265,   -728,   -858,   -577,
  1477.     458,   -247,  -1141,   -997,
  1478.     691,   -407,  -1988,  -1161,
  1479.     -66,   -104,   -705,  -1249,
  1480.    -431,    -93,  -1191,  -1844,
  1481.     203,   -732,  -1000,  -1693,
  1482.      10,   -832,  -1846,  -1819,
  1483.     493,   -128,  -1436,  -1768,
  1484.     488,   -311,  -1730,  -2540,
  1485.    -653,   -532,  -1150,  -1172,
  1486.   -1086,   -289,  -1706,  -1533,
  1487.    -699,  -1205,  -1216,  -1766,
  1488.   -1032,  -1481,  -2074,  -1523,
  1489.    -721,  -1220,  -2277,  -2600,
  1490.      12,   -539,  -1484,  -1131,
  1491.     -40,   -911,  -2106,   -441,
  1492.    -471,   -484,  -2267,  -1549,
  1493.    -141,   -988,  -3006,  -1721,
  1494.   -1545,  -2102,   -583,    342,
  1495.   -1383,  -2772,   -386,    -13,
  1496.   -2118,  -2589,  -1205,     72,
  1497.   -2147,  -3231,   -965,    390,
  1498.   -2949,  -3300,   -621,    637,
  1499.   -3907,  -4138,   -865,    803,
  1500.   -1287,   -845,   -375,   -548,
  1501.   -1416,  -1169,   -487,  -1277,
  1502.   -1400,  -1690,  -1027,   -418,
  1503.   -2018,  -1909,  -1188,  -1260,
  1504.   -1418,  -2222,  -2029,   -128,
  1505.   -2067,  -2998,  -2693,   -310,
  1506.    -950,  -1028,  -1538,    185,
  1507.   -1616,   -915,  -2205,   -549,
  1508.      19,   -821,  -1145,    352,
  1509.     184,  -1175,  -1356,   -627,
  1510.    -547,  -1088,  -1661,   -911,
  1511.    -216,  -1502,  -2197,   -948,
  1512.    -795,  -1306,  -2374,   -451,
  1513.    -924,  -1889,  -2796,   -680,
  1514.    -600,  -1614,  -3609,   -885,
  1515.   -2392,  -2528,    319,    303,
  1516.   -2908,  -2095,   -310,    573,
  1517.   -3460,  -2141,     49,   -113,
  1518.   -2231,   -448,    675,   -146,
  1519.   -2805,   -532,   1231,    479,
  1520.   -2684,   -486,   -200,    611,
  1521.   -3525,   -971,   -198,    704,
  1522.   -3707,    173,    349,    254,
  1523.   -4734,  -1447,    -34,    880,
  1524.     777,   -512,    114,    -10,
  1525.    1250,    -66,    442,     -5,
  1526.     604,    613,    452,   -352,
  1527.    1224,    777,    675,  -1014,
  1528.   -1372,    -79,  -1208,   -238,
  1529.   -2389,    -17,  -1157,   -818,
  1530.   -1504,   -673,  -1133,  -1060,
  1531.   -1984,   -799,  -2005,  -1973,
  1532.   -2037,   -798,  -1068,   -105,
  1533.   -3190,   -899,  -1817,   -194,
  1534.    -156,   -886,    394,   -318,
  1535.    -258,  -1283,    551,    202,
  1536.    -536,  -1729,    910,    331,
  1537.    -847,  -1109,    795,   -163,
  1538.   -1171,  -1128,    715,    519,
  1539.   -1080,  -1319,   1685,    668,
  1540.   -1000,  -1921,     96,    211,
  1541.   -1487,  -2148,    831,    174,
  1542.   -1139,   -374,    414,     -4,
  1543.   -1517,  -1383,    396,   -352,
  1544.   -1012,    439,    -59,   -967,
  1545.   -1812,    706,   -440,  -1030,
  1546.   -1971,   -329,    -34,   -827,
  1547.   -2472,  -1588,   -151,   -606,
  1548.   -2161,    374,   -281,     76,
  1549.   -3012,    231,    -15,   -690,
  1550.    1104,    566,    721,    209,
  1551.    1685,    564,    383,     98,
  1552.    1898,    750,    792,    -97,
  1553.     556,    -64,    561,    -93,
  1554.     876,    162,    913,    -22,
  1555.     961,    675,   1296,    140,
  1556.     756,   -396,    851,    544,
  1557.     360,   -303,   1341,    396,
  1558.     878,    -22,   1464,    863,
  1559.    -309,   -273,    642,   -129,
  1560.    -686,    -82,    842,    454,
  1561.      -5,    -47,   1069,    998,
  1562.     -94,    967,   1277,    298,
  1563.    -489,    385,   1473,    746,
  1564.    -369,   -717,   1333,    242,
  1565.     281,   -993,   1726,    924,
  1566.     464,    601,   1575,   1376,
  1567.    -250,    206,   2339,   1175,
  1568.    -438,    377,   -597,   -285,
  1569.   -1020,    787,   -790,   -287,
  1570.    -458,   -410,    215,    295,
  1571.    -589,   -860,   -121,    797,
  1572.   -1175,    122,   -437,    466,
  1573.   -1480,   -121,    367,    924,
  1574.     234,    323,    770,   -555,
  1575.     145,     30,    996,     26,
  1576.      66,    849,     93,   -145,
  1577.    -117,   1261,    474,   -399,
  1578.   -1495,   1051,    218,   -506,
  1579.   -1390,    694,    994,     88,
  1580.     616,      7,     78,    304,
  1581.    1060,     52,    -62,    835,
  1582.     833,    454,    649,   1359,
  1583.    -770,    464,     47,     93,
  1584.    -574,   1199,    -39,    379,
  1585.     114,    -98,    488,    485,
  1586.     727,    244,    606,    696,
  1587.     -76,    455,    671,    546,
  1588.    -565,    -13,    145,    819,
  1589.    -376,    569,    448,   1128,
  1590.     218,    122,    265,   1167,
  1591.     230,    738,    932,   1003,
  1592.     138,    477,     36,    450,
  1593.     404,    787,    -73,   1000,
  1594.     497,   1259,    387,   1231,
  1595.      17,    207,    195,    -79,
  1596.     562,    358,     53,   -158,
  1597.     493,    387,    478,    189,
  1598.     678,    831,    640,    558,
  1599.    -197,    523,    613,     57,
  1600.     429,    894,    769,    111,
  1601.      67,   1174,    568,    511,
  1602.    1242,    824,    251,    840,
  1603.    1419,   1074,    864,    481,
  1604.     924,   1474,    669,    724,
  1605.    1539,   1879,    654,   1590,
  1606.     445,    337,   1111,    541,
  1607.     472,   1421,   1264,   1094,
  1608.     794,    735,   1103,    668,
  1609.    1055,    863,   1192,   1020,
  1610.     778,   1105,    806,   1798,
  1611.    1052,   1527,   1587,   2151,
  1612.     881,   1552,   1265,    391,
  1613.     726,    872,   1812,    601,
  1614.    1469,    280,   1008,    616,
  1615.    1403,    577,   1803,   1244,
  1616.    1650,   1314,   1148,   1072,
  1617.    1297,   1669,   1911,   1026,
  1618.    2093,   1044,   2115,   1189,
  1619.    1644,   1961,   2587,   1512,
  1620.      25,   -315,     -9,   -106,
  1621.     290,   -339,    428,   -444,
  1622.     -68,   -783,    735,    772,
  1623.     245,   -555,    468,     47,
  1624.     334,   -895,    814,    146,
  1625.     235,    368,   -964,   -959,
  1626.    -203,    315,  -1566,  -1217,
  1627.     801,     17,   -276,   -354,
  1628.     894,   -495,   -789,   -635,
  1629.     716,    291,  -1189,   -357,
  1630.     560,   -260,   -733,     -2,
  1631.     679,   -508,  -1429,    211,
  1632.     -51,    -62,   -428,    557,
  1633.     322,   -638,   -211,    614,
  1634.    -878,  -1057,    -84,    -71,
  1635.    -388,  -1415,   -167,   -318,
  1636.    -754,  -1574,    214,   -539,
  1637.   -1419,  -2004,    -92,   -787,
  1638.     -47,   -856,   -347,   -255,
  1639.      23,  -1211,   -173,    320,
  1640.    -658,   -487,   -893,    353,
  1641.    -783,  -1587,   -584,    507,
  1642.   -1420,   -859,   -378,    441,
  1643.   -2095,  -1491,   -137,    439,
  1644.    -321,  -1450,  -1288,    -12,
  1645.    -359,  -2113,   -553,     -8,
  1646.    -831,  -1918,  -1561,     32,
  1647.   -1014,  -2487,  -1359,   -939,
  1648.    -475,   -311,   -169,   -236,
  1649.    -907,   -426,    276,   -611,
  1650.     -96,   -400,     50,   -710,
  1651.    -426,  -1022,    -10,   -985,
  1652.    -197,   -258,   -744,   -575,
  1653.    -611,   -930,   -771,   -394,
  1654.    -267,   -776,   -612,   -939,
  1655.    -256,  -1346,   -802,  -1122,
  1656.    -796,  -1570,   -825,   -754,
  1657.     712,    876,    141,    227,
  1658.     981,   1509,     85,    124,
  1659.    1462,   1228,    979,    -39,
  1660.    1734,    999,   1481,    440,
  1661.    2293,   1116,    769,    440,
  1662.    2504,   1480,   1241,    356,
  1663.    2474,   1909,   1558,    810,
  1664.     917,   1134,    607,   -134,
  1665.     509,   1809,    781,   -123,
  1666.    1712,   1506,    559,   -423,
  1667.    2037,   2317,    726,   -155,
  1668.    3031,   2676,   1203,    331,
  1669.    3664,   3274,   1768,    531,
  1670.    1610,   1839,    867,    183,
  1671.    1774,   1972,   1538,     97,
  1672.    1822,   2158,   1282,    659,
  1673.    2222,   2758,   1818,    900,
  1674.    3251,   2124,   1723,    996,
  1675.    3633,   2336,   2408,   1453,
  1676.    2923,   3517,   2567,   1318,
  1677.    } ;
  1678. /*
  1679. **  BandQntTable:
  1680. **
  1681. **  Purpose:
  1682. **      collects the three subvector tables.
  1683. */
  1684. Word16  *BandQntTable[LspQntBands] = {
  1685.    Band0Tb8 ,
  1686.    Band1Tb8 ,
  1687.    Band2Tb8 ,
  1688.    } ;
  1689. /*
  1690. **  PerFiltZeroTable:
  1691. **
  1692. **  Purpose:
  1693. **     Creates the FIR part of the formant perceptual weighting filter. 
  1694. **     Corresponds to gamma1 in section 2.8.
  1695. **
  1696. **  Table Structure:
  1697. **     (0.9) to the x power, where x = [1,..,10]
  1698. **     These values are scaled by 32768.
  1699. */
  1700. Word16   PerFiltZeroTable[LpcOrder] = {
  1701.    29491 ,
  1702.    26542 ,
  1703.    23888 ,
  1704.    21499 ,
  1705.    19349 ,
  1706.    17414 ,
  1707.    15673 ,
  1708.    14106 ,
  1709.    12695 ,
  1710.    11425 ,
  1711.    } ;
  1712. /*
  1713. **  PerFiltPoleTable:
  1714. **
  1715. **  Purpose:
  1716. **     Creates the IIR part of the formant perceptual weighting filter. 
  1717. **     Corresponds to gamma2 in section 2.8.
  1718. **
  1719. **  Table Structure:
  1720. **     (0.5) to the x power, where x = [1,..,10]
  1721. **     These values are scaled by 32768
  1722. */
  1723. Word16   PerFiltPoleTable[LpcOrder] = {
  1724.    16384 ,
  1725.     8192 ,
  1726.     4096 ,
  1727.     2048 ,
  1728.     1024 ,
  1729.      512 ,
  1730.      256 ,
  1731.      128 ,
  1732.       64 ,
  1733.       32 ,
  1734.    } ;
  1735. /*
  1736. **  PostFiltZeroTable:
  1737. **
  1738. **  Purpose:
  1739. **     Creates the FIR part of the formant postfilter.  Corresponds to
  1740. **     lambda1 in section 3.8.
  1741. **
  1742. **  Table Structure:
  1743. **     (0.65) to the x power, where x = [1,..,10]
  1744. **     These values are scaled by 32768
  1745. */
  1746. Word16   PostFiltZeroTable[LpcOrder] = {
  1747.   21299 ,
  1748.   13844 ,
  1749.    8999 ,
  1750.    5849 ,
  1751.    3802 ,
  1752.    2471 ,
  1753.    1606 ,
  1754.    1044 ,
  1755.     679 ,
  1756.     441 ,
  1757.    } ;
  1758. /*
  1759. **  PostFiltPoleTable:
  1760. **
  1761. **  Purpose:
  1762. **     Creates the IIR part of the formant postfilter.  Corresponds to
  1763. **     lambda2 in section 3.8.
  1764. **
  1765. **  Table Structure:
  1766. **     (0.75) to the x power, where x = [1,..,10]
  1767. **     These values are scaled by 32768
  1768. */
  1769. Word16   PostFiltPoleTable[LpcOrder] = {
  1770.  24576 ,
  1771.  18432 ,
  1772.  13824 ,
  1773.  10368 ,
  1774.   7776 ,
  1775.   5832 ,
  1776.   4374 ,
  1777.   3281 ,
  1778.   2460 ,
  1779.   1845 ,
  1780.    } ;
  1781. /*
  1782. **  Nb_puls:
  1783. **
  1784. **  Purpose:
  1785. **      Indexing
  1786. **
  1787. **  Table Structure:
  1788. **      Table values are the number of non-zero pulses in the high-rate
  1789. **      excitation (MP-MLQ), indexed by subframe number (0,..,3).
  1790. */
  1791. Word16   Nb_puls[4] = { 6,5,6,5};
  1792. /*
  1793. **  FcbkGainTable:
  1794. **
  1795. **  Purpose:
  1796. **      Logarithmic scalar quantizer in 24 steps of 3.2 dB each
  1797. **
  1798. **  Table Structure:
  1799. **      Contains x where 20*log10(x) = 3.2*i,  i = 1,..,24
  1800. */
  1801. Word16   FcbkGainTable[NumOfGainLev] = {
  1802.     1 ,
  1803.     2 ,
  1804.     3 ,
  1805.     4 ,
  1806.     6 ,
  1807.     9 ,
  1808.    13 ,
  1809.    18 ,
  1810.    26 ,
  1811.    38 ,
  1812.    55 ,
  1813.    80 ,
  1814.   115 ,
  1815.   166 ,
  1816.   240 ,
  1817.   348 ,
  1818.   502 ,
  1819.   726 ,
  1820.  1050 ,
  1821.  1517 ,
  1822.  2193 ,
  1823.  3170 ,
  1824.  4582 ,
  1825.  6623 ,
  1826.    } ;
  1827. /*
  1828. **  MaxPosTable:
  1829. **
  1830. **  Purpose:
  1831. **      size of the high rate fixed excitation codebooks (MP-MLQ)
  1832. **
  1833. **  Table Structure:
  1834. **      Table values are the number of codewords in the high rate fixed
  1835. **      excitation codebook (MP-MLQ), indexed by subframe number (0,..,3).
  1836. **      MaxPosTable[i] is the number of combinations of i elements among 30
  1837. **      non-zero pulses in the high-rate
  1838. */
  1839. Word32   MaxPosTable[4] = {
  1840.  0x00090f6fL ,
  1841.  0x00022caaL ,
  1842.  0x00090f6fL ,
  1843.  0x00022caaL ,
  1844.    } ;
  1845. /*
  1846. **  CombinatorialTable:
  1847. **
  1848. **  Purpose:
  1849. **      used for the coding and the decoding of the pulses positions
  1850. **      for the high-rate fixed excitation codebook
  1851. **
  1852. **  Table Structure:
  1853. **      CombinatorialTable[i][j] is the number of combinations of
  1854. **      (MaxPulsNum-1-i) elements among (SubFrLen-2-j)
  1855. */
  1856. Word32   CombinatorialTable[MaxPulseNum][SubFrLen/Sgrid] = {
  1857.  { 118755L ,
  1858.   98280L ,
  1859.   80730L ,
  1860.   65780L ,
  1861.   53130L ,
  1862.   42504L ,
  1863.   33649L ,
  1864.   26334 ,
  1865.   20349 ,
  1866.   15504 ,
  1867.   11628 ,
  1868.    8568 ,
  1869.    6188 ,
  1870.    4368 ,
  1871.    3003 ,
  1872.    2002 ,
  1873.    1287 ,
  1874.     792 ,
  1875.     462 ,
  1876.     252 ,
  1877.     126 ,
  1878.      56 ,
  1879.      21 ,
  1880.       6 ,
  1881.       1 ,
  1882.       0 ,
  1883.       0 ,
  1884.       0 ,
  1885.       0 ,
  1886.      0 },
  1887.  { 23751 ,
  1888.   20475 ,
  1889.   17550 ,
  1890.   14950 ,
  1891.   12650 ,
  1892.   10626 ,
  1893.    8855 ,
  1894.    7315 ,
  1895.    5985 ,
  1896.    4845 ,
  1897.    3876 ,
  1898.    3060 ,
  1899.    2380 ,
  1900.    1820 ,
  1901.    1365 ,
  1902.    1001 ,
  1903.     715 ,
  1904.     495 ,
  1905.     330 ,
  1906.     210 ,
  1907.     126 ,
  1908.      70 ,
  1909.      35 ,
  1910.      15 ,
  1911.       5 ,
  1912.       1 ,
  1913.       0 ,
  1914.       0 ,
  1915.       0 ,
  1916.     0 } ,
  1917.   { 3654 ,
  1918.    3276 ,
  1919.    2925 ,
  1920.    2600 ,
  1921.    2300 ,
  1922.    2024 ,
  1923.    1771 ,
  1924.    1540 ,
  1925.    1330 ,
  1926.    1140 ,
  1927.     969 ,
  1928.     816 ,
  1929.     680 ,
  1930.     560 ,
  1931.     455 ,
  1932.     364 ,
  1933.     286 ,
  1934.     220 ,
  1935.     165 ,
  1936.     120 ,
  1937.      84 ,
  1938.      56 ,
  1939.      35 ,
  1940.      20 ,
  1941.      10 ,
  1942.       4 ,
  1943.       1 ,
  1944.       0 ,
  1945.       0 ,
  1946.     0 } ,
  1947.    {  406 ,
  1948.     378 ,
  1949.     351 ,
  1950.     325 ,
  1951.     300 ,
  1952.     276 ,
  1953.     253 ,
  1954.     231 ,
  1955.     210 ,
  1956.     190 ,
  1957.     171 ,
  1958.     153 ,
  1959.     136 ,
  1960.     120 ,
  1961.     105 ,
  1962.      91 ,
  1963.      78 ,
  1964.      66 ,
  1965.      55 ,
  1966.      45 ,
  1967.      36 ,
  1968.      28 ,
  1969.      21 ,
  1970.      15 ,
  1971.      10 ,
  1972.       6 ,
  1973.       3 ,
  1974.       1 ,
  1975.       0 ,
  1976.       0 } ,
  1977.    { 29 ,
  1978.      28 ,
  1979.      27 ,
  1980.      26 ,
  1981.      25 ,
  1982.      24 ,
  1983.      23 ,
  1984.      22 ,
  1985.      21 ,
  1986.      20 ,
  1987.      19 ,
  1988.      18 ,
  1989.      17 ,
  1990.      16 ,
  1991.      15 ,
  1992.      14 ,
  1993.      13 ,
  1994.      12 ,
  1995.      11 ,
  1996.      10 ,
  1997.       9 ,
  1998.       8 ,
  1999.       7 ,
  2000.       6 ,
  2001.       5 ,
  2002.       4 ,
  2003.       3 ,
  2004.       2 ,
  2005.       1 ,
  2006.     0  },
  2007.    {  1 ,
  2008.       1 ,
  2009.       1 ,
  2010.       1 ,
  2011.       1 ,
  2012.       1 ,
  2013.       1 ,
  2014.       1 ,
  2015.       1 ,
  2016.       1 ,
  2017.       1 ,
  2018.       1 ,
  2019.       1 ,
  2020.       1 ,
  2021.       1 ,
  2022.       1 ,
  2023.       1 ,
  2024.       1 ,
  2025.       1 ,
  2026.       1 ,
  2027.       1 ,
  2028.       1 ,
  2029.       1 ,
  2030.       1 ,
  2031.       1 ,
  2032.       1 ,
  2033.       1 ,
  2034.       1 ,
  2035.       1 ,
  2036.     1 } ,
  2037.    } ;
  2038. /*
  2039. **  AcbkGainTable085:
  2040. **
  2041. **  Purpose:
  2042. **      Used to calculate the error expression in pitch prediction
  2043. **      optimization (also described as an adaptive codebook approach)
  2044. **
  2045. **      Table Structure:
  2046. **      The table is structured as 85 20-element vectors.  These
  2047. **      vectors are structured as precalculated values in the error
  2048. **      expression for the pitch predictor.  Gi is the gain value
  2049. **      multiplying the signal delayed by a pitch period (+/- offset).
  2050. **      In equation 41.2, Gi would be equivalent to bij.
  2051. **      
  2052. **      1st 5 elements:   G1  G2  G3  G4  G5 in Q14 (i.e. scaled by 16384)
  2053. **      2nd 5 elements:  -G1^2  -G2^2  -G3^2  -G4^2  -G5^2
  2054. **           These are scaled down by 14 bits (factor of 16384) after
  2055. **           being squared.
  2056. **      Next 10 elements: These are the off-diagonal elements
  2057. **           -G1*G2  -G1*G3  -G2*G3  -G1*G4  -G2*G4
  2058. **           -G3*G4  -G1*G5  -G2*G5  -G3*G5  -G4*G5
  2059. **           These are scaled down by 14 bits (factor of 16384)
  2060. */
  2061. Word16 AcbkGainTable085[85*20] = {
  2062.      0,      0,      0,      0,      0,      0,      0,      0, 
  2063.      0,      0,      0,      0,      0,      0,      0,      0, 
  2064.      0,      0,      0,      0,    800,   1496,    167,   -256, 
  2065.   -338,    -39,   -136,     -1,     -4,     -6,    -73,     -8, 
  2066.    -15,     12,     23,      2,     16,     30,      3,     -5, 
  2067.   -462,   -686,    493,   2575,    311,    -13,    -28,    -14, 
  2068.   -404,     -5,    -19,     13,     20,     72,    107,    -77, 
  2069.      8,     13,     -9,    -48,   1483,    144,    784,    928,
  2070.   1243,   -134,     -1,    -37,    -52,    -94,    -13,    -71, 
  2071.     -6,    -84,     -8,    -44,   -112,    -10,    -59,    -70, 
  2072.    -77,    275,   3522,   1056,  -1254,      0,     -4,   -757, 
  2073.    -68,    -95,      1,     16,    -59,      4,    -17,   -227, 
  2074.     -5,     21,    269,     80,   -125,    -40,   -264,    381, 
  2075.   5027,      0,      0,     -4,     -8,  -1542,      0,     -2, 
  2076.      0,      2,      0,      6,     38,     12,     81,   -117, 
  2077.    138,    332,   2215,   2574,   1339,     -1,     -6,   -299, 
  2078.   -404,   -109,     -2,    -18,    -44,    -21,    -52,   -348,
  2079.    -11,    -27,   -181,   -210,   3685,   2883,   -887,    866, 
  2080.  -1639,   -828,   -507,    -48,    -45,   -164,   -648,    199, 
  2081.    156,   -194,   -152,     46,    368,    288,    -88,     86, 
  2082.   1396,   2146,   2235,    345,    942,   -118,   -281,   -305, 
  2083.     -7,    -54,   -182,   -190,   -292,    -29,    -45,    -47, 
  2084.    -80,   -123,   -128,    -19,     13,   4475,   3549,   -804, 
  2085.   -655,      0,  -1222,   -768,    -39,    -26,     -3,     -2, 
  2086.   -969,      0,    219,    174,      0,    179,    141,    -32, 
  2087.   -724,    254,    242,   6049,   2462,    -32,     -3,     -3, 
  2088.  -2233,   -370,     11,     10,     -3,    267,    -94,    -89, 
  2089.    108,    -38,    -36,   -909,    626,  -1713,   6121,   4561, 
  2090.  -1061,    -23,   -179,  -2287,  -1270,    -68,     65,   -233, 
  2091.    640,   -174,    477,  -1704,     40,   -111,    396,    295, 
  2092.   -350,   1391,   7985,    511,   -405,     -7,   -118,  -3892, 
  2093.    -15,    -10,     29,    170,   -678,     10,    -43,   -249, 
  2094.     -8,     34,    197,     12,   3144,   -529,    608,   2530, 
  2095.   3878,   -603,    -17,    -22,   -390,   -918,    101,   -116, 
  2096.     19,   -485,     81,    -93,   -744,    125,   -144,   -599, 
  2097.   2589,   -689,   3045,   5603,   -404,   -409,    -29,   -566, 
  2098.  -1916,    -10,    108,   -481,    128,   -885,    235,  -1041, 
  2099.     63,    -17,     75,    138,   3107,    513,   1374,  -3594, 
  2100.  -4922,   -589,    -16,   -115,   -788,  -1478,    -97,   -260, 
  2101.    -43,    681,    112,    301,    933,    154,    413,  -1079, 
  2102.   2468,   6010,   1107,   -390,   1961,   -372,  -2204,    -74, 
  2103.     -9,   -234,   -905,   -166,   -406,     58,    143,     26, 
  2104.   -295,   -719,   -132,     46,   4773,   2766,   2368,   4862, 
  2105.  -4044,  -1390,   -467,   -342,  -1443,   -998,   -806,   -690, 
  2106.   -399,  -1416,   -821,   -702,   1178,    682,    584,   1200, 
  2107.   1665,  -1879,   1443,   1701,   8562,   -169,   -215,   -127, 
  2108.   -176,  -4475,    190,   -146,    165,   -172,    195,   -149, 
  2109.   -870,    982,   -754,   -889,   2716,   9011,  -1007,    755, 
  2110.  -1785,   -450,  -4956,    -61,    -34,   -194,  -1493,    167, 
  2111.    554,   -125,   -415,     46,    296,    982,   -109,     82, 
  2112.  -2727,   7548,   1285,    938,   3420,   -453,  -3478,   -100, 
  2113.    -53,   -714,   1256,    213,   -592,    156,   -432,    -73, 
  2114.    569,  -1576,   -268,   -196,   3677,    882,   4050,   1202, 
  2115.   2323,   -825,    -47,  -1001,    -88,   -329,   -198,   -909, 
  2116.   -218,   -269,    -64,   -297,   -521,   -125,   -574,   -170, 
  2117.   2046,   -753,    122,  10102,    603,   -255,    -34,      0, 
  2118.  -6229,    -22,     94,    -15,      5,  -1261,    464,    -75, 
  2119.    -75,     27,     -4,   -372,    449,  -1815,  10690,   3870, 
  2120.   -527,    -12,   -201,  -6976,   -914,    -16,     49,   -293, 
  2121.   1184,   -106,    428,  -2525,     14,    -58,    344,    124, 
  2122.   -941,   2352,   5049,   3650,   2637,    -54,   -337,  -1556, 
  2123.   -813,   -424,    135,    290,   -725,    209,   -524,  -1125, 
  2124.    151,   -378,   -812,   -587,  -1879,    796,   3117,   9569, 
  2125.   -404,   -215,    -38,   -593,  -5589,     -9,     91,    357, 
  2126.   -151,   1097,   -464,  -1821,    -46,     19,     76,    236, 
  2127.  -1715,   2043,  -2096,   9946,   4001,   -179,   -254,   -268, 
  2128.  -6038,   -977,    213,   -219,    261,   1041,  -1240,   1272, 
  2129.    418,   -498,    511,  -2429,  -5772,   -618,  -3921,    284, 
  2130.  -3155,  -2033,    -23,   -938,     -4,   -607,   -218,  -1381, 
  2131.   -148,    100,     10,     68,  -1111,   -119,   -755,     54, 
  2132.    382,   4748,   8003,  -2064,   2198,     -8,  -1376,  -3909, 
  2133.   -260,   -294,   -110,   -186,  -2319,     48,    598,   1008, 
  2134.    -51,   -637,  -1073,    277,   -867,   3015,  11926,  -1675, 
  2135.    947,    -45,   -555,  -8681,   -171,    -54,    159,    631, 
  2136.  -2195,    -88,    308,   1219,     50,   -174,   -690,     96, 
  2137.  -4933,   -432,   6757,   3771,   1352,  -1485,    -11,  -2786, 
  2138.   -867,   -111,   -130,   2034,    178,   1135,     99,  -1555, 
  2139.    407,     35,   -557,   -311,    152,   9726,   4231,  -1928, 
  2140.   1490,     -1,  -5774,  -1092,   -226,   -135,    -90,    -39, 
  2141.  -2511,     17,   1144,    498,    -13,   -884,   -384,    175, 
  2142.   2512,    193,   9033,   5361,  -3148,   -385,     -2,  -4980, 
  2143.  -1754,   -605,    -29,  -1385,   -106,   -822,    -63,  -2956, 
  2144.    482,     37,   1735,   1030,   8464,   2844,     12,    549, 
  2145.   2132,  -4373,   -493,      0,    -18,   -277,  -1469,     -6, 
  2146.     -2,   -284,    -95,      0,  -1101,   -370,     -1,    -71, 
  2147.   2141,  -2602,   7166,   9046,  -1350,   -279,   -413,  -3134, 
  2148.  -4994,   -111,    340,   -936,   1138,  -1182,   1436,  -3957, 
  2149.    176,   -214,    590,    745,   -244,    278,  13307,   1227, 
  2150.   -161,     -3,     -4, -10808,    -91,     -1,      4,    198, 
  2151.   -226,     18,    -20,   -997,     -2,      2,    131,     12, 
  2152.  -1947,   8217,   6269,    917,  -2559,   -231,  -4121,  -2399, 
  2153.    -51,   -399,    976,    745,  -3144,    108,   -460,   -350, 
  2154.   -304,   1283,    979,    143,  -1810,   2061,  -2781,   6056, 
  2155.  10058,   -200,   -259,   -472,  -2238,  -6174,    227,   -307, 
  2156.    349,    669,   -761,   1028,   1111,  -1265,   1707,  -3717, 
  2157.   7827,   9161,  -3409,   2473,  -1510,  -3739,  -5122,   -709, 
  2158.   -373,   -139,  -4376,   1628,   1906,  -1181,  -1382,    514, 
  2159.    721,    844,   -314,    228,  -1430,   8313,   9541,  -2955, 
  2160.   1626,   -124,  -4218,  -5556,   -533,   -161,    725,    832, 
  2161.  -4841,   -257,   1499,   1721,    142,   -825,   -947,    293, 
  2162.   2819,  -4247,   5391,   8673,   2756,   -485,  -1101,  -1774, 
  2163.  -4591,   -463,    730,   -927,   1397,  -1492,   2248,  -2854, 
  2164.   -474,    714,   -907,  -1459,    141,  14552,    690,    257, 
  2165.   -112,     -1, -12926,    -29,     -4,      0,   -125,     -5, 
  2166.   -613,     -2,   -228,    -10,      0,     99,      4,      1, 
  2167.  11938,  -1859,   1806,   -962,   -884,  -8699,   -211,   -199, 
  2168.    -56,    -47,   1355,  -1316,    205,    701,   -109,    106, 
  2169.    644,   -100,     97,    -51,   3728,   1982,   2264,   4584, 
  2170.   3131,   -848,   -239,   -312,  -1282,   -598,   -451,   -515, 
  2171.   -273,  -1043,   -554,   -633,   -712,   -378,   -432,   -876, 
  2172.  -1181,    766,    720,  14303,   -216,    -85,    -35,    -31, 
  2173. -12486,     -2,     55,     51,    -33,   1031,   -668,   -628, 
  2174.    -15,     10,      9,    189,  -4385,   4826,  10112,   1569, 
  2175.   3388,  -1173,  -1421,  -6242,   -150,   -700,   1291,   2706, 
  2176.  -2979,    420,   -462,   -969,    906,   -998,  -2091,   -324, 
  2177.   -448,   1932,  15591,  -1842,    657,    -12,   -227, -14837, 
  2178.   -207,    -26,     52,    427,  -1838,    -50,    217,   1753, 
  2179.     18,    -77,   -626,     74,  -4141,   1844,   3962,   5517, 
  2180.   6220,  -1046,   -207,   -958,  -1858,  -2361,    466,   1001, 
  2181.   -446,   1394,   -621,  -1334,   1572,   -700,  -1504,  -2094, 
  2182.    729,  -2299,  14755,   3657,   -952,    -32,   -322, -13288, 
  2183.   -816,    -55,    102,   -656,   2071,   -162,    513,  -3294, 
  2184.     42,   -133,    857,    212,  -1385,   5801,  13339,  -3137, 
  2185.   1344,   -117,  -2054, -10861,   -600,   -110,    490,   1127, 
  2186.  -4723,   -265,   1111,   2554,    113,   -476,  -1094,    257, 
  2187.   4710,   9661,   1073,  -2467,   3274,  -1354,  -5697,    -70, 
  2188.   -371,   -654,  -2777,   -308,   -633,    709,   1455,    161, 
  2189.   -941,  -1930,   -214,    493,   1843,  -3624,  12422,   6898, 
  2190.  -1559,   -207,   -802,  -9419,  -2904,   -148,    407,  -1397, 
  2191.   2748,   -775,   1526,  -5230,    175,   -344,   1182,    656, 
  2192.   1433,   2394,   2507,   1380,   8780,   -125,   -349,   -383, 
  2193.   -116,  -4705,   -209,   -219,   -366,   -120,   -201,   -211, 
  2194.   -768,  -1283,  -1343,   -740,  -1712,  12915,   5883,  -2197, 
  2195.    991,   -179, -10181,  -2112,   -294,    -60,   1350,    615, 
  2196.  -4638,   -229,   1732,    789,    103,   -781,   -356,    133, 
  2197.  15072,   2158,  -1245,    910,   -496, -13865,   -284,    -94, 
  2198.    -50,    -15,  -1986,   1145,    164,   -837,   -119,     69, 
  2199.    456,     65,    -37,     27,   4655,   7319,   4916,    586, 
  2200.  -3381,  -1322,  -3270,  -1475,    -20,   -697,  -2079,  -1396, 
  2201.  -2196,   -166,   -261,   -175,    960,   1510,   1014,    120, 
  2202.   1191,  -2140,   5120,  13498,  -1418,    -86,   -279,  -1600, 
  2203. -11121,   -122,    155,   -372,    669,   -981,   1763,  -4218, 
  2204.    103,   -185,    443,   1168,  -1530,   -817,   8191,   9632, 
  2205.  -1452,   -143,    -40,  -4095,  -5663,   -128,    -76,    765, 
  2206.    408,    900,    480,  -4815,   -135,    -72,    726,    854, 
  2207.  -3236,    607,   1696,  -2106,  11485,   -639,    -22,   -175, 
  2208.   -270,  -8051,    119,    335,    -62,   -416,     78,    218, 
  2209.   2268,   -425,  -1189,   1476,   3203,  -1903,   -837,   9679, 
  2210.   7057,   -626,   -221,    -42,  -5718,  -3039,    372,    163, 
  2211.    -97,  -1892,   1124,    494,  -1380,    819,    360,  -4169, 
  2212.    213,   -655,  17015,    620,   -384,     -2,    -26, -17671, 
  2213.    -23,     -9,      8,   -221,    681,     -8,     24,   -644, 
  2214.      5,    -15,    399,     14,   5088,     35,  -3339,   3726, 
  2215.   8488,  -1580,      0,   -680,   -847,  -4397,    -10,   1037, 
  2216.      7,  -1157,     -8,    759,  -2636,    -18,   1730,  -1930, 
  2217.   -988,   1454,  -2688,  15039,   2682,    -59,   -129,   -441, 
  2218. -13805,   -439,     87,   -162,    238,    907,  -1335,   2467, 
  2219.    161,   -238,    440,  -2462,  -4865,  -2842,    -53,   5495, 
  2220.   6523,  -1445,   -493,      0,  -1843,  -2597,   -844,    -16, 
  2221.     -9,   1632,    953,     18,   1937,   1131,     21,  -2188, 
  2222.   3076,  15069,  -2914,   1810,   -971,   -577, -13860,   -518, 
  2223.   -200,    -57,  -2829,    547,   2680,   -339,  -1665,    322, 
  2224.    182,    893,   -172,    107,   1311,   5355,  11054,   2299, 
  2225.  -3654,   -105,  -1750,  -7458,   -322,   -814,   -428,   -885, 
  2226.  -3613,   -184,   -751,  -1551,    292,   1194,   2465,    512, 
  2227.   4035,   5619,   4618,   1815,   1912,   -994,  -1927,  -1301, 
  2228.   -201,   -223,  -1384,  -1137,  -1583,   -447,   -622,   -511, 
  2229.   -471,   -656,   -539,   -211,  -2131,   2754,  -4501,  12879, 
  2230.   7432,   -277,   -463,  -1236, -10124,  -3371,    358,   -585, 
  2231.    756,   1675,  -2165,   3538,    967,  -1249,   2042,  -5842, 
  2232.   5618,   -515,   3219,  -4149,   4857,  -1926,    -16,   -632, 
  2233.  -1050,  -1440,    176,  -1104,    101,   1422,   -130,    815, 
  2234.  -1666,    152,   -954,   1230,   1838,  -1709,   1139,  16867, 
  2235.    716,   -206,   -178,    -79, -17366,    -31,    191,   -127, 
  2236.    118,  -1892,   1759,  -1173,    -80,     74,    -49,   -737, 
  2237.   1978,  -3845,  10050,  11854,  -2492,   -238,   -902,  -6164, 
  2238.  -8576,   -379,    464,  -1213,   2358,  -1431,   2782,  -7271, 
  2239.    301,   -585,   1529,   1803,  -2600,  11246,  11289,  -3647, 
  2240.   1463,   -412,  -7720,  -7778,   -812,   -130,   1784,   1791, 
  2241.  -7749,   -578,   2504,   2513,    232,  -1004,  -1008,    325, 
  2242.   3442,    907,   2725,   8970,   3638,   -723,    -50,   -453, 
  2243.  -4911,   -808,   -190,   -572,   -150,  -1884,   -496,  -1492, 
  2244.   -764,   -201,   -605,  -1992,   -126,  17498,   3481,  -2003, 
  2245.   1090,      0, -18689,   -739,   -244,    -72,    135,     26, 
  2246.  -3717,    -15,   2139,    425,      8,  -1165,   -231,    133, 
  2247.  -1814,   1048,  -2164,   4070,  16272,   -200,    -67,   -285, 
  2248.  -1011, -16160,    116,   -239,    138,    450,   -260,    537, 
  2249.   1801,  -1041,   2149,  -4042,   9354,  12580,  -1883,    962, 
  2250.   -617,  -5341,  -9660,   -216,    -56,    -23,  -7183,   1075, 
  2251.   1446,   -549,   -738,    110,    352,    474,    -71,     36, 
  2252.   1708,   4199,   7387,   6335,   1003,   -178,  -1076,  -3330, 
  2253.  -2449,    -61,   -437,   -770,  -1893,   -660,  -1623,  -2856, 
  2254.   -104,   -257,   -452,   -388,  -2624,   5623,  17310,  -2353, 
  2255.    592,   -420,  -1930, -18288,   -338,    -21,    900,   2772, 
  2256.  -5941,   -376,    807,   2486,     94,   -203,   -625,     85, 
  2257.   1211,   -850,   1193,  -1926,  15992,    -89,    -44,    -86, 
  2258.   -226, -15609,     62,    -88,     61,    142,   -100,    140, 
  2259.  -1182,    830,  -1165,   1880,   3983,  -2054,  11506,    -19, 
  2260.   3622,   -968,   -257,  -8080,      0,   -801,    499,  -2797, 
  2261.   1442,      4,     -2,     13,   -880,    454,  -2544,      4, 
  2262.   -786,  -1354,  16092,   7246,  -1665,    -37,   -111, -15805, 
  2263.  -3205,   -169,    -65,    772,   1330,    348,    599,  -7117, 
  2264.    -80,   -137,   1636,    736,  -4316,   -511,   6674,  11665, 
  2265.   4633,  -1137,    -15,  -2719,  -8305,  -1310,   -134,   1758, 
  2266.    208,   3073,    364,  -4752,   1220,    144,  -1887,  -3299, 
  2267.   7912,   4557,   1937,   1885,   7037,  -3821,  -1267,   -229, 
  2268.   -216,  -3022,  -2200,   -935,   -538,   -910,   -524,   -222, 
  2269.  -3398,  -1957,   -832,   -809,   3434,   2967,   5867,   8196, 
  2270.   8766,   -720,   -537,  -2101,  -4100,  -4690,   -622,  -1230, 
  2271.  -1062,  -1718,  -1484,  -2935,  -1837,  -1588,  -3139,  -4385, 
  2272.   5881,   9176,   8119,   3934,   3355,  -2111,  -5139,  -4023, 
  2273.   -944,   -687,  -3294,  -2914,  -4547,  -1412,  -2203,  -1949, 
  2274.  -1204,  -1879,  -1662,   -805 };
  2275. /*
  2276. **  AcbkGainTable170:
  2277. **
  2278. **  Purpose:
  2279. **      Used to calculate the error expression in pitch prediction
  2280. **      optimization (also expressed as an adaptive codebook approach)
  2281. **
  2282. **  Table Structure:
  2283. **      The table is structured as 170 20-element vectors.  These
  2284. **      vectors are structured as precalculated values in the error
  2285. **      expression for the pitch
  2286. **      predictor.  Gi is the gain value multiplying the signal
  2287. **      delayed by a pitch period (+/- offset).  In equation 41.2,
  2288. **      Gi would be equivalent to bij.
  2289. **
  2290. **      1st 5 elements:   G1  G2  G3  G4  G5 in Q14 (i.e. scaled by 16384)
  2291. **      2nd 5 elements:  -G1^2  -G2^2  -G3^2  -G4^2  -G5^2
  2292. **           These are scaled down by 14 bits (factor of 16384) after
  2293. **           being squared.
  2294. **      Next 10 elements: These are the off-diagonal elements
  2295. **           -G1*G2  -G1*G3  -G2*G3  -G1*G4  -G2*G4
  2296. **           -G3*G4  -G1*G5  -G2*G5  -G3*G5  -G4*G5
  2297. **           These are scaled down by 14 bits (factor of 16384)
  2298. */
  2299. Word16 AcbkGainTable170[170*20] = {
  2300.      0,      0,      0,      0,      0,      0,      0,      0, 
  2301.      0,      0,      0,      0,      0,      0,      0,      0, 
  2302.      0,      0,      0,      0,    776,    212,    715,    670, 
  2303.    809,    -36,     -2,    -31,    -27,    -39,    -10,    -33, 
  2304.     -9,    -31,     -8,    -29,    -38,    -10,    -35,    -33, 
  2305.   1296,   1316,   -168,   -320,   -815,   -102,   -105,     -1, 
  2306.     -6,    -40,   -104,     13,     13,     25,     25,     -3, 
  2307.     64,     65,     -8,    -15,   -589,    680,   2478,    308, 
  2308.   -596,    -21,    -28,   -375,     -5,    -21,     24,     89, 
  2309.   -102,     11,    -12,    -46,    -21,     24,     90,     11, 
  2310.   -735,   -487,     -5,   2948,    468,    -33,    -14,      0, 
  2311.   -530,    -13,    -21,      0,      0,    132,     87,      0, 
  2312.     21,     13,      0,    -84,   1042,   1730,   1068,    333, 
  2313.    626,    -66,   -182,    -69,     -6,    -23,   -110,    -67, 
  2314.   -112,    -21,    -35,    -21,    -39,    -66,    -40,    -12, 
  2315.    486,   -769,   4074,   2825,  -1107,    -14,    -36,  -1013, 
  2316.   -487,    -74,     22,   -120,    191,    -83,    132,   -702, 
  2317.     32,    -52,    275,    191,   1521,   -767,   -124,   4320,
  2318.   1026,   -141,    -35,      0,  -1139,    -64,     71,     11, 
  2319.     -5,   -401,    202,     32,    -95,     48,      7,   -270, 
  2320.   2425,   1267,   3439,    -91,  -1166,   -359,    -98,   -722, 
  2321.      0,    -83,   -187,   -509,   -266,     13,      7,     19, 
  2322.    172,     90,    244,     -6,  -1251,    975,    173,   4039, 
  2323.   2005,    -95,    -58,     -1,   -996,   -245,     74,     13, 
  2324.    -10,    308,   -240,    -42,    153,   -119,    -21,   -494, 
  2325.   1820,    632,   1322,   2062,   1031,   -202,    -24,   -106, 
  2326.   -259,    -64,    -70,   -146,    -51,   -229,    -79,   -166, 
  2327.   -114,    -39,    -83,   -129,   -447,   4904,    244,   -315, 
  2328.  -2038,    -12,  -1467,     -3,     -6,   -253,    134,      6, 
  2329.    -73,     -8,     94,      4,    -55,    610,     30,    -39, 
  2330.   -208,  -1102,    463,   -448,   5653,     -2,    -74,    -13, 
  2331.    -12,  -1950,    -14,      5,     31,     -5,    -30,     12, 
  2332.     71,    380,   -159,    154,   4739,   2600,  -1864,    856, 
  2333.  -1554,  -1371,   -412,   -212,    -44,   -147,   -752,    539, 
  2334.    295,   -247,   -135,     97,    449,    246,   -176,     81, 
  2335.   1894,   3533,     35,    -26,   2145,   -219,   -762,      0, 
  2336.      0,   -280,   -408,     -4,     -7,      3,      5,      0,
  2337.   -248,   -462,     -4,      3,  -2699,   1841,   4072,   2443, 
  2338.   1582,   -444,   -207,  -1012,   -364,   -152,    303,    670, 
  2339.   -457,    402,   -274,   -607,    260,   -177,   -393,   -236, 
  2340.   -844,   3358,   6106,  -1059,   -537,    -43,   -688,  -2275, 
  2341.    -68,    -17,    173,    314,  -1251,    -54,    217,    395, 
  2342.    -27,    110,    200,    -34,   1251,   1016,   3020,   2210, 
  2343.   1445,    -95,    -63,   -556,   -298,   -127,    -77,   -230, 
  2344.   -187,   -168,   -137,   -407,   -110,    -89,   -266,   -194, 
  2345.   2099,   2277,   4038,   3533,  -2870,   -269,   -316,   -995, 
  2346.   -762,   -503,   -291,   -517,   -561,   -452,   -491,   -871, 
  2347.    367,    399,    707,    619,    400,  -1114,   8516,   2422, 
  2348.  -1117,     -9,    -75,  -4426,   -358,    -76,     27,   -208, 
  2349.    579,    -59,    164,  -1259,     27,    -75,    580,    165, 
  2350.  -4398,  -2011,   3912,  -2407,   2258,  -1180,   -247,   -934, 
  2351.   -353,   -311,   -540,   1050,    480,   -646,   -295,    575, 
  2352.    606,    277,   -539,    331,   1767,  -1447,   4240,   6160, 
  2353.   -757,   -190,   -127,  -1097,  -2316,    -35,    156,   -457, 
  2354.    374,   -664,    544,  -1594,     81,    -66,    195,    284, 
  2355.   1594,  -1463,   1035,   6938,   1920,   -155,   -130,    -65,
  2356.  -2938,   -225,    142,   -100,     92,   -675,    619,   -438, 
  2357.   -186,    171,   -121,   -813,   -562,   4716,   4085,   -591, 
  2358.   2421,    -19,  -1357,  -1018,    -21,   -357,    162,    140, 
  2359.  -1175,    -20,    170,    147,     83,   -696,   -603,     87, 
  2360.   1552,   8778,   -935,    354,  -1424,   -147,  -4703,    -53, 
  2361.     -7,   -123,   -831,     88,    501,    -33,   -189,     20, 
  2362.    134,    763,    -81,     30,   4831,  -4431,     41,  -1479, 
  2363.  -2976,  -1424,  -1198,      0,   -133,   -540,   1306,    -12, 
  2364.     11,    436,   -400,      3,    877,   -804,      7,   -268, 
  2365.   2090,   1192,   1006,   1645,   4853,   -266,    -86,    -61, 
  2366.   -165,  -1437,   -152,   -128,    -73,   -210,   -119,   -101, 
  2367.   -619,   -353,   -298,   -487,   2386,   5712,   1426,    -94, 
  2368.   1350,   -347,  -1991,   -124,      0,   -111,   -832,   -207, 
  2369.   -497,     13,     32,      8,   -196,   -470,   -117,      7, 
  2370.  -1349,   1091,   1659,   8891,    313,   -111,    -72,   -168, 
  2371.  -4825,     -5,     89,    136,   -110,    732,   -592,   -900, 
  2372.     25,    -20,    -31,   -170,   9980,    916,   -381,   -808, 
  2373.     88,  -6080,    -51,     -8,    -39,      0,   -558,    232, 
  2374.     21,    492,     45,    -18,    -53,     -4,      2,      4,
  2375.   2338,  -1031,   -248,   3928,   6484,   -333,    -64,     -3, 
  2376.   -942,  -2566,    147,     35,    -15,   -560,    247,     59, 
  2377.   -925,    408,     98,  -1555,   6166,  -1240,   -337,   3672, 
  2378.  -1277,  -2320,    -93,     -6,   -823,    -99,    466,    126, 
  2379.    -25,  -1382,    278,     75,    480,    -96,    -26,    286, 
  2380.   4377,   -132,  -2588,   1701,   4865,  -1169,     -1,   -409, 
  2381.   -176,  -1444,     35,    691,    -20,   -454,     13,    268, 
  2382.  -1299,     39,    768,   -505,   2594,   3295,   3944,   1481, 
  2383.    682,   -410,   -662,   -949,   -133,    -28,   -521,   -624, 
  2384.   -793,   -234,   -297,   -356,   -108,   -137,   -164,    -61, 
  2385.   4151,    624,    815,   4485,   2229,  -1052,    -23,    -40, 
  2386.  -1228,   -303,   -158,   -206,    -31,  -1136,   -170,   -223, 
  2387.   -565,    -84,   -111,   -610,  -3575,   -361,   4924,   2791, 
  2388.   4698,   -780,     -7,  -1480,   -475,  -1347,    -78,   1074, 
  2389.    108,    609,     61,   -839,   1025,    103,  -1412,   -800, 
  2390.  -2518,   3791,   8623,    315,   2465,   -387,   -877,  -4538, 
  2391.     -6,   -370,    582,   1325,  -1995,     48,    -73,   -166, 
  2392.    378,   -570,  -1297,    -47,   -691,   2989,   9957,   -421, 
  2393.  -1142,    -29,   -545,  -6051,    -10,    -79,    126,    420,
  2394.  -1817,    -17,     76,    256,    -48,    208,    694,    -29, 
  2395.  -1918,    104,  -3190,  -3410,  -4440,   -224,      0,   -621, 
  2396.   -709,  -1203,     12,   -373,     20,   -399,     21,   -664, 
  2397.   -519,     28,   -864,   -924,  -3359,  -1668,   1854,   6939, 
  2398.   1430,   -688,   -169,   -209,  -2939,   -124,   -341,    380, 
  2399.    188,   1422,    706,   -785,    293,    145,   -161,   -606, 
  2400.     42,   9706,   3164,   -952,    907,      0,  -5750,   -611, 
  2401.    -55,    -50,    -25,     -8,  -1874,      2,    564,    183, 
  2402.     -2,   -537,   -175,     52,   1607,    785,   2862,   4327, 
  2403.   3307,   -157,    -37,   -500,  -1143,   -667,    -77,   -280, 
  2404.   -137,   -424,   -207,   -756,   -324,   -158,   -577,   -873, 
  2405.   6801,   3416,   2227,   1682,  -3217,  -2823,   -712,   -302, 
  2406.   -172,   -631,  -1418,   -924,   -464,   -698,   -350,   -228, 
  2407.   1335,    670,    437,    330,   3459,   3898,    364,   7841, 
  2408.  -2640,   -730,   -927,     -8,  -3753,   -425,   -823,    -76, 
  2409.    -86,  -1655,  -1865,   -174,    557,    628,     58,   1263, 
  2410.  -5902,  -3458,  -2465,  -1886,   4334,  -2126,   -730,   -371, 
  2411.   -217,  -1146,  -1245,   -888,   -520,   -679,   -398,   -283, 
  2412.   1561,    915,    652,    499,  -3710,   1133,   7849,   3443,
  2413.   -215,   -840,    -78,  -3760,   -723,     -2,    256,   1777, 
  2414.   -543,    779,   -238,  -1649,    -48,     14,    103,     45, 
  2415.   4132,   2828,      2,  -4212,  -4116,  -1042,   -488,      0, 
  2416.  -1083,  -1034,   -713,      0,      0,   1062,    727,      0, 
  2417.   1038,    710,      0,  -1058,   5875,   8496,  -1796,   1376, 
  2418.  -1786,  -2107,  -4406,   -197,   -115,   -194,  -3047,    644, 
  2419.    931,   -493,   -713,    150,    640,    926,   -195,    150, 
  2420.   3143,   3483,   3546,   -793,   4489,   -603,   -740,   -767, 
  2421.    -38,  -1230,   -668,   -680,   -754,    152,    168,    171, 
  2422.   -861,   -954,   -971,    217,   2845,   7965,   3695,  -5432, 
  2423.   3978,   -494,  -3873,   -833,  -1801,   -966,  -1383,   -641, 
  2424.  -1796,    943,   2641,   1225,   -691,  -1934,   -897,   1319, 
  2425.   1538,    150,   7139,   2049,   3097,   -144,     -1,  -3110, 
  2426.   -256,   -585,    -14,   -670,    -65,   -192,    -18,   -892, 
  2427.   -290,    -28,  -1349,   -387,    618,   7520,   4729,   -238, 
  2428.  -3373,    -23,  -3452,  -1365,     -3,   -694,   -283,   -178, 
  2429.  -2170,      8,    109,     68,    127,   1548,    973,    -49, 
  2430.   2965,  -3013,   7912,   7076,  -1997,   -536,   -554,  -3821, 
  2431.  -3056,   -243,    545,  -1431,   1455,  -1280,   1301,  -3417,
  2432.    361,   -367,    964,    862,   2443,   -929,  -1113,   9677, 
  2433.   4138,   -364,    -52,    -75,  -5716,  -1045,    138,    166, 
  2434.    -63,  -1443,    549,    657,   -617,    234,    281,  -2444, 
  2435.   1966,   3309,  10085,  -3399,   2105,   -236,   -668,  -6207, 
  2436.   -705,   -270,   -397,  -1210,  -2037,    408,    686,   2092, 
  2437.   -252,   -425,  -1295,    436,   -112,  -1368,   8868,   4822, 
  2438.   2048,      0,   -114,  -4800,  -1419,   -256,     -9,     61, 
  2439.    740,     33,    402,  -2610,     14,    171,  -1108,   -602, 
  2440.  -2597,    438,  -1839,   6229,   7266,   -411,    -11,   -206, 
  2441.  -2368,  -3223,     69,   -291,     49,    987,   -166,    699, 
  2442.   1152,   -194,    816,  -2763,   3454,    553,   9127,   4946, 
  2443.  -5596,   -728,    -18,  -5084,  -1493,  -1911,   -116,  -1924, 
  2444.   -308,  -1042,   -166,  -2755,   1179,    188,   3117,   1689, 
  2445.   -532,   -663,  12262,   2495,  -1004,    -17,    -26,  -9177, 
  2446.   -380,    -61,    -21,    398,    496,     81,    101,  -1867, 
  2447.    -32,    -40,    751,    152,  -2100,   1317,  -1509,  11425, 
  2448.   2997,   -269,   -105,   -139,  -7967,   -548,    168,   -193, 
  2449.    121,   1464,   -918,   1052,    384,   -240,    276,  -2090, 
  2450.   1193,  -2697,  11259,   5373,   -763,    -86,   -444,  -7737,
  2451.  -1762,    -35,    196,   -819,   1853,   -391,    884,  -3692, 
  2452.     55,   -125,    525,    250,   2405,   -471,  11079,    203, 
  2453.    782,   -353,    -13,  -7491,     -2,    -37,     69,  -1626, 
  2454.    318,    -29,      5,   -137,   -114,     22,   -529,     -9, 
  2455.  -1871,   5685,  11290,  -2662,   1353,   -213,  -1972,  -7780, 
  2456.   -432,   -111,    649,   1289,  -3917,   -304,    923,   1834, 
  2457.    154,   -469,   -932,    220,  -3768,   5927,  -3093,   5041, 
  2458.   5212,   -866,  -2144,   -584,  -1551,  -1658,   1363,   -711, 
  2459.   1119,   1159,  -1824,    951,   1198,  -1885,    984,  -1603, 
  2460.  -2546,   9502,   5969,  -2440,   1928,   -395,  -5511,  -2175, 
  2461.   -363,   -226,   1477,    927,  -3462,   -379,   1415,    889, 
  2462.    299,  -1118,   -702,    287,  -4963,   3568,   4592,   5508, 
  2463.   3451,  -1503,   -777,  -1287,  -1851,   -727,   1080,   1391, 
  2464.  -1000,   1668,  -1199,  -1543,   1045,   -751,   -967,  -1160, 
  2465.   1745,  -2586,   3983,  10899,  -1551,   -186,   -408,   -968, 
  2466.  -7250,   -146,    275,   -424,    628,  -1161,   1720,  -2649, 
  2467.    165,   -244,    377,   1032,    867,   -456,   -727,   3369, 
  2468.  11822,    -45,    -12,    -32,   -692,  -8531,     24,     38, 
  2469.    -20,   -178,     93,    149,   -625,    329,    525,  -2431,
  2470.   7535,   2422,   1926,   1405,   1599,  -3466,   -358,   -226, 
  2471.   -120,   -156,  -1114,   -886,   -284,   -646,   -207,   -165, 
  2472.   -735,   -236,   -188,   -137,   1041,   -735,   -142,  13209, 
  2473.   1515,    -66,    -33,     -1, -10649,   -140,     46,      9, 
  2474.     -6,   -839,    593,    114,    -96,     68,     13,  -1222, 
  2475.   7950,   6745,  -1444,  -1008,   2721,  -3857,  -2777,   -127, 
  2476.    -62,   -452,  -3273,    700,    594,    489,    415,    -88, 
  2477.  -1320,  -1120,    239,    167,  -4754,  -1379,   4522,   -578, 
  2478.  -5733,  -1379,   -116,  -1248,    -20,  -2006,   -400,   1312, 
  2479.    380,   -167,    -48,    159,  -1663,   -482,   1582,   -202, 
  2480.   3220,   5978,   5923,   2430,  -2689,   -633,  -2181,  -2141, 
  2481.   -360,   -441,  -1175,  -1164,  -2161,   -477,   -886,   -878, 
  2482.    528,    981,    972,    398,    377,   1312,  13978,  -1470, 
  2483.    677,     -8,   -105, -11925,   -132,    -28,    -30,   -321, 
  2484.  -1119,     33,    117,   1254,    -15,    -54,   -577,     60, 
  2485.  -3435,   6770,    314,   -885,   5686,   -720,  -2797,     -6, 
  2486.    -47,  -1973,   1419,     65,   -129,   -185,    366,     16, 
  2487.   1192,  -2349,   -109,    307,   3171,   8774,  -2260,   2679, 
  2488.   3069,   -613,  -4699,   -312,   -438,   -575,  -1698,    437,
  2489.   1210,   -518,  -1435,    369,   -594,  -1643,    423,   -501, 
  2490.   5557,   1509,   5407,   -125,  -7386,  -1884,   -139,  -1784, 
  2491.      0,  -3330,   -511,  -1834,   -498,     42,     11,     41, 
  2492.   2505,    680,   2438,    -56,  -2838,   2595,  13228,    271, 
  2493.   1793,   -491,   -411, -10680,     -4,   -196,    449,   2291, 
  2494.  -2095,     47,    -42,   -219,    310,   -284,  -1447,    -29, 
  2495.    664,   -278,  14966,    951,   -711,    -26,     -4, -13672, 
  2496.    -55,    -30,     11,   -606,    253,    -38,     16,   -869, 
  2497.     28,    -12,    650,     41,    808,   1770,   8658,   5863, 
  2498.  -1486,    -39,   -191,  -4576,  -2098,   -134,    -87,   -427, 
  2499.   -935,   -289,   -633,  -3098,     73,    160,    785,    531, 
  2500.   3063,   1539,   2000,   -542,   9576,   -572,   -144,   -244, 
  2501.    -17,  -5597,   -287,   -374,   -188,    101,     51,     66, 
  2502.  -1790,   -900,  -1169,    317,    514,  14083,   -323,    896, 
  2503.   -891,    -16, -12106,     -6,    -49,    -48,   -442,     10, 
  2504.    277,    -28,   -770,     17,     27,    766,    -17,     48, 
  2505.    892,    158,   5237,  11057,  -1603,    -48,     -1,  -1674, 
  2506.  -7462,   -156,     -8,   -285,    -50,   -602,   -106,  -3534, 
  2507.     87,     15,    512,   1082,  -1612,   2564,  -4296,  12526,
  2508.   5710,   -158,   -401,  -1126,  -9576,  -1990,    252,   -422, 
  2509.    672,   1232,  -1960,   3284,    561,   -893,   1497,  -4365, 
  2510.   4889,  -6878,    612,   6109,   4753,  -1459,  -2887,    -22, 
  2511.  -2277,  -1379,   2052,   -182,    257,  -1823,   2564,   -228, 
  2512.  -1418,   1995,   -177,  -1772,   3053,   -506,   2403,   9625, 
  2513.   1322,   -569,    -15,   -352,  -5655,   -106,     94,   -448, 
  2514.     74,  -1794,    297,  -1412,   -246,     40,   -194,   -777, 
  2515.   -754,  12904,   4480,  -2113,   1471,    -34, -10163,  -1225, 
  2516.   -272,   -132,    594,    206,  -3529,    -97,   1664,    577, 
  2517.     67,  -1159,   -402,    189,   4255,   1476,   5055,   2393, 
  2518.   2912,  -1105,   -132,  -1559,   -349,   -517,   -383,  -1313, 
  2519.   -455,   -621,   -215,   -738,   -756,   -262,   -898,   -425, 
  2520.  -1371,    535,   1417,  14604,   -997,   -114,    -17,   -122, 
  2521. -13017,    -60,     44,    118,    -46,   1222,   -477,  -1263, 
  2522.    -83,     32,     86,    888,   5368,  -1744,   4083,  -1236, 
  2523.   3753,  -1758,   -185,  -1017,    -93,   -860,    571,  -1338, 
  2524.    434,    405,   -131,    308,  -1229,    399,   -935,    283, 
  2525.   1588,  -3097,  14415,   3699,  -1171,   -154,   -585, -12683, 
  2526.   -835,    -83,    300,  -1397,   2725,   -358,    699,  -3255,
  2527.    113,   -221,   1030,    264,    212,   7989,   9471,  -3344, 
  2528.   2009,     -2,  -3895,  -5475,   -682,   -246,   -103,   -123, 
  2529.  -4618,     43,   1630,   1933,    -26,   -979,  -1161,    410, 
  2530.    856,   2294,   -627,   6930,   6929,    -44,   -321,    -24, 
  2531.  -2931,  -2930,   -119,     32,     87,   -362,   -970,    265, 
  2532.   -362,   -970,    265,  -2931,   2357,  -4187,   7162,   7683, 
  2533.   3371,   -339,  -1070,  -3131,  -3603,   -693,    602,  -1030, 
  2534.   1830,  -1105,   1963,  -3359,   -485,    861,  -1474,  -1581, 
  2535.    350,   4585,  14053,  -3819,   1218,     -7,  -1283, -12054, 
  2536.   -890,    -90,    -97,   -300,  -3933,     81,   1068,   3275, 
  2537.    -26,   -341,  -1045,    284,  -3248,   3531,    475,   2137, 
  2538.  11711,   -644,   -761,    -13,   -278,  -8372,    700,     94, 
  2539.   -102,    423,   -460,    -62,   2322,  -2524,   -340,  -1528, 
  2540.  -3017,   3852,   1725,   8440,   5257,   -555,   -905,   -181, 
  2541.  -4348,  -1686,    709,    317,   -405,   1554,  -1984,   -889, 
  2542.    968,  -1236,   -553,  -2708,   -909,   3196,  15512,  -2528, 
  2543.   1066,    -50,   -623, -14686,   -390,    -69,    177,    861, 
  2544.  -3026,   -140,    493,   2393,     59,   -208,  -1009,    164, 
  2545.    959,  -3370,   9617,   9545,  -1761,    -56,   -693,  -5645,
  2546.  -5561,   -189,    197,   -563,   1978,   -558,   1963,  -5603, 
  2547.    103,   -362,   1034,   1026,   7575,  11796,  -4845,   3252, 
  2548.  -1703,  -3502,  -8493,  -1433,   -645,   -177,  -5454,   2240, 
  2549.   3488,  -1503,  -2341,    961,    787,   1226,   -503,    338, 
  2550.   6409,   1722,   1764,  -4191,   6015,  -2507,   -181,   -189, 
  2551.  -1072,  -2208,   -673,   -690,   -185,   1639,    440,    451, 
  2552.  -2353,   -632,   -647,   1538,  -2420,  12161,   5038,   1286, 
  2553.  -2098,   -357,  -9027,  -1549,   -100,   -268,   1796,    744, 
  2554.  -3740,    190,   -954,   -395,   -310,   1557,    645,    164, 
  2555.  -2232,  -1341,   7246,   9470,  -1977,   -304,   -109,  -3204, 
  2556.  -5474,   -238,   -182,    987,    593,   1290,    775,  -4188, 
  2557.   -269,   -161,    874,   1143,   1030,   7034,   4231,   1551, 
  2558.   3077,    -64,  -3019,  -1093,   -146,   -577,   -442,   -266, 
  2559.  -1816,    -97,   -666,   -400,   -193,  -1321,   -794,   -291, 
  2560.   5121,  11835,   -477,  -1749,   2298,  -1601,  -8549,    -13, 
  2561.   -186,   -322,  -3699,    149,    344,    546,   1264,    -50, 
  2562.   -718,  -1660,     66,    245,  -3328,   3827,   5921,   9976, 
  2563.  -1045,   -676,   -894,  -2140,  -6075,    -66,    777,   1203, 
  2564.  -1383,   2027,  -2330,  -3605,   -212,    244,    377,    636,
  2565.   3813,   5718,  -4666,  -3412,   5674,   -887,  -1995,  -1329, 
  2566.   -710,  -1965,  -1331,   1086,   1628,    794,   1191,   -972, 
  2567.  -1320,  -1980,   1616,   1181,   1348,  -3672,  13154,   6938, 
  2568.  -1690,   -110,   -823, -10561,  -2938,   -174,    302,  -1082, 
  2569.   2948,   -570,   1555,  -5570,    139,   -379,   1357,    716, 
  2570.   2151,  -3586,   6949,  12131,  -1224,   -282,   -785,  -2947, 
  2571.  -8982,    -91,    470,   -912,   1521,  -1592,   2655,  -5145, 
  2572.    160,   -268,    519,    906,  -2889,   9647,  10276,  -2728, 
  2573.    995,   -509,  -5680,  -6445,   -454,    -60,   1701,   1812, 
  2574.  -6051,   -481,   1606,   1711,    175,   -586,   -624,    165, 
  2575.   6177,   2184,    555,   1985,   6589,  -2329,   -291,    -18, 
  2576.   -240,  -2650,   -823,   -209,    -74,   -748,   -264,    -67, 
  2577.  -2484,   -878,   -223,   -798,   -492,    391,  17166,   -681, 
  2578.    240,    -14,     -9, -17987,    -28,     -3,     11,    515, 
  2579.   -410,    -20,     16,    713,      7,     -5,   -252,     10, 
  2580.  12628,   5448,  -2630,   3011,  -2695,  -9733,  -1811,   -422, 
  2581.   -553,   -443,  -4199,   2027,    874,  -2321,  -1001,    483, 
  2582.   2077,    896,   -432,    495,  -3628,   -534,   3447,   7002, 
  2583.   6751,   -803,    -17,   -725,  -2992,  -2782,   -118,    763,
  2584.    112,   1550,    228,  -1473,   1495,    220,  -1420,  -2885, 
  2585.  -5239,   5901,   8107,   3650,   4846,  -1675,  -2125,  -4012, 
  2586.   -813,  -1433,   1887,   2592,  -2920,   1167,  -1315,  -1806, 
  2587.   1550,  -1745,  -2398,  -1080,   6157,   6678,   4099,  -1074, 
  2588.   2348,  -2314,  -2722,  -1025,    -70,   -336,  -2509,  -1540, 
  2589.  -1670,    403,    437,    268,   -882,   -957,   -587,    153, 
  2590.   1079,  16099,    242,   -881,   1690,    -71, -15820,     -3, 
  2591.    -47,   -174,  -1060,    -16,   -238,     58,    865,     13, 
  2592.   -111,  -1661,    -25,     90,   -278,    227,  -1039,   1636, 
  2593.  16945,     -4,     -3,    -65,   -163, -17526,      3,    -17, 
  2594.     14,     27,    -22,    103,    287,   -234,   1074,  -1693, 
  2595.  15778,  -1454,    574,   -603,   -107, -15195,   -129,    -20, 
  2596.    -22,      0,   1400,   -553,     51,    581,    -53,     21, 
  2597.    103,     -9,      3,     -3,   2406,   -836,  13224,   7993, 
  2598.  -4266,   -353,    -42, -10673,  -3899,  -1111,    122,  -1942, 
  2599.    674,  -1174,    407,  -6451,    626,   -217,   3443,   2081, 
  2600.   3184,  14368,  -3336,   2255,  -1801,   -619, -12600,   -679, 
  2601.   -310,   -198,  -2793,    648,   2926,   -438,  -1977,    459, 
  2602.    350,   1580,   -366,    247,  -1698,  17076,   2504,   -539,
  2603.   -646,   -176, -17798,   -382,    -17,    -25,   1770,    259, 
  2604.  -2610,    -55,    561,     82,    -67,    673,     98,    -21, 
  2605.   2375,   -797,  -2696,  14483,   5383,   -344,    -38,   -443, 
  2606. -12803,  -1769,    115,    391,   -131,  -2100,    705,   2384, 
  2607.   -780,    262,    886,  -4759,  -2691,   2554,  -4520,   9573, 
  2608.  10655,   -442,   -398,  -1247,  -5594,  -6930,    419,   -742, 
  2609.    704,   1572,  -1492,   2641,   1750,  -1661,   2939,  -6226, 
  2610.  -4332,  -4399,  -1657,   4880,   7375,  -1145,  -1181,   -167, 
  2611.  -1453,  -3319,  -1163,   -438,   -444,   1290,   1310,    493, 
  2612.   1950,   1980,    745,  -2196,  -3498,   7405,   9955,   2693, 
  2613.  -2971,   -746,  -3347,  -6049,   -442,   -538,   1581,   2125, 
  2614.  -4499,    575,  -1217,  -1636,   -634,   1342,   1805,    488, 
  2615.   6717,  -3792,   7739,   2798,   3489,  -2754,   -877,  -3655, 
  2616.   -477,   -743,   1554,  -3173,   1791,  -1147,    647,  -1321, 
  2617.  -1430,    807,  -1648,   -595,   5263,   9770,   3463,   1069, 
  2618.  -3971,  -1690,  -5826,   -732,    -69,   -962,  -3138,  -1112, 
  2619.  -2065,   -343,   -637,   -226,   1275,   2368,    839,    259, 
  2620.   1243,  -2634,  16772,   1871,    332,    -94,   -423, -17169, 
  2621.   -213,     -6,    199,  -1273,   2696,   -142,    300,  -1915,
  2622.    -25,     53,   -339,    -37,   2691,   2836,   3105,   5711, 
  2623.   4817,   -442,   -491,   -588,  -1991,  -1416,   -465,   -510, 
  2624.   -537,   -938,   -988,  -1082,   -791,   -834,   -913,  -1679, 
  2625.   4366,   2944,   7210,   3627,   1161,  -1163,   -529,  -3172, 
  2626.   -803,    -82,   -784,  -1921,  -1295,   -966,   -651,  -1596, 
  2627.   -309,   -208,   -511,   -257,  13888,   3951,   -671,  -2305, 
  2628.   3354, -11773,   -953,    -27,   -324,   -686,  -3349,    569, 
  2629.    161,   1954,    556,    -94,  -2843,   -809,    137,    472, 
  2630.   7053,   5847,   2929,   8378,  -4794,  -3036,  -2086,   -523, 
  2631.  -4284,  -1403,  -2517,  -1261,  -1045,  -3607,  -2990,  -1498, 
  2632.   2064,   1711,    857,   2451,  -2191,  12838,   9182,  -3915, 
  2633.   1617,   -293, -10059,  -5146,   -935,   -159,   1717,   1228, 
  2634.  -7195,   -523,   3068,   2194,    216,  -1267,   -906,    386, 
  2635.  -4881,  13114,   5767,   -435,   4155,  -1454, -10498,  -2030, 
  2636.    -11,  -1054,   3907,   1718,  -4616,   -129,    348,    153, 
  2637.   1238,  -3326,  -1462,    110,   7843,  -1250,    210,   7106, 
  2638.  -5203,  -3754,    -95,     -2,  -3082,  -1652,    598,   -100, 
  2639.     16,  -3402,    542,    -91,   2491,   -397,     66,   2257, 
  2640.  -2463,   8168,  14551,  -3908,   1828,   -370,  -4072, -12923,
  2641.   -932,   -204,   1228,   2188,  -7254,   -587,   1948,   3471, 
  2642.    274,   -911,  -1623,    436,  -1579,    347,   -272,  -2735, 
  2643.  16031,   -152,     -7,     -4,   -456, -15686,     33,    -26, 
  2644.      5,   -263,     58,    -45,   1545,   -340,    266,   2676, 
  2645.  -6327,   1328,   5093,  -5079,   7617,  -2443,   -107,  -1583, 
  2646.  -1574,  -3541,    513,   1967,   -413,  -1961,    411,   1578, 
  2647.   2941,   -617,  -2367,   2361,   3286,  -4509,  11306,  11025, 
  2648.  -2623,   -659,  -1241,  -7802,  -7419,   -420,    904,  -2267, 
  2649.   3112,  -2211,   3034,  -7608,    526,   -722,   1810,   1765, 
  2650.   5567,  17853,  -3754,   1166,   -519,  -1892, -19455,   -860, 
  2651.    -83,    -16,  -6067,   1275,   4090,   -396,  -1271,    267, 
  2652.    176,    566,   -119,     37,  -2136,   -424,  15292,   5108, 
  2653.  -1648,   -278,    -10, -14273,  -1593,   -165,    -55,   1993, 
  2654.    396,    666,    132,  -4768,   -214,    -42,   1538,    514, 
  2655.   2267,  -3297,   2549,  16563,   -791,   -313,   -663,   -396, 
  2656. -16745,    -38,    456,   -352,    513,  -2291,   3333,  -2576, 
  2657.    109,   -159,    123,    799,   3655,   1899,  -3364,   6279, 
  2658.  12510,   -815,   -220,   -690,  -2406,  -9552,   -423,    750, 
  2659.    390,  -1400,   -728,   1289,  -2791,  -1450,   2568,  -4794,
  2660.   8052,   2285,  -6193,   5138,   6003,  -3957,   -318,  -2341, 
  2661.  -1611,  -2199,  -1123,   3044,    864,  -2525,   -716,   1942, 
  2662.  -2950,   -837,   2269,  -1882,   -386,  -2291,   7679,  15387, 
  2663.  -2723,     -9,   -320,  -3599, -14452,   -452,    -54,    181, 
  2664.   1074,    362,   2152,  -7212,    -64,   -380,   1276,   2557, 
  2665.   2777,  -1173,   3984,  13079,   2508,   -470,    -84,   -969, 
  2666. -10440,   -384,    198,   -675,    285,  -2217,    936,  -3180, 
  2667.   -425,    179,   -610,  -2002,  -1879,   1771,  -2684,  16705, 
  2668.   1833,   -215,   -191,   -439, -17032,   -205,    203,   -308, 
  2669.    290,   1916,  -1805,   2736,    210,   -198,    300,  -1869, 
  2670.   1052,   4495,  15519,   1467,  -4032,    -67,  -1233, -14700, 
  2671.   -131,   -992,   -288,   -997,  -4257,    -94,   -402,  -1389, 
  2672.    259,   1106,   3819,    361,   3010,   2544,   6969,   7559, 
  2673.   1996,   -553,   -395,  -2964,  -3487,   -243,   -467,  -1280, 
  2674.  -1082,  -1388,  -1174,  -3215,   -366,   -310,   -849,   -921, 
  2675.  -5209,  -1867,   8713,  10351,   1549,  -1656,   -212,  -4634, 
  2676.  -6540,   -146,   -593,   2770,    993,   3291,   1180,  -5505, 
  2677.    492,    176,   -824,   -979,  -4314,   8513,    913,   7547, 
  2678.  -2723,  -1135,  -4423,    -50,  -3476,   -452,   2241,    240,
  2679.   -474,   1987,  -3921,   -420,   -717,   1415,    151,   1254, 
  2680.  12929,  -1219,   2448,   1757,   6303, -10204,    -90,   -365, 
  2681.   -188,  -2425,    962,  -1932,    182,  -1386,    130,   -262, 
  2682.  -4974,    469,   -941,   -676,   6465,   4132,   3167,   3160, 
  2683.   5697,  -2551,  -1042,   -612,   -609,  -1981,  -1630,  -1249, 
  2684.   -798,  -1247,   -797,   -611,  -2248,  -1437,  -1101,  -1099, 
  2685.  -3636,   4859,  18914,  -1335,    810,   -807,  -1441, -21836, 
  2686.   -108,    -40,   1078,   4198,  -5609,   -296,    396,   1541, 
  2687.    179,   -240,   -936,     66,   8844,   7864,    654,  -4063, 
  2688.  -5680,  -4774,  -3774,    -26,  -1007,  -1969,  -4245,   -353, 
  2689.   -314,   2193,   1950,    162,   3066,   2726,    226,  -1408, 
  2690.   1859,   2634,   9228,    996,   9464,   -211,   -423,  -5197, 
  2691.    -60,  -5467,   -299,  -1047,  -1483,   -113,   -160,   -561, 
  2692.  -1074,  -1521,  -5330,   -575,   2949,  12260,  10290,   -497, 
  2693.  -3943,   -530,  -9174,  -6463,    -15,   -949,  -2206,  -1852, 
  2694.  -7700,     89,    372,    312,    709,   2950,   2476,   -119, 
  2695.  -2903,   1552,  14867,   9970,   -496,   -514,   -147, -13491, 
  2696.  -6068,    -15,    275,   2634,  -1408,   1766,   -944,  -9047, 
  2697.    -87,     47,    450,    302,   3243,   8234,   7586,   3373,
  2698.   2151,   -642,  -4138,  -3512,   -694,   -282,  -1630,  -1501, 
  2699.  -3812,   -667,  -1695,  -1561,   -425,  -1081,   -996,   -442, 
  2700.  -9631,     60,   3501,   5359,  10150,  -5662,      0,   -748, 
  2701.  -1752,  -6288,     35,   2058,    -12,   3150,    -19,  -1145, 
  2702.   5967,    -37,  -2169,  -3320,  -6874,  -2553,  -5446,  -2195, 
  2703.  -7841,  -2884,   -397,  -1810,   -294,  -3753,  -1071,  -2285, 
  2704.   -848,   -921,   -342,   -729,  -3290,  -1221,  -2606,  -1050, 
  2705.  -3413,  -1141,   4630,  13612,   7897,   -711,    -79,  -1308, 
  2706. -11310,  -3806,   -237,    964,    322,   2836,    948,  -3847, 
  2707.   1645,    550,  -2231,  -6561,   4410,  -5678,   8006,  -3992, 
  2708.   3811,  -1187,  -1968,  -3912,   -973,   -886,   1528,  -2155, 
  2709.   2775,   1074,  -1383,   1951,  -1025,   1321,  -1862,    928, 
  2710.   5659,  11535,   2203,   -452,   7169,  -1954,  -8121,   -296, 
  2711.    -12,  -3137,  -3984,   -761,  -1551,    156,    318,     60, 
  2712.  -2476,  -5048,   -964,    197,   2914,  -2914,   3485,  -3965, 
  2713.  13675,   -518,   -518,   -741,   -959, -11414,    518,   -620, 
  2714.    620,    705,   -705,    843,  -2433,   2432,  -2909,   3310, 
  2715.   7843,   1907,   1022,   8882,   7972,  -3755,   -222,    -63, 
  2716.  -4815,  -3879,   -913,   -489,   -119,  -4252,  -1034,   -554,
  2717.  -3816,   -928,   -497,  -4322,  13807,   9531,   1436,   1612,
  2718.   1779, -11636,  -5544,   -125,   -158,   -193,  -8032,  -1210,
  2719.   -835,  -1358,   -938,   -141,  -1499,  -1035,   -156,   -175,
  2720.  13620,  -5337,   5450,  -2263,   1723, -11322,  -1738,  -1813,
  2721.   -312,   -181,   4436,  -4531,   1775,   1881,   -737,    752,
  2722.  -1432,    561,   -573,    238,   5297,   8374,   8872,   7694,
  2723.   6538,  -1712,  -4280,  -4804,  -3613,  -2609,  -2707,  -2868,
  2724.  -4534,  -2487,  -3932,  -4166,  -2113,  -3341,  -3540,  -3070 };
  2725. /*
  2726. **  AcbkGainTablePtr:
  2727. **
  2728. **  Purpose:
  2729. **      Contains pointers to 85 and 170 element codebooks
  2730. **
  2731. */
  2732. Word16  *AcbkGainTablePtr[2] = {
  2733.    AcbkGainTable085 ,
  2734.    AcbkGainTable170 ,
  2735.    } ;
  2736. /*
  2737. **  LpfConstTable:
  2738. **
  2739. **  Purpose:
  2740. **      Sets the postfilter gain weighting factor.
  2741. **
  2742. **  Table Structure:
  2743. **      (0.1875 , 0.25) in Q15 ( i.e. scale by 32768 ).
  2744. */
  2745. Word16   LpfConstTable[2] = {
  2746.    0x1800 ,
  2747.    0x2000 ,
  2748.    } ;
  2749. /*
  2750. **  epsi170:
  2751. **
  2752. **  Purpose:
  2753. **      At the lower bitrate, the pitch contribution is added
  2754. **      into the output vector of ACELP when the pitch period is
  2755. **      less than 60 samples (one subframe). The pitch contribution
  2756. **      is estimated by a 1 tap long term predictor (LTP) instead of
  2757. **      the 5 tap LTP used in pitch prediction. The values in epsi170
  2758. **      effectively choose one of the 5 vectors used in the 5 tap LTP.
  2759. **
  2760. **  Table Structure:
  2761. **      The table is indexed by the index into the AcbkGainTable170
  2762. **      table (determined in Find_Acbk). The value, 60, is used only
  2763. **      as a place holder. They correspond to zeros in the gain170
  2764. **      table, which is the coefficient of the 1 tap long term
  2765. **      predictor (LTP).  The rest of the values range from -2 to +2.
  2766. **      These values pick one vector among the 5 vectors centered one
  2767. **      pitch period behind the current vector. (In contrast, the 5
  2768. **      tap LTP uses all five vectors centered one pitch period back.)
  2769. */
  2770. Word16 epsi170[170] = {
  2771.     60,      0,     60,      0,      1,      0,      0,      1, 
  2772.     -1,      1,      0,     -1,      2,     -2,      0,      1, 
  2773.      0,      0,     -1,      0,      0,      0,      1,      0, 
  2774.     -1,     -1,      1,     -1,      1,     -2,      1,     -1,
  2775.     60,      0,      0,      1,      1,      0,      1,      1, 
  2776.     -1,      1,     -1,     -1,     -1,      0,     60,     -2, 
  2777.      0,      1,      0,     -1,      1,      1,      0,      1, 
  2778.      2,     -1,      0,      1,      0,      0,      0,     60, 
  2779.     -1,      1,      1,      2,     -1,      1,     -1,     60,
  2780.     -1,      0,      1,      0,     -1,      0,      0,      0, 
  2781.      1,     -1,      0,      1,     -1,      0,     -1,      0, 
  2782.      1,     60,      0,      0,      1,      1,      0,      2, 
  2783.      1,      0,      1,     -2,      0,     -1,      1,      0, 
  2784.     -1,      1,      0,      0,      1,      0,      0,      0, 
  2785.     60,      1,      1,     -1,     -1,      2,     -2,      0,
  2786.     -1,     -1,     60,      2,     60,      0,      0,     60, 
  2787.      0,      0,      0,     -2,     60,     -1,      0,     60,
  2788.      0,      2,      0,      0,     -1,      0,      1,      2,
  2789.     60,      1,      1,      1,      0,      0,     60,      0,
  2790.     60,      0,      0,     60,     60,     -1,      0,      0,
  2791.     60,     60,      1,      0,     60,      2,     60,     -2,
  2792.     -2,      0 };
  2793. /*
  2794. **  gain170:
  2795. **
  2796. **  Purpose:
  2797. **      At the lower bitrate, the pitch contribution is added into
  2798. **      the output vector of ACELP when the pitch period is less than
  2799. **      60 samples (one subframe). The pitch contribution
  2800. **      is estimated by a 1 tap long term predictor (LTP) instead of
  2801. **      the 5 tap LTP used in pitch prediction. This table holds the
  2802. **      coefficient for the one tap filter.
  2803. **
  2804. **  Table Structure:
  2805. **      The table is indexed by the index into the AcbkGainTable170
  2806. **      table (determined in Find_Acbk). The values are in Q12.
  2807. */
  2808. Word16 gain170[170] = {
  2809.      0,   2489,      0,   5217,   6171,   3953,  10364,   9357,
  2810.   8843,   9396,   5794,  10816,  11606,  12072,   8616,  12170,
  2811.  14440,   7787,  13721,  18205,  14471,  15807,  15275,  13480,
  2812.  18375,      0,  11194,  13010,  18836,  20354,  16233,      0,
  2813.      0,  12130,  13385,  17834,  20875,  21996,      0,  18277,
  2814.  21321,  13738,  19094,  20387,      0,  21008,      0,  22807,
  2815.  15900,      0,  17989,  22259,  24395,  23138,  23948,  22997,
  2816.  22604,  25942,  26246,  25321,  26423,  24061,  27247,      0,
  2817.  25572,  23918,  25930,  26408,  19049,  27357,  24538,      0,
  2818.  25093,  28549,      0,  22793,  25659,  29377,  30276,  26198,
  2819.  22521,  28919,  27384,  30162,      0,  24237,  30062,  21763,
  2820.  30917,      0,  31284,  29433,  26821,  28655,  31327,  30799,
  2821.  31389,  32322,  31760,  31830,  26936,  31180,  30875,  27873,
  2822.  30429,  31050,      0,  31912,  31611,  31565,  25557,  31357,
  2823.      0,  29536,  28985,  26984,  31587,  30836,  31133,  30243,
  2824.  30742,  32090,      0,  30902,      0,  30027,  29042,      0,
  2825.  31756,  24553,  25636,  30501,      0,  29617,  30649,      0,
  2826.  29274,  30415,  27480,  31213,  28147,  30600,  31652,  29068,
  2827.      0,  28571,  28730,  31422,  28257,  24797,      0,      0,
  2828.      0,  22105,  27852,      0,      0,  24214,  24642,  23305,
  2829.      0,      0,  22883,  21601,      0,  25650,      0,  31253,
  2830.  25144,  17998 };
  2831. /*
  2832. **  tabgain170:
  2833. **
  2834. **  Purpose:
  2835. **      In the taming procedure at the encoder the 170 5-taps LT filters
  2836. **      are modelled as 1-tap filter. This table gives the gain
  2837. **      value attributed to each filter as a worst case gain
  2838. **
  2839. **  Table Structure:
  2840. **      The table is indexed by the index into the AcbkGainTable170
  2841. **      table (determined in Find_Acbk). The values are in Q13.
  2842. */
  2843. Word16 tabgain170[170] = {
  2844.   1024,   1591,   1678,   1891,   2120,   2399,   2966,   3049,
  2845.   3185,   3317,   3433,   3523,   3729,   3779,   3789,   4262,
  2846.   4450,   4469,   4713,   4944,   4950,   4980,   5010,   5032,
  2847.   5299,   5389,   5389,   5389,   5646,   5701,   5733,   5765,
  2848.   5997,   5997,   6150,   6211,   6336,   6360,   6415,   6415,
  2849.   6430,   6440,   6461,   6461,   6512,   6601,   6787,   6872,
  2850.   6931,   6972,   6984,   7056,   7056,   7105,   7117,   7123,
  2851.   7136,   7161,   7167,   7180,   7180,   7262,   7308,   7334,
  2852.   7334,   7387,   7407,   7434,   7441,   7441,   7481,   7536,
  2853.   7564,   7592,   7685,   7714,   7758,   7772,   7794,   7802,
  2854.   7817,   7839,   7869,   7885,   7907,   7946,   7992,   8039,
  2855.   8063,   8087,   8087,   8167,   8184,   8200,   8200,   8241,
  2856.   8266,   8283,   8308,   8308,   8334,   8376,   8402,   8463,
  2857.   8516,   8524,   8533,   8641,   8669,   8696,   8752,   8761,
  2858.   8799,   8828,   8943,   9112,   9122,   9133,   9153,   9288,
  2859.   9299,   9373,   9384,   9384,   9405,   9416,   9471,   9503,
  2860.   9559,   9581,   9660,   9660,   9718,   9799,   9823,   9846,
  2861.   9846,   9930,  10039,  10164,  10227,  10291,  10436,  10503,
  2862.  10516,  10530,  10598,  10611,  10625,  11040,  11070,  11100,
  2863.  11115,  11315,  11331,  11804,  12100,  12263,  12263,  12300,
  2864.  12337,  12431,  12800,  12962,  13065,  13496,  13815,  14100,
  2865.  14198,  18409 };
  2866. /*
  2867. **  tabgain85:
  2868. **
  2869. **  Purpose:
  2870. **      In the taming procedure at the encoder the 85 5-taps LT filters
  2871. **      are modelled as 1-tap filter. This table gives the gain
  2872. **      value attributed to each filter as a worst case gain
  2873. **
  2874. **  Table Structure:
  2875. **      The table is indexed by the index into the AcbkGainTable085
  2876. **      table (determined in Find_Acbk). The values are in Q13.
  2877. */
  2878. Word16 tabgain85[85] = {
  2879.   1024,   1308,   1906,   2291,   2511,   2736,   3298,   3489,
  2880.   3531,   3844,   4360,   4541,   4684,   4813,   5069,   5528,
  2881.   5577,   5713,   5923,   5958,   5958,   6064,   6132,   6331,
  2882.   6370,   6527,   6533,   6575,   6633,   6671,   6832,   6832,
  2883.   6972,   6996,   7199,   7205,   7414,   7529,   7543,   7543,
  2884.   7692,   7758,   7839,   7839,   7869,   7992,   8000,   8016,
  2885.   8055,   8079,   8119,   8208,   8250,   8266,   8291,   8300,
  2886.   8325,   8402,   8445,   8605,   8623,   8687,   8752,   8837,
  2887.   8847,   8973,   9002,   9012,   9184,   9593,   9672,   9752,
  2888.   9846,   9978,  10139,  10202,  10317,  10476,  10598,  10598,
  2889.  10695,  11425,  11670,  14629,  15255 };
  2890. /*
  2891. **  fact   :
  2892. **  L_bseg :
  2893. **  base   :
  2894. **
  2895. **  Purpose:
  2896. **      Quantization of the SID gain procedure
  2897. **      table fact :
  2898. **      for n = 0 :  used to quantize the excitation energy estimation
  2899. **                   in Comp_Info()
  2900. **                   fact(0) = 32768 / (2 * SubFrLen)
  2901. **
  2902. **      for n >= 1 : used for average energy calculation
  2903. **                   fact(n) = fact_mul**2 * 32768 / n * Frame
  2904. **      table L_bseg : for each segment of the pseudo-log quantizer,
  2905. **                     gives the energy level corresponding to
  2906. **                     the first value of the next segment
  2907. **      table base : first code of each segment
  2908. **
  2909. */
  2910. Word16 fact[4] = {273, 998, 499, 333};
  2911. Word32 L_bseg[3] = {2048L, 18432L, 231233L}; /* Bug fixed 24-09-96 */
  2912. Word16 base[3] = {0, 32, 96};