/******************************************************************************
 *                                                                            *
 * Copyright (c) 1999-2003 Wimba S.A., All Rights Reserved.                   *
 *                                                                            *
 * COPYRIGHT:                                                                 *
 *      This software is the property of Wimba S.A.                           *
 *      This software is redistributed under the Xiph.org variant of          *
 *      the BSD license.                                                      *
 *      Redistribution and use in source and binary forms, with or without    *
 *      modification, are permitted provided that the following conditions    *
 *      are met:                                                              *
 *      - Redistributions of source code must retain the above copyright      *
 *      notice, this list of conditions and the following disclaimer.         *
 *      - Redistributions in binary form must reproduce the above copyright   *
 *      notice, this list of conditions and the following disclaimer in the   *
 *      documentation and/or other materials provided with the distribution.  *
 *      - Neither the name of Wimba, the Xiph.org Foundation nor the names of *
 *      its contributors may be used to endorse or promote products derived   *
 *      from this software without specific prior written permission.         *
 *                                                                            *
 * WARRANTIES:                                                                *
 *      This software is made available by the authors in the hope            *
 *      that it will be useful, but without any warranty.                     *
 *      Wimba S.A. is not liable for any consequence related to the           *
 *      use of the provided software.                                         *
 *                                                                            *
 * Class: Codebook.java                                                       *
 *                                                                            *
 * Author: James LAWRENCE                                                     *
 * Modified by: Marc GIMPEL                                                   *
 * Based on code by: Jean-Marc VALIN                                          *
 *                                                                            *
 * Date: March 2003                                                           *
 *                                                                            *
 ******************************************************************************/

/* $Id: Codebook.java,v 1.2 2004/10/21 16:21:57 mgimpel Exp $ */

/* Copyright (C) 2002 Jean-Marc Valin 

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   
   - Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
   
   - Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
   
   - Neither the name of the Xiph.org Foundation nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.
   
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package org.xiph.speex;

/**
 * Codebook tables
 * 
 * @author Jim Lawrence, helloNetwork.com
 * @author Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
 * @version $Revision: 1.2 $
 */
public interface Codebook
{
  /**
   * Excitation Codebook
   */
  public static final int[] exc_20_32_table = {
    12,32,25,46,36,33,9,14,-3,6,1,-8,0,-10,-5,-7,-7,-7,-5,-5,
    31,-27,24,-32,-4,10,-11,21,-3,19,23,-9,22,24,-10,-1,-10,-13,-7,-11,
    42,-33,31,19,-8,0,-10,-16,1,-21,-17,10,-8,14,8,4,11,-2,5,-2,
    -33,11,-16,33,11,-4,9,-4,11,2,6,-5,8,-5,11,-4,-6,26,-36,-16,
    0,4,-2,-8,12,6,-1,34,-46,-22,9,9,21,9,5,-66,-5,26,2,10,
    13,2,19,9,12,-81,3,13,13,0,-14,22,-35,6,-7,-4,6,-6,10,-6,
    -31,38,-33,0,-10,-11,5,-12,12,-17,5,0,-6,13,-9,10,8,25,33,2,
    -12,8,-6,10,-2,21,7,17,43,5,11,-7,-9,-20,-36,-20,-23,-4,-4,-3,
    27,-9,-9,-49,-39,-38,-11,-9,6,5,23,25,5,3,3,4,1,2,-3,-1,
    87,39,17,-21,-9,-19,-9,-15,-13,-14,-17,-11,-10,-11,-8,-6,-1,-3,-3,-1,
    -54,-34,-27,-8,-11,-4,-5,0,0,4,8,6,9,7,9,7,6,5,5,5,
    48,10,19,-10,12,-1,9,-3,2,5,-3,2,-2,-2,0,-2,-26,6,9,-7,
    -16,-9,2,7,7,-5,-43,11,22,-11,-9,34,37,-15,-13,-6,1,-1,1,1,
    -64,56,52,-11,-27,5,4,3,1,2,1,3,-1,-4,-4,-10,-7,-4,-4,2,
    -1,-7,-7,-12,-10,-15,-9,-5,-5,-11,-16,-13,6,16,4,-13,-16,-10,-4,2,
    -47,-13,25,47,19,-14,-20,-8,-17,0,-3,-13,1,6,-17,-14,15,1,10,6,
    -24,0,-10,19,-69,-8,14,49,17,-5,33,-29,3,-4,0,2,-8,5,-6,2,
    120,-56,-12,-47,23,-9,6,-5,1,2,-5,1,-10,4,-1,-1,4,-1,0,-3,
    30,-52,-67,30,22,11,-1,-4,3,0,7,2,0,1,-10,-4,-8,-13,5,1,
    1,-1,5,13,-9,-3,-10,-62,22,48,-4,-6,2,3,5,1,1,4,1,13,
    3,-20,10,-9,13,-2,-4,9,-20,44,-1,20,-32,-67,19,0,28,11,8,2,
    -11,15,-19,-53,31,2,34,10,6,-4,-58,8,10,13,14,1,12,2,0,0,
    -128,37,-8,44,-9,26,-3,18,2,6,11,-1,9,1,5,3,0,1,1,2,
    12,3,-2,-3,7,25,9,18,-6,-37,3,-8,-16,3,-10,-7,17,-34,-44,11,
    17,-15,-3,-16,-1,-13,11,-46,-65,-2,8,13,2,4,4,5,15,5,9,6,
    8,2,8,3,10,-1,3,-3,6,-2,3,3,-5,10,-11,7,6,-2,6,-2,
    -9,19,-12,12,-28,38,29,-1,12,2,5,23,-10,3,4,-15,21,-4,3,3,
    6,17,-9,-4,-8,-20,26,5,-10,6,1,-19,18,-15,-12,47,-6,-2,-7,-9,
    -1,-17,-2,-2,-14,30,-14,2,-7,-4,-1,-12,11,-25,16,-3,-12,11,-7,7,
    -17,1,19,-28,31,-7,-10,7,-10,3,12,5,-16,6,24,41,-29,-54,0,1,
    7,-1,5,-6,13,10,-4,-8,8,-9,-27,-53,-38,-1,10,19,17,16,12,12,
    0,3,-7,-4,13,12,-31,-14,6,-5,3,5,17,43,50,25,10,1,-6,-2 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] exc_10_16_table = {
    22,39,14,44,11,35,-2,23,-4,6,
    46,-28,13,-27,-23,12,4,20,-5,9,
    37,-18,-23,23,0,9,-6,-20,4,-1,
    -17,-5,-4,17,0,1,9,-2,1,2,
    2,-12,8,-25,39,15,9,16,-55,-11,
    9,11,5,10,-2,-60,8,13,-6,11,
    -16,27,-47,-12,11,1,16,-7,9,-3,
    -29,9,-14,25,-19,34,36,12,40,-10,
    -3,-24,-14,-37,-21,-35,-2,-36,3,-6,
    67,28,6,-17,-3,-12,-16,-15,-17,-7,
    -59,-36,-13,1,7,1,2,10,2,11,
    13,10,8,-2,7,3,5,4,2,2,
    -3,-8,4,-5,6,7,-42,15,35,-2,
    -46,38,28,-20,-9,1,7,-3,0,-2,
    -5,-4,-2,-4,-8,-3,-8,-5,-7,-4,
    -15,-28,52,32,5,-5,-17,-20,-10,-1 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] exc_10_32_table = {
    7,17,17,27,25,22,12,4,-3,0,
    28,-36,39,-24,-15,3,-9,15,-5,10,
    31,-28,11,31,-21,9,-11,-11,-2,-7,
    -25,14,-22,31,4,-14,19,-12,14,-5,
    4,-7,4,-5,9,0,-2,42,-47,-16,
    1,8,0,9,23,-57,0,28,-11,6,
    -31,55,-45,3,-5,4,2,-2,4,-7,
    -3,6,-2,7,-3,12,5,8,54,-10,
    8,-7,-8,-24,-25,-27,-14,-5,8,5,
    44,23,5,-9,-11,-11,-13,-9,-12,-8,
    -29,-8,-22,6,-15,3,-12,-1,-5,-3,
    34,-1,29,-16,17,-4,12,2,1,4,
    -2,-4,2,-1,11,-3,-52,28,30,-9,
    -32,25,44,-20,-24,4,6,-1,0,0,
    -3,7,-4,-4,-7,-6,-9,-2,-10,-7,
    -25,-10,22,29,13,-13,-22,-13,-4,0,
    -4,-16,10,15,-36,-24,28,25,-1,-3,
    66,-33,-11,-15,6,0,3,4,-2,5,
    24,-20,-47,29,19,-2,-4,-1,0,-1,
    -2,3,1,8,-11,5,5,-57,28,28,
    0,-16,4,-4,12,-6,-1,2,-20,61,
    -9,24,-22,-42,29,6,17,8,4,2,
    -65,15,8,10,5,6,5,3,2,-2,
    -3,5,-9,4,-5,23,13,23,-3,-63,
    3,-5,-4,-6,0,-3,23,-36,-46,9,
    5,5,8,4,9,-5,1,-3,10,1,
    -6,10,-11,24,-47,31,22,-12,14,-10,
    6,11,-7,-7,7,-31,51,-12,-6,7,
    6,-17,9,-11,-20,52,-19,3,-6,-6,
    -8,-5,23,-41,37,1,-21,10,-14,8,
    7,5,-15,-15,23,39,-26,-33,7,2,
    -32,-30,-21,-8,4,12,17,15,14,11 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] exc_5_256_table = {
    -8,-37,5,-43,5,
    73,61,39,12,-3,
    -61,-32,2,42,30,
    -3,17,-27,9,34,
    20,-1,-5,2,23,
    -7,-46,26,53,-47,
    20,-2,-33,-89,-51,
    -64,27,11,15,-34,
    -5,-56,25,-9,-1,
    -29,1,40,67,-23,
    -16,16,33,19,7,
    14,85,22,-10,-10,
    -12,-7,-1,52,89,
    29,11,-20,-37,-46,
    -15,17,-24,-28,24,
    2,1,0,23,-101,
    23,14,-1,-23,-18,
    9,5,-13,38,1,
    -28,-28,4,27,51,
    -26,34,-40,35,47,
    54,38,-54,-26,-6,
    42,-25,13,-30,-36,
    18,41,-4,-33,23,
    -32,-7,-4,51,-3,
    17,-52,56,-47,36,
    -2,-21,36,10,8,
    -33,31,19,9,-5,
    -40,10,-9,-21,19,
    18,-78,-18,-5,0,
    -26,-36,-47,-51,-44,
    18,40,27,-2,29,
    49,-26,2,32,-54,
    30,-73,54,3,-5,
    36,22,53,10,-1,
    -84,-53,-29,-5,3,
    -44,53,-51,4,22,
    71,-35,-1,33,-5,
    -27,-7,36,17,-23,
    -39,16,-9,-55,-15,
    -20,39,-35,6,-39,
    -14,18,48,-64,-17,
    -15,9,39,81,37,
    -68,37,47,-21,-6,
    -104,13,6,9,-2,
    35,8,-23,18,42,
    45,21,33,-5,-49,
    9,-6,-43,-56,39,
    2,-16,-25,87,1,
    -3,-9,17,-25,-11,
    -9,-1,10,2,-14,
    -14,4,-1,-10,28,
    -23,40,-32,26,-9,
    26,4,-27,-23,3,
    42,-60,1,49,-3,
    27,10,-52,-40,-2,
    18,45,-23,17,-44,
    3,-3,17,-46,52,
    -40,-47,25,75,31,
    -49,53,30,-30,-32,
    -36,38,-6,-15,-16,
    54,-27,-48,3,38,
    -29,-32,-22,-14,-4,
    -23,-13,32,-39,9,
    8,-45,-13,34,-16,
    49,40,32,31,28,
    23,23,32,47,59,
    -68,8,62,44,25,
    -14,-24,-65,-16,36,
    67,-25,-38,-21,4,
    -33,-2,42,5,-63,
    40,11,26,-42,-23,
    -61,79,-31,23,-20,
    10,-32,53,-25,-36,
    10,-26,-5,3,0,
    -71,5,-10,-37,1,
    -24,21,-54,-17,1,
    -29,-25,-15,-27,32,
    68,45,-16,-37,-18,
    -5,1,0,-77,71,
    -6,3,-20,71,-67,
    29,-35,10,-30,19,
    4,16,17,5,0,
    -14,19,2,28,26,
    59,3,2,24,39,
    55,-50,-45,-18,-17,
    33,-35,14,-1,1,
    8,87,-35,-29,0,
    -27,13,-7,23,-13,
    37,-40,50,-35,14,
    19,-7,-14,49,54,
    -5,22,-2,-29,-8,
    -27,38,13,27,48,
    12,-41,-21,-15,28,
    7,-16,-24,-19,-20,
    11,-20,9,2,13,
    23,-20,11,27,-27,
    71,-69,8,2,-6,
    22,12,16,16,9,
    -16,-8,-17,1,25,
    1,40,-37,-33,66,
    94,53,4,-22,-25,
    -41,-42,25,35,-16,
    -15,57,31,-29,-32,
    21,16,-60,45,15,
    -1,7,57,-26,-47,
    -29,11,8,15,19,
    -105,-8,54,27,10,
    -17,6,-12,-1,-10,
    4,0,23,-10,31,
    13,11,10,12,-64,
    23,-3,-8,-19,16,
    52,24,-40,16,10,
    40,5,9,0,-13,
    -7,-21,-8,-6,-7,
    -21,59,16,-53,18,
    -60,11,-47,14,-18,
    25,-13,-24,4,-39,
    16,-28,54,26,-67,
    30,27,-20,-52,20,
    -12,55,12,18,-16,
    39,-14,-6,-26,56,
    -88,-55,12,25,26,
    -37,6,75,0,-34,
    -81,54,-30,1,-7,
    49,-23,-14,21,10,
    -62,-58,-57,-47,-34,
    15,-4,34,-78,31,
    25,-11,7,50,-10,
    42,-63,14,-36,-4,
    57,55,57,53,42,
    -42,-1,15,40,37,
    15,25,-11,6,1,
    31,-2,-6,-1,-7,
    -64,34,28,30,-1,
    3,21,0,-88,-12,
    -56,25,-28,40,8,
    -28,-14,9,12,2,
    -6,-17,22,49,-6,
    -26,14,28,-20,4,
    -12,50,35,40,13,
    -38,-58,-29,17,30,
    22,60,26,-54,-39,
    -12,58,-28,-63,10,
    -21,-8,-12,26,-62,
    6,-10,-11,-22,-6,
    -7,4,1,18,2,
    -70,11,14,4,13,
    19,-24,-34,24,67,
    17,51,-21,13,23,
    54,-30,48,1,-13,
    80,26,-16,-2,13,
    -4,6,-30,29,-24,
    73,-58,30,-27,20,
    -2,-21,41,45,30,
    -27,-3,-5,-18,-20,
    -49,-3,-35,10,42,
    -19,-67,-53,-11,9,
    13,-15,-33,-51,-30,
    15,7,25,-30,4,
    28,-22,-34,54,-29,
    39,-46,20,16,34,
    -4,47,75,1,-44,
    -55,-24,7,-1,9,
    -42,50,-8,-36,41,
    68,0,-4,-10,-23,
    -15,-50,64,36,-9,
    -27,12,25,-38,-47,
    -37,32,-49,51,-36,
    2,-4,69,-26,19,
    7,45,67,46,13,
    -63,46,15,-47,4,
    -41,13,-6,5,-21,
    37,26,-55,-7,33,
    -1,-28,10,-17,-64,
    -14,0,-36,-17,93,
    -3,-9,-66,44,-21,
    3,-12,38,-6,-13,
    -12,19,13,43,-43,
    -10,-12,6,-5,9,
    -49,32,-5,2,4,
    5,15,-16,10,-21,
    8,-62,-8,64,8,
    79,-1,-66,-49,-18,
    5,40,-5,-30,-45,
    1,-6,21,-32,93,
    -18,-30,-21,32,21,
    -18,22,8,5,-41,
    -54,80,22,-10,-7,
    -8,-23,-64,66,56,
    -14,-30,-41,-46,-14,
    -29,-37,27,-14,42,
    -2,-9,-29,34,14,
    33,-14,22,4,10,
    26,26,28,32,23,
    -72,-32,3,0,-14,
    35,-42,-78,-32,6,
    29,-18,-45,-5,7,
    -33,-45,-3,-22,-34,
    8,-8,4,-51,-25,
    -9,59,-78,21,-5,
    -25,-48,66,-15,-17,
    -24,-49,-13,25,-23,
    -64,-6,40,-24,-19,
    -11,57,-33,-8,1,
    10,-52,-54,28,39,
    49,34,-11,-61,-41,
    -43,10,15,-15,51,
    30,15,-51,32,-34,
    -2,-34,14,18,16,
    1,1,-3,-3,1,
    1,-18,6,16,48,
    12,-5,-42,7,36,
    48,7,-20,-10,7,
    12,2,54,39,-38,
    37,54,4,-11,-8,
    -46,-10,5,-10,-34,
    46,-12,29,-37,39,
    36,-11,24,56,17,
    14,20,25,0,-25,
    -28,55,-7,-5,27,
    3,9,-26,-8,6,
    -24,-10,-30,-31,-34,
    18,4,22,21,40,
    -1,-29,-37,-8,-21,
    92,-29,11,-3,11,
    73,23,22,7,4,
    -44,-9,-11,21,-13,
    11,9,-78,-1,47,
    114,-12,-37,-19,-5,
    -11,-22,19,12,-30,
    7,38,45,-21,-8,
    -9,55,-45,56,-21,
    7,17,46,-57,-87,
    -6,27,31,31,7,
    -56,-12,46,21,-5,
    -12,36,3,3,-21,
    43,19,12,-7,9,
    -14,0,-9,-33,-91,
    7,26,3,-11,64,
    83,-31,-46,25,2,
    9,5,2,2,-1,
    20,-17,10,-5,-27,
    -8,20,8,-19,16,
    -21,-13,-31,5,5,
    42,24,9,34,-20,
    28,-61,22,11,-39,
    64,-20,-1,-30,-9,
    -20,24,-25,-24,-29,
    22,-60,6,-5,41,
    -9,-87,14,34,15,
    -57,52,69,15,-3,
    -102,58,16,3,6,
    60,-75,-32,26,7,
    -57,-27,-32,-24,-21,
    -29,-16,62,-46,31,
    30,-27,-15,7,15 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] exc_5_64_table = {
    1,5,-15,49,-66,
    -48,-4,50,-44,7,
    37,16,-18,25,-26,
    -26,-15,19,19,-27,
    -47,28,57,5,-17,
    -32,-41,68,21,-2,
    64,56,8,-16,-13,
    -26,-9,-16,11,6,
    -39,25,-19,22,-31,
    20,-45,55,-43,10,
    -16,47,-40,40,-20,
    -51,3,-17,-14,-15,
    -24,53,-20,-46,46,
    27,-68,32,3,-18,
    -5,9,-31,16,-9,
    -10,-1,-23,48,95,
    47,25,-41,-32,-3,
    15,-25,-55,36,41,
    -27,20,5,13,14,
    -22,5,2,-23,18,
    46,-15,17,-18,-34,
    -5,-8,27,-55,73,
    16,2,-1,-17,40,
    -78,33,0,2,19,
    4,53,-16,-15,-16,
    -28,-3,-13,49,8,
    -7,-29,27,-13,32,
    20,32,-61,16,14,
    41,44,40,24,20,
    7,4,48,-60,-77,
    17,-6,-48,65,-15,
    32,-30,-71,-10,-3,
    -6,10,-2,-7,-29,
    -56,67,-30,7,-5,
    86,-6,-10,0,5,
    -31,60,34,-38,-3,
    24,10,-2,30,23,
    24,-41,12,70,-43,
    15,-17,6,13,16,
    -13,8,30,-15,-8,
    5,23,-34,-98,-4,
    -13,13,-48,-31,70,
    12,31,25,24,-24,
    26,-7,33,-16,8,
    5,-11,-14,-8,-65,
    13,10,-2,-9,0,
    -3,-68,5,35,7,
    0,-31,-1,-17,-9,
    -9,16,-37,-18,-1,
    69,-48,-28,22,-21,
    -11,5,49,55,23,
    -86,-36,16,2,13,
    63,-51,30,-11,13,
    24,-18,-6,14,-19,
    1,41,9,-5,27,
    -36,-44,-34,-37,-21,
    -26,31,-39,15,43,
    5,-8,29,20,-8,
    -20,-52,-28,-1,13,
    26,-34,-10,-9,27,
    -8,8,27,-66,4,
    12,-22,49,10,-77,
    32,-18,3,-38,12,
    -3,-1,2,2,0 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] exc_8_128_table = {
    -14,9,13,-32,2,-10,31,-10,
    -8,-8,6,-4,-1,10,-64,23,
    6,20,13,6,8,-22,16,34,
    7,42,-49,-28,5,26,4,-15,
    41,34,41,32,33,24,23,14,
    8,40,34,4,-24,-41,-19,-15,
    13,-13,33,-54,24,27,-44,33,
    27,-15,-15,24,-19,14,-36,14,
    -9,24,-12,-4,37,-5,16,-34,
    5,10,33,-15,-54,-16,12,25,
    12,1,2,0,3,-1,-4,-4,
    11,2,-56,54,27,-20,13,-6,
    -46,-41,-33,-11,-5,7,12,14,
    -14,-5,8,20,6,3,4,-8,
    -5,-42,11,8,-14,25,-2,2,
    13,11,-22,39,-9,9,5,-45,
    -9,7,-9,12,-7,34,-17,-102,
    7,2,-42,18,35,-9,-34,11,
    -5,-2,3,22,46,-52,-25,-9,
    -94,8,11,-5,-5,-5,4,-7,
    -35,-7,54,5,-32,3,24,-9,
    -22,8,65,37,-1,-12,-23,-6,
    -9,-28,55,-33,14,-3,2,18,
    -60,41,-17,8,-16,17,-11,0,
    -11,29,-28,37,9,-53,33,-14,
    -9,7,-25,-7,-11,26,-32,-8,
    24,-21,22,-19,19,-10,29,-14,
    -10,-4,-3,-2,3,-1,-4,-4,
    -5,-52,10,41,6,-30,-4,16,
    32,22,-27,-22,32,-3,-28,-3,
    3,-35,6,17,23,21,8,2,
    4,-45,-17,14,23,-4,-31,-11,
    -3,14,1,19,-11,2,61,-8,
    9,-12,7,-10,12,-3,-24,99,
    -48,23,50,-37,-5,-23,0,8,
    -14,35,-64,-5,46,-25,13,-1,
    -49,-19,-15,9,34,50,25,11,
    -6,-9,-16,-20,-32,-33,-32,-27,
    10,-8,12,-15,56,-14,-32,33,
    3,-9,1,65,-9,-9,-10,-2,
    -6,-23,9,17,3,-28,13,-32,
    4,-2,-10,4,-16,76,12,-52,
    6,13,33,-6,4,-14,-9,-3,
    1,-15,-16,28,1,-15,11,16,
    9,4,-21,-37,-40,-6,22,12,
    -15,-23,-14,-17,-16,-9,-10,-9,
    13,-39,41,5,-9,16,-38,25,
    46,-47,4,49,-14,17,-2,6,
    18,5,-6,-33,-22,44,50,-2,
    1,3,-6,7,7,-3,-21,38,
    -18,34,-14,-41,60,-13,6,16,
    -24,35,19,-13,-36,24,3,-17,
    -14,-10,36,44,-44,-29,-3,3,
    -54,-8,12,55,26,4,-2,-5,
    2,-11,22,-23,2,22,1,-25,
    -39,66,-49,21,-8,-2,10,-14,
    -60,25,6,10,27,-25,16,5,
    -2,-9,26,-13,-20,58,-2,7,
    52,-9,2,5,-4,-15,23,-1,
    -38,23,8,27,-6,0,-27,-7,
    39,-10,-14,26,11,-45,-12,9,
    -5,34,4,-35,10,43,-22,-11,
    56,-7,20,1,10,1,-26,9,
    94,11,-27,-14,-13,1,-11,0,
    14,-5,-6,-10,-4,-15,-8,-41,
    21,-5,1,-28,-8,22,-9,33,
    -23,-4,-4,-12,39,4,-7,3,
    -60,80,8,-17,2,-6,12,-5,
    1,9,15,27,31,30,27,23,
    61,47,26,10,-5,-8,-12,-13,
    5,-18,25,-15,-4,-15,-11,12,
    -2,-2,-16,-2,-6,24,12,11,
    -4,9,1,-9,14,-45,57,12,
    20,-35,26,11,-64,32,-10,-10,
    42,-4,-9,-16,32,24,7,10,
    52,-11,-57,29,0,8,0,-6,
    17,-17,-56,-40,7,20,18,12,
    -6,16,5,7,-1,9,1,10,
    29,12,16,13,-2,23,7,9,
    -3,-4,-5,18,-64,13,55,-25,
    9,-9,24,14,-25,15,-11,-40,
    -30,37,1,-19,22,-5,-31,13,
    -2,0,7,-4,16,-67,12,66,
    -36,24,-8,18,-15,-23,19,0,
    -45,-7,4,3,-13,13,35,5,
    13,33,10,27,23,0,-7,-11,
    43,-74,36,-12,2,5,-8,6,
    -33,11,-16,-14,-5,-7,-3,17,
    -34,27,-16,11,-9,15,33,-31,
    8,-16,7,-6,-7,63,-55,-17,
    11,-1,20,-46,34,-30,6,9,
    19,28,-9,5,-24,-8,-23,-2,
    31,-19,-16,-5,-15,-18,0,26,
    18,37,-5,-15,-2,17,5,-27,
    21,-33,44,12,-27,-9,17,11,
    25,-21,-31,-7,13,33,-8,-25,
    -7,7,-10,4,-6,-9,48,-82,
    -23,-8,6,11,-23,3,-3,49,
    -29,25,31,4,14,16,9,-4,
    -18,10,-26,3,5,-44,-9,9,
    -47,-55,15,9,28,1,4,-3,
    46,6,-6,-38,-29,-31,-15,-6,
    3,0,14,-6,8,-54,-50,33,
    -5,1,-14,33,-48,26,-4,-5,
    -3,-5,-3,-5,-28,-22,77,55,
    -1,2,10,10,-9,-14,-66,-49,
    11,-36,-6,-20,10,-10,16,12,
    4,-1,-16,45,-44,-50,31,-2,
    25,42,23,-32,-22,0,11,20,
    -40,-35,-40,-36,-32,-26,-21,-13,
    52,-22,6,-24,-20,17,-5,-8,
    36,-25,-11,21,-26,6,34,-8,
    7,20,-3,5,-25,-8,18,-5,
    -9,-4,1,-9,20,20,39,48,
    -24,9,5,-65,22,29,4,3,
    -43,-11,32,-6,9,19,-27,-10,
    -47,-14,24,10,-7,-36,-7,-1,
    -4,-5,-5,16,53,25,-26,-29,
    -4,-12,45,-58,-34,33,-5,2,
    -1,27,-48,31,-15,22,-5,4,
    7,7,-25,-3,11,-22,16,-12,
    8,-3,7,-11,45,14,-73,-19,
    56,-46,24,-20,28,-12,-2,-1,
    -36,-3,-33,19,-6,7,2,-15,
    5,-31,-45,8,35,13,20,0,
    -9,48,-13,-43,-3,-13,2,-5,
    72,-68,-27,2,1,-2,-7,5,
    36,33,-40,-12,-4,-5,23,19 
  };

  /**
   * Gain Codebook (narrowband)
   */
  public static final int[] gain_cdbk_nb = { //384
    -32,-32,-32,
    -28,-67,-5,
    -42,-6,-32,
    -57,-10,-54,
    -16,27,-41,
    19,-19,-40,
    -45,24,-21,
    -8,-14,-18,
    1,14,-58,
    -18,-88,-39,
    -38,21,-18,
    -19,20,-43,
    10,17,-48,
    -52,-58,-13,
    -44,-1,-11,
    -12,-11,-34,
    14,0,-46,
    -37,-35,-34,
    -25,44,-30,
    6,-4,-63,
    -31,43,-41,
    -23,30,-43,
    -43,26,-14,
    -33,1,-13,
    -13,18,-37,
    -46,-73,-45,
    -36,24,-25,
    -36,-11,-20,
    -25,12,-18,
    -36,-69,-59,
    -45,6,8,
    -22,-14,-24,
    -1,13,-44,
    -39,-48,-26,
    -32,31,-37,
    -33,15,-46,
    -24,30,-36,
    -41,31,-23,
    -50,22,-4,
    -22,2,-21,
    -17,30,-34,
    -7,-60,-28,
    -38,42,-28,
    -44,-11,21,
    -16,8,-44,
    -39,-55,-43,
    -11,-35,26,
    -9,0,-34,
    -8,121,-81,
    7,-16,-22,
    -37,33,-31,
    -27,-7,-36,
    -34,70,-57,
    -37,-11,-48,
    -40,17,-1,
    -33,6,-6,
    -9,0,-20,
    -21,69,-33,
    -29,33,-31,
    -55,12,-1,
    -33,27,-22,
    -50,-33,-47,
    -50,54,51,
    -1,-5,-44,
    -4,22,-40,
    -39,-66,-25,
    -33,1,-26,
    -24,-23,-25,
    -11,21,-45,
    -25,-45,-19,
    -43,105,-16,
    5,-21,1,
    -16,11,-33,
    -13,-99,-4,
    -37,33,-15,
    -25,37,-63,
    -36,24,-31,
    -53,-56,-38,
    -41,-4,4,
    -33,13,-30,
    49,52,-94,
    -5,-30,-15,
    1,38,-40,
    -23,12,-36,
    -17,40,-47,
    -37,-41,-39,
    -49,34,0,
    -18,-7,-4,
    -16,17,-27,
    30,5,-62,
    4,48,-68,
    -43,11,-11,
    -18,19,-15,
    -23,-62,-39,
    -42,10,-2,
    -21,-13,-13,
    -9,13,-47,
    -23,-62,-24,
    -44,60,-21,
    -18,-3,-52,
    -22,22,-36,
    -75,57,16,
    -19,3,10,
    -29,23,-38,
    -5,-62,-51,
    -51,40,-18,
    -42,13,-24,
    -34,14,-20,
    -56,-75,-26,
    -26,32,15,
    -26,17,-29,
    -7,28,-52,
    -12,-30,5,
    -5,-48,-5,
    2,2,-43,
    21,16,16,
    -25,-45,-32,
    -43,18,-10,
    9,0,-1,
    -1,7,-30,
    19,-48,-4,
    -28,25,-29,
    -22,0,-31,
    -32,17,-10,
    -64,-41,-62,
    -52,15,16,
    -30,-22,-32,
    -7,9,-38 
  };

  /**
   * Gain Codebook (LBR)
   */
  public static final int[] gain_cdbk_lbr = { //96
    -32,-32,-32,
    -31,-58,-16,
    -41,-24,-43,
    -56,-22,-55,
    -13,33,-41,
    -4,-39,-9,
    -41,15,-12,
    -8,-15,-12,
    1,2,-44,
    -22,-66,-42,
    -38,28,-23,
    -21,14,-37,
    0,21,-50,
    -53,-71,-27,
    -37,-1,-19,
    -19,-5,-28,
    6,65,-44,
    -33,-48,-33,
    -40,57,-14,
    -17,4,-45,
    -31,38,-33,
    -23,28,-40,
    -43,29,-12,
    -34,13,-23,
    -16,15,-27,
    -14,-82,-15,
    -31,25,-32,
    -21,5,-5,
    -47,-63,-51,
    -46,12,3,
    -28,-17,-29,
    -10,14,-40 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] hexc_10_32_table = {
    -3, -2, -1, 0, -4, 5, 35, -40, -9, 13, 
    -44, 5, -27, -1, -7, 6, -11, 7, -8, 7, 
    19, -14, 15, -4, 9, -10, 10, -8, 10, -9, 
    -1, 1, 0, 0, 2, 5, -18, 22, -53, 50, 
    1, -23, 50, -36, 15, 3, -13, 14, -10, 6, 
    1, 5, -3, 4, -2, 5, -32, 25, 5, -2, 
    -1, -4, 1, 11, -29, 26, -6, -15, 30, -18, 
    0, 15, -17, 40, -41, 3, 9, -2, -2, 3, 
    -3, -1, -5, 2, 21, -6, -16, -21, 23, 2, 
    60, 15, 16, -16, -9, 14, 9, -1, 7, -9, 
    0, 1, 1, 0, -1, -6, 17, -28, 54, -45, 
    -1, 1, -1, -6, -6, 2, 11, 26, -29, -2, 
    46, -21, 34, 12, -23, 32, -23, 16, -10, 3, 
    66, 19, -20, 24, 7, 11, -3, 0, -3, -1, 
    -50, -46, 2, -18, -3, 4, -1, -2, 3, -3, 
    -19, 41, -36, 9, 11, -24, 21, -16, 9, -3, 
    -25, -3, 10, 18, -9, -2, -5, -1, -5, 6, 
    -4, -3, 2, -26, 21, -19, 35, -15, 7, -13, 
    17, -19, 39, -43, 48, -31, 16, -9, 7, -2, 
    -5, 3, -4, 9, -19, 27, -55, 63, -35, 10, 
    26, -44, -2, 9, 4, 1, -6, 8, -9, 5, 
    -8, -1, -3, -16, 45, -42, 5, 15, -16, 10, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    -16, 24, -55, 47, -38, 27, -19, 7, -3, 1, 
    16, 27, 20, -19, 18, 5, -7, 1, -5, 2, 
    -6, 8, -22, 0, -3, -3, 8, -1, 7, -8, 
    1, -3, 5, 0, 17, -48, 58, -52, 29, -7, 
    -2, 3, -10, 6, -26, 58, -31, 1, -6, 3, 
    93, -29, 39, 3, 17, 5, 6, -1, -1, -1, 
    27, 13, 10, 19, -7, -34, 12, 10, -4, 9, 
    -76, 9, 8, -28, -2, -11, 2, -1, 3, 1, 
    -83, 38, -39, 4, -16, -6, -2, -5, 5, -2, 
  };

  /**
   * Excitation Codebook
   */
  public static final int[] hexc_table = { //1024
    -24, 21, -20, 5, -5, -7, 14, -10, 
    2, -27, 16, -20, 0, -32, 26, 19, 
    8, -11, -41, 31, 28, -27, -32, 34, 
    42, 34, -17, 22, -10, 13, -29, 18, 
    -12, -26, -24, 11, 22, 5, -5, -5, 
    54, -68, -43, 57, -25, 24, 4, 4, 
    26, -8, -12, -17, 54, 30, -45, 1, 
    10, -15, 18, -41, 11, 68, -67, 37, 
    -16, -24, -16, 38, -22, 6, -29, 30, 
    66, -27, 5, 7, -16, 13, 2, -12, 
    -7, -3, -20, 36, 4, -28, 9, 3, 
    32, 48, 26, 39, 3, 0, 7, -21, 
    -13, 5, -82, -7, 73, -20, 34, -9, 
    -5, 1, -1, 10, -5, -10, -1, 9, 
    1, -9, 10, 0, -14, 11, -1, -2, 
    -1, 11, 20, 96, -81, -22, -12, -9, 
    -58, 9, 24, -30, 26, -35, 27, -12, 
    13, -18, 56, -59, 15, -7, 23, -15, 
    -1, 6, -25, 14, -22, -20, 47, -11, 
    16, 2, 38, -23, -19, -30, -9, 40, 
    -11, 5, 4, -6, 8, 26, -21, -11, 
    127, 4, 1, 6, -9, 2, -7, -2, 
    -3, 7, -5, 10, -19, 7, -106, 91, 
    -3, 9, -4, 21, -8, 26, -80, 8, 
    1, -2, -10, -17, -17, -27, 32, 71, 
    6, -29, 11, -23, 54, -38, 29, -22, 
    39, 87, -31, -12, -20, 3, -2, -2, 
    2, 20, 0, -1, -35, 27, 9, -6, 
    -12, 3, -12, -6, 13, 1, 14, -22, 
    -59, -15, -17, -25, 13, -7, 7, 3, 
    0, 1, -7, 6, -3, 61, -37, -23, 
    -23, -29, 38, -31, 27, 1, -8, 2, 
    -27, 23, -26, 36, -34, 5, 24, -24, 
    -6, 7, 3, -59, 78, -62, 44, -16, 
    1, 6, 0, 17, 8, 45, 0, -110, 
    6, 14, -2, 32, -77, -56, 62, -3, 
    3, -13, 4, -16, 102, -15, -36, -1, 
    9, -113, 6, 23, 0, 9, 9, 5, 
    -8, -1, -14, 5, -12, 121, -53, -27, 
    -8, -9, 22, -13, 3, 2, -3, 1, 
    -2, -71, 95, 38, -19, 15, -16, -5, 
    71, 10, 2, -32, -13, -5, 15, -1, 
    -2, -14, -85, 30, 29, 6, 3, 2, 
    0, 0, 0, 0, 0, 0, 0, 0, 
    2, -65, -56, -9, 18, 18, 23, -14, 
    -2, 0, 12, -29, 26, -12, 1, 2, 
    -12, -64, 90, -6, 4, 1, 5, -5, 
    -110, -3, -31, 22, -29, 9, 0, 8, 
    -40, -5, 21, -5, -5, 13, 10, -18, 
    40, 1, 35, -20, 30, -28, 11, -6, 
    19, 7, 14, 18, -64, 9, -6, 16, 
    51, 68, 8, 16, 12, -8, 0, -9, 
    20, -22, 25, 7, -4, -13, 41, -35, 
    93, -18, -54, 11, -1, 1, -9, 4, 
    -66, 66, -31, 20, -22, 25, -23, 11, 
    10, 9, 19, 15, 11, -5, -31, -10, 
    -23, -28, -6, -6, -3, -4, 5, 3, 
    -28, 22, -11, -42, 25, -25, -16, 41, 
    34, 47, -6, 2, 42, -19, -22, 5, 
    -39, 32, 6, -35, 22, 17, -30, 8, 
    -26, -11, -11, 3, -12, 33, 33, -37, 
    21, -1, 6, -4, 3, 0, -5, 5, 
    12, -12, 57, 27, -61, -3, 20, -17, 
    2, 0, 4, 0, -2, -33, -58, 81, 
    -23, 39, -10, -5, 2, 6, -7, 5, 
    4, -3, -2, -13, -23, -72, 107, 15, 
    -5, 0, -7, -3, -6, 5, -4, 15, 
    47, 12, -31, 25, -16, 8, 22, -25, 
    -62, -56, -18, 14, 28, 12, 2, -11, 
    74, -66, 41, -20, -7, 16, -20, 16, 
    -8, 0, -16, 4, -19, 92, 12, -59, 
    -14, -39, 49, -25, -16, 23, -27, 19, 
    -3, -33, 19, 85, -29, 6, -7, -10, 
    16, -7, -12, 1, -6, 2, 4, -2, 
    64, 10, -25, 41, -2, -31, 15, 0, 
    110, 50, 69, 35, 28, 19, -10, 2, 
    -43, -49, -56, -15, -16, 10, 3, 12, 
    -1, -8, 1, 26, -12, -1, 7, -11, 
    -27, 41, 25, 1, -11, -18, 22, -7, 
    -1, -47, -8, 23, -3, -17, -7, 18, 
    -125, 59, -5, 3, 18, 1, 2, 3, 
    27, -35, 65, -53, 50, -46, 37, -21, 
    -28, 7, 14, -37, -5, -5, 12, 5, 
    -8, 78, -19, 21, -6, -16, 8, -7, 
    5, 2, 7, 2, 10, -6, 12, -60, 
    44, 11, -36, -32, 31, 0, 2, -2, 
    2, 1, -3, 7, -10, 17, -21, 10, 
    6, -2, 19, -2, 59, -38, -86, 38, 
    8, -41, -30, -45, -33, 7, 15, 28, 
    29, -7, 24, -40, 7, 7, 5, -2, 
    9, 24, -23, -18, 6, -29, 30, 2, 
    28, 49, -11, -46, 10, 43, -13, -9, 
    -1, -3, -7, -7, -17, -6, 97, -33, 
    -21, 3, 5, 1, 12, -43, -8, 28, 
    7, -43, -7, 17, -20, 19, -1, 2, 
    -13, 9, 54, 34, 9, -28, -11, -9, 
    -17, 110, -59, 44, -26, 0, 3, -12, 
    -47, 73, -34, -43, 38, -33, 16, -5, 
    -46, -4, -6, -2, -25, 19, -29, 28, 
    -13, 5, 14, 27, -40, -43, 4, 32, 
    -13, -2, -35, -4, 112, -42, 9, -12, 
    37, -28, 17, 14, -19, 35, -39, 23, 
    3, -14, -1, -57, -5, 94, -9, 3, 
    -39, 5, 30, -10, -32, 42, -13, -14, 
    -97, -63, 30, -9, 1, -7, 12, 5, 
    20, 17, -9, -36, -30, 25, 47, -9, 
    -15, 12, -22, 98, -8, -50, 15, -27, 
    21, -16, -11, 2, 12, -10, 10, -3, 
    33, 36, -96, 0, -17, 31, -9, 9, 
    3, -20, 13, -11, 8, -4, 10, -10, 
    9, 1, 112, -70, -27, 5, -21, 2, 
    -57, -3, -29, 10, 19, -21, 21, -10, 
    -66, -3, 91, -35, 30, -12, 0, -7, 
    59, -28, 26, 2, 14, -18, 1, 1, 
    11, 17, 20, -54, -59, 27, 4, 29, 
    32, 5, 19, 12, -4, 1, 7, -10, 
    5, -2, 10, 0, 23, -5, 28, -104, 
    46, 11, 16, 3, 29, 1, -8, -14, 
    1, 7, -50, 88, -62, 26, 8, -17, 
    -14, 50, 0, 32, -12, -3, -27, 18, 
    -8, -5, 8, 3, -20, -11, 37, -12, 
    9, 33, 46, -101, -1, -4, 1, 6, 
    -1, 28, -42, -15, 16, 5, -1, -2, 
    -55, 85, 38, -9, -4, 11, -2, -9, 
    -6, 3, -20, -10, -77, 89, 24, -3, 
    -104, -57, -26, -31, -20, -6, -9, 14, 
    20, -23, 46, -15, -31, 28, 1, -15, 
    -2, 6, -2, 31, 45, -76, 23, -25, 
  };
   
  /**
   * LSP Codebook (high)
   */
  public static final int[] high_lsp_cdbk = { //512
    39,12,-14,-20,-29,-61,-67,-76,
    -32,-71,-67,68,77,46,34,5,
    -13,-48,-46,-72,-81,-84,-60,-58,
    -40,-28,82,93,68,45,29,3,
    -19,-47,-28,-43,-35,-30,-8,-13,
    -39,-91,-91,-123,-96,10,10,-6,
    -18,-55,-60,-91,-56,-36,-27,-16,
    -48,-75,40,28,-10,-28,35,9,
    37,19,1,-20,-31,-41,-18,-25,
    -35,-68,-80,45,27,-1,47,13,
    0,-29,-35,-57,-50,-79,-73,-38,
    -19,5,35,14,-10,-23,16,-8,
    5,-24,-40,-62,-23,-27,-22,-16,
    -18,-46,-72,-77,43,21,33,1,
    -80,-70,-70,-64,-56,-52,-39,-33,
    -31,-38,-19,-19,-15,32,33,-2,
    7,-15,-15,-24,-23,-33,-41,-56,
    -24,-57,5,89,64,41,27,5,
    -9,-47,-60,-97,-97,-124,-20,-9,
    -44,-73,31,29,-4,64,48,7,
    -35,-57,0,-3,-26,-47,-3,-6,
    -40,-76,-79,-48,12,81,55,10,
    9,-24,-43,-73,-57,-69,16,5,
    -28,-53,18,29,20,0,-4,-11,
    6,-13,23,7,-17,-35,-37,-37,
    -30,-68,-63,6,24,-9,-14,3,
    21,-13,-27,-57,-49,-80,-24,-41,
    -5,-16,-5,1,45,25,12,-7,
    3,-15,-6,-16,-15,-8,6,-13,
    -42,-81,-80,-87,14,1,-10,-3,
    -43,-69,-46,-24,-28,-29,36,6,
    -43,-56,-12,12,54,79,43,9,
    54,22,2,8,-12,-43,-46,-52,
    -38,-69,-89,-5,75,38,33,5,
    -13,-53,-62,-87,-89,-113,-99,-55,
    -34,-37,62,55,33,16,21,-2,
    -17,-46,-29,-38,-38,-48,-39,-42,
    -36,-75,-72,-88,-48,-30,21,2,
    -15,-57,-64,-98,-84,-76,25,1,
    -46,-80,-12,18,-7,3,34,6,
    38,31,23,4,-1,20,14,-15,
    -43,-78,-91,-24,14,-3,54,16,
    0,-27,-28,-44,-56,-83,-92,-89,
    -3,34,56,41,36,22,20,-8,
    -7,-35,-42,-62,-49,3,12,-10,
    -50,-87,-96,-66,92,70,38,9,
    -70,-71,-62,-42,-39,-43,-11,-7,
    -50,-79,-58,-50,-31,32,31,-6,
    -4,-25,7,-17,-38,-70,-58,-27,
    -43,-83,-28,59,36,20,31,2,
    -27,-71,-80,-109,-98,-75,-33,-32,
    -31,-2,33,15,-6,43,33,-5,
    0,-22,-10,-27,-34,-49,-11,-20,
    -41,-91,-100,-121,-39,57,41,10,
    -19,-50,-38,-59,-60,-70,-18,-20,
    -8,-31,-8,-15,1,-14,-26,-25,
    33,21,32,17,1,-19,-19,-26,
    -58,-81,-35,-22,45,30,11,-11,
    3,-26,-48,-87,-67,-83,-58,3,
    -1,-26,-20,44,10,25,39,5,
    -9,-35,-27,-38,7,10,4,-9,
    -42,-85,-102,-127,52,44,28,10,
    -47,-61,-40,-39,-17,-1,-10,-33,
    -42,-74,-48,21,-4,70,52,10 
  };

  /**
   * LSP Codebook (high)
   */
  public static final int[] high_lsp_cdbk2 = { //512
    -36,-62,6,-9,-10,-14,-56,23,
    1,-26,23,-48,-17,12,8,-7,
    23,29,-36,-28,-6,-29,-17,-5,
    40,23,10,10,-46,-13,36,6,
    4,-30,-29,62,32,-32,-1,22,
    -14,1,-4,-22,-45,2,54,4,
    -30,-57,-59,-12,27,-3,-31,8,
    -9,5,10,-14,32,66,19,9,
    2,-25,-37,23,-15,18,-38,-31,
    5,-9,-21,15,0,22,62,30,
    15,-12,-14,-46,77,21,33,3,
    34,29,-19,50,2,11,9,-38,
    -12,-37,62,1,-15,54,32,6,
    2,-24,20,35,-21,2,19,24,
    -13,55,4,9,39,-19,30,-1,
    -21,73,54,33,8,18,3,15,
    6,-19,-47,6,-3,-48,-50,1,
    26,20,8,-23,-50,65,-14,-55,
    -17,-31,-37,-28,53,-1,-17,-53,
    1,57,11,-8,-25,-30,-37,64,
    5,-52,-45,15,23,31,15,14,
    -25,24,33,-2,-44,-56,-18,6,
    -21,-43,4,-12,17,-37,20,-10,
    34,15,2,15,55,21,-11,-31,
    -6,46,25,16,-9,-25,-8,-62,
    28,17,20,-32,-29,26,30,25,
    -19,2,-16,-17,26,-51,2,50,
    42,19,-66,23,29,-2,3,19,
    -19,-37,32,15,6,30,-34,13,
    11,-5,40,31,10,-42,4,-9,
    26,-9,-70,17,-2,-23,20,-22,
    -55,51,-24,-31,22,-22,15,-13,
    3,-10,-28,-16,56,4,-63,11,
    -18,-15,-18,-38,-35,16,-7,34,
    -1,-21,-49,-47,9,-37,7,8,
    69,55,20,6,-33,-45,-10,-9,
    6,-9,12,71,15,-3,-42,-7,
    -24,32,-35,-2,-42,-17,-5,0,
    -2,-33,-54,13,-12,-34,47,23,
    19,55,7,-8,74,31,14,16,
    -23,-26,19,12,-18,-49,-28,-31,
    -20,2,-14,-20,-47,78,40,13,
    -23,-11,21,-6,18,1,47,5,
    38,35,32,46,22,8,13,16,
    -14,18,51,19,40,39,11,-26,
    -1,-17,47,2,-53,-15,31,-22,
    38,21,-15,-16,5,-33,53,15,
    -38,86,11,-3,-24,49,13,-4,
    -11,-18,28,20,-12,-27,-26,35,
    -25,-35,-3,-20,-61,30,10,-55,
    -12,-22,-52,-54,-14,19,-32,-12,
    45,15,-8,-48,-9,11,-32,8,
    -16,-34,-13,51,18,38,-2,-32,
    -17,22,-2,-18,-28,-70,59,27,
    -28,-19,-10,-20,-9,-9,-8,-21,
    21,-8,35,-2,45,-3,-9,12,
    0,30,7,-39,43,27,-38,-91,
    30,26,19,-55,-4,63,14,-17,
    13,9,13,2,7,4,6,61,
    72,-1,-17,29,-1,-22,-17,8,
    -28,-37,63,44,41,3,2,14,
    9,-6,75,-8,-7,-12,-15,-12,
    13,9,-4,30,-22,-65,15,0,
    -45,4,-4,1,5,22,11,23 
  };

  /** */
  public static final int NB_CDBK_SIZE       = 64;
  /** */
  public static final int NB_CDBK_SIZE_LOW1  = 64;
  /** */
  public static final int NB_CDBK_SIZE_LOW2  = 64;
  /** */
  public static final int NB_CDBK_SIZE_HIGH1 = 64;
  /** */
  public static final int NB_CDBK_SIZE_HIGH2 = 64;

  /**
   * Codebook (narrowband)
   */
  public static final int[] cdbk_nb = { //640
    30,19,38,34,40,32,46,43,58,43,
    5,-18,-25,-40,-33,-55,-52,20,34,28,
    -20,-63,-97,-92,61,53,47,49,53,75,
    -14,-53,-77,-79,0,-3,-5,19,22,26,
    -9,-53,-55,66,90,72,85,68,74,52,
    -4,-41,-58,-31,-18,-31,27,32,30,18,
    24,3,8,5,-12,-3,26,28,74,63,
    -2,-39,-67,-77,-106,-74,59,59,73,65,
    44,40,71,72,82,83,98,88,89,60,
    -6,-31,-47,-48,-13,-39,-9,7,2,79,
    -1,-39,-60,-17,87,81,65,50,45,19,
    -21,-67,-91,-87,-41,-50,7,18,39,74,
    10,-31,-28,39,24,13,23,5,56,45,
    29,10,-5,-13,-11,-35,-18,-8,-10,-8,
    -25,-71,-77,-21,2,16,50,63,87,87,
    5,-32,-40,-51,-68,0,12,6,54,34,
    5,-12,32,52,68,64,69,59,65,45,
    14,-16,-31,-40,-65,-67,41,49,47,37,
    -11,-52,-75,-84,-4,57,48,42,42,33,
    -11,-51,-68,-6,13,0,8,-8,26,32,
    -23,-53,0,36,56,76,97,105,111,97,
    -1,-28,-39,-40,-43,-54,-44,-40,-18,35,
    16,-20,-19,-28,-42,29,47,38,74,45,
    3,-29,-48,-62,-80,-104,-33,56,59,59,
    10,17,46,72,84,101,117,123,123,106,
    -7,-33,-49,-51,-70,-67,-27,-31,70,67,
    -16,-62,-85,-20,82,71,86,80,85,74,
    -19,-58,-75,-45,-29,-33,-18,-25,45,57,
    -12,-42,-5,12,28,36,52,64,81,82,
    13,-9,-27,-28,22,3,2,22,26,6,
    -6,-44,-51,2,15,10,48,43,49,34,
    -19,-62,-84,-89,-102,-24,8,17,61,68,
    39,24,23,19,16,-5,12,15,27,15,
    -8,-44,-49,-60,-18,-32,-28,52,54,62,
    -8,-48,-77,-70,66,101,83,63,61,37,
    -12,-50,-75,-64,33,17,13,25,15,77,
    1,-42,-29,72,64,46,49,31,61,44,
    -8,-47,-54,-46,-30,19,20,-1,-16,0,
    16,-12,-18,-9,-26,-27,-10,-22,53,45,
    -10,-47,-75,-82,-105,-109,8,25,49,77,
    50,65,114,117,124,118,115,96,90,61,
    -9,-45,-63,-60,-75,-57,8,11,20,29,
    0,-35,-49,-43,40,47,35,40,55,38,
    -24,-76,-103,-112,-27,3,23,34,52,75,
    8,-29,-43,12,63,38,35,29,24,8,
    25,11,1,-15,-18,-43,-7,37,40,21,
    -20,-56,-19,-19,-4,-2,11,29,51,63,
    -2,-44,-62,-75,-89,30,57,51,74,51,
    50,46,68,64,65,52,63,55,65,43,
    18,-9,-26,-35,-55,-69,3,6,8,17,
    -15,-61,-86,-97,1,86,93,74,78,67,
    -1,-38,-66,-48,48,39,29,25,17,-1,
    13,13,29,39,50,51,69,82,97,98,
    -2,-36,-46,-27,-16,-30,-13,-4,-7,-4,
    25,-5,-11,-6,-25,-21,33,12,31,29,
    -8,-38,-52,-63,-68,-89,-33,-1,10,74,
    -2,-15,59,91,105,105,101,87,84,62,
    -7,-33,-50,-35,-54,-47,25,17,82,81,
    -13,-56,-83,21,58,31,42,25,72,65,
    -24,-66,-91,-56,9,-2,21,10,69,75,
    2,-24,11,22,25,28,38,34,48,33,
    7,-29,-26,17,15,-1,14,0,-2,0,
    -6,-41,-67,6,-2,-9,19,2,85,74,
    -22,-67,-84,-71,-50,3,11,-9,2,62 
  };

  /**
   * Codebook (narrowband)
   */
  public static final int[] cdbk_nb_low1 = { //320
    -34,-52,-15,45,2,
    23,21,52,24,-33,
    -9,-1,9,-44,-41,
    -13,-17,44,22,-17,
    -6,-4,-1,22,38,
    26,16,2,50,27,
    -35,-34,-9,-41,6,
    0,-16,-34,51,8,
    -14,-31,-49,15,-33,
    45,49,33,-11,-37,
    -62,-54,45,11,-5,
    -72,11,-1,-12,-11,
    24,27,-11,-43,46,
    43,33,-12,-9,-1,
    1,-4,-23,-57,-71,
    11,8,16,17,-8,
    -20,-31,-41,53,48,
    -16,3,65,-24,-8,
    -23,-32,-37,-32,-49,
    -10,-17,6,38,5,
    -9,-17,-46,8,52,
    3,6,45,40,39,
    -7,-6,-34,-74,31,
    8,1,-16,43,68,
    -11,-19,-31,4,6,
    0,-6,-17,-16,-38,
    -16,-30,2,9,-39,
    -16,-1,43,-10,48,
    3,3,-16,-31,-3,
    62,68,43,13,3,
    -10,8,20,-56,12,
    12,-2,-18,22,-15,
    -40,-36,1,7,41,
    0,1,46,-6,-62,
    -4,-12,-2,-11,-83,
    -13,-2,91,33,-10,
    0,4,-11,-16,79,
    32,37,14,9,51,
    -21,-28,-56,-34,0,
    21,9,-26,11,28,
    -42,-54,-23,-2,-15,
    31,30,8,-39,-66,
    -39,-36,31,-28,-40,
    -46,35,40,22,24,
    33,48,23,-34,14,
    40,32,17,27,-3,
    25,26,-13,-61,-17,
    11,4,31,60,-6,
    -26,-41,-64,13,16,
    -26,54,31,-11,-23,
    -9,-11,-34,-71,-21,
    -34,-35,55,50,29,
    -22,-27,-50,-38,57,
    33,42,57,48,26,
    11,0,-49,-31,26,
    -4,-14,5,78,37,
    17,0,-49,-12,-23,
    26,14,2,2,-43,
    -17,-12,10,-8,-4,
    8,18,12,-6,20,
    -12,-6,-13,-25,34,
    15,40,49,7,8,
    13,20,20,-19,-22,
    -2,-8,2,51,-51 
  };

  /**
   * Codebook (narrowband)
   */
  public static final int[] cdbk_nb_low2 = { //320
    -6,53,-21,-24,4,
    26,17,-4,-37,25,
    17,-36,-13,31,3,
    -6,27,15,-10,31,
    28,26,-10,-10,-40,
    16,-7,15,13,41,
    -9,0,-4,50,-6,
    -7,14,38,22,0,
    -48,2,1,-13,-19,
    32,-3,-60,11,-17,
    -1,-24,-34,-1,35,
    -5,-27,28,44,13,
    25,15,42,-11,15,
    51,35,-36,20,8,
    -4,-12,-29,19,-47,
    49,-15,-4,16,-29,
    -39,14,-30,4,25,
    -9,-5,-51,-14,-3,
    -40,-32,38,5,-9,
    -8,-4,-1,-22,71,
    -3,14,26,-18,-22,
    24,-41,-25,-24,6,
    23,19,-10,39,-26,
    -27,65,45,2,-7,
    -26,-8,22,-12,16,
    15,16,-35,-5,33,
    -21,-8,0,23,33,
    34,6,21,36,6,
    -7,-22,8,-37,-14,
    31,38,11,-4,-3,
    -39,-32,-8,32,-23,
    -6,-12,16,20,-28,
    -4,23,13,-52,-1,
    22,6,-33,-40,-6,
    4,-62,13,5,-26,
    35,39,11,2,57,
    -11,9,-20,-28,-33,
    52,-5,-6,-2,22,
    -14,-16,-48,35,1,
    -58,20,13,33,-1,
    -74,56,-18,-22,-31,
    12,6,-14,4,-2,
    -9,-47,10,-3,29,
    -17,-5,61,14,47,
    -12,2,72,-39,-17,
    92,64,-53,-51,-15,
    -30,-38,-41,-29,-28,
    27,9,36,9,-35,
    -42,81,-21,20,25,
    -16,-5,-17,-35,21,
    15,-28,48,2,-2,
    9,-19,29,-40,30,
    -18,-18,18,-16,-57,
    15,-20,-12,-15,-37,
    -15,33,-39,21,-22,
    -13,35,11,13,-38,
    -63,29,23,-27,32,
    18,3,-26,42,33,
    -64,-66,-17,16,56,
    2,36,3,31,21,
    -41,-39,8,-57,14,
    37,-2,19,-36,-19,
    -23,-29,-16,1,-3,
    -8,-10,31,64,-65 
  };

  /**
   * Codebook (narrowband)
   */
  public static final int[] cdbk_nb_high1 = { //320
    -26,-8,29,21,4,
    19,-39,33,-7,-36,
    56,54,48,40,29,
    -4,-24,-42,-66,-43,
    -60,19,-2,37,41,
    -10,-37,-60,-64,18,
    -22,77,73,40,25,
    4,19,-19,-66,-2,
    11,5,21,14,26,
    -25,-86,-4,18,1,
    26,-37,10,37,-1,
    24,-12,-59,-11,20,
    -6,34,-16,-16,42,
    19,-28,-51,53,32,
    4,10,62,21,-12,
    -34,27,4,-48,-48,
    -50,-49,31,-7,-21,
    -42,-25,-4,-43,-22,
    59,2,27,12,-9,
    -6,-16,-8,-32,-58,
    -16,-29,-5,41,23,
    -30,-33,-46,-13,-10,
    -38,52,52,1,-17,
    -9,10,26,-25,-6,
    33,-20,53,55,25,
    -32,-5,-42,23,21,
    66,5,-28,20,9,
    75,29,-7,-42,-39,
    15,3,-23,21,6,
    11,1,-29,14,63,
    10,54,26,-24,-51,
    -49,7,-23,-51,15,
    -66,1,60,25,10,
    0,-30,-4,-15,17,
    19,59,40,4,-5,
    33,6,-22,-58,-70,
    -5,23,-6,60,44,
    -29,-16,-47,-29,52,
    -19,50,28,16,35,
    31,36,0,-21,6,
    21,27,22,42,7,
    -66,-40,-8,7,19,
    46,0,-4,60,36,
    45,-7,-29,-6,-32,
    -39,2,6,-9,33,
    20,-51,-34,18,-6,
    19,6,11,5,-19,
    -29,-2,42,-11,-45,
    -21,-55,57,37,2,
    -14,-67,-16,-27,-38,
    69,48,19,2,-17,
    20,-20,-16,-34,-17,
    -25,-61,10,73,45,
    16,-40,-64,-17,-29,
    -22,56,17,-39,8,
    -11,8,-25,-18,-13,
    -19,8,54,57,36,
    -17,-26,-4,6,-21,
    40,42,-4,20,31,
    53,10,-34,-53,31,
    -17,35,0,15,-6,
    -20,-63,-73,22,25,
    29,17,8,-29,-39,
    -69,18,15,-15,-5 
  };

  /**
   * Codebook (narrowband)
   */
  public static final int[] cdbk_nb_high2 = { //320
    11,47,16,-9,-46,
    -32,26,-64,34,-5,
    38,-7,47,20,2,
    -73,-99,-3,-45,20,
    70,-52,15,-6,-7,
    -82,31,21,47,51,
    39,-3,9,0,-41,
    -7,-15,-54,2,0,
    27,-31,9,-45,-22,
    -38,-24,-24,8,-33,
    23,5,50,-36,-17,
    -18,-51,-2,13,19,
    43,12,-15,-12,61,
    38,38,7,13,0,
    6,-1,3,62,9,
    27,22,-33,38,-35,
    -9,30,-43,-9,-32,
    -1,4,-4,1,-5,
    -11,-8,38,31,11,
    -10,-42,-21,-37,1,
    43,15,-13,-35,-19,
    -18,15,23,-26,59,
    1,-21,53,8,-41,
    -50,-14,-28,4,21,
    25,-28,-40,5,-40,
    -41,4,51,-33,-8,
    -8,1,17,-60,12,
    25,-41,17,34,43,
    19,45,7,-37,24,
    -15,56,-2,35,-10,
    48,4,-47,-2,5,
    -5,-54,5,-3,-33,
    -10,30,-2,-44,-24,
    -38,9,-9,42,4,
    6,-56,44,-16,9,
    -40,-26,18,-20,10,
    28,-41,-21,-4,13,
    -18,32,-30,-3,37,
    15,22,28,50,-40,
    3,-29,-64,7,51,
    -19,-11,17,-27,-40,
    -64,24,-12,-7,-27,
    3,37,48,-1,2,
    -9,-38,-34,46,1,
    27,-6,19,-13,26,
    10,34,20,25,40,
    50,-6,-7,30,9,
    -24,0,-23,71,-61,
    22,58,-34,-4,2,
    -49,-33,25,30,-8,
    -6,-16,77,2,38,
    -8,-35,-6,-30,56,
    78,31,33,-20,13,
    -39,20,22,4,21,
    -8,4,-6,10,-83,
    -41,9,-25,-43,15,
    -7,-12,-34,-39,-37,
    -33,19,30,16,-33,
    42,-25,25,-68,44,
    -15,-11,-4,23,50,
    14,4,-39,-43,20,
    -30,60,9,-20,7,
    16,19,-33,37,29,
    16,-35,7,38,-27 
  };

  /**
   * QMF (Quadratic Mirror Filter) table
   */
  public static final float[] h0 = {
    3.596189e-05f, -0.0001123515f,
    -0.0001104587f, 0.0002790277f,
    0.0002298438f, -0.0005953563f,
    -0.0003823631f, 0.00113826f,
    0.0005308539f, -0.001986177f,
    -0.0006243724f, 0.003235877f,
    0.0005743159f, -0.004989147f,
    -0.0002584767f, 0.007367171f,
    -0.0004857935f, -0.01050689f,
    0.001894714f, 0.01459396f,
    -0.004313674f, -0.01994365f,
    0.00828756f, 0.02716055f,
    -0.01485397f, -0.03764973f,
    0.026447f, 0.05543245f,
    -0.05095487f, -0.09779096f,
    0.1382363f, 0.4600981f,
    0.4600981f, 0.1382363f,
    -0.09779096f, -0.05095487f,
    0.05543245f, 0.026447f,
    -0.03764973f, -0.01485397f,
    0.02716055f, 0.00828756f,
    -0.01994365f, -0.004313674f,
    0.01459396f, 0.001894714f,
    -0.01050689f, -0.0004857935f,
    0.007367171f, -0.0002584767f,
    -0.004989147f, 0.0005743159f,
    0.003235877f, -0.0006243724f,
    -0.001986177f, 0.0005308539f,
    0.00113826f, -0.0003823631f,
    -0.0005953563f, 0.0002298438f,
    0.0002790277f, -0.0001104587f,
    -0.0001123515f, 3.596189e-05f
  };

  /**
   * QMF (Quadratic Mirror Filter) table
   */
  public static final float[] h1 = {
    3.596189e-05f, 0.0001123515f,
    -0.0001104587f, -0.0002790277f,
    0.0002298438f, 0.0005953563f,
    -0.0003823631f, -0.00113826f,
    0.0005308539f, 0.001986177f,
    -0.0006243724f, -0.003235877f,
    0.0005743159f, 0.004989147f,
    -0.0002584767f, -0.007367171f,
    -0.0004857935f, 0.01050689f,
    0.001894714f, -0.01459396f,
    -0.004313674f, 0.01994365f,
    0.00828756f, -0.02716055f,
    -0.01485397f, 0.03764973f,
    0.026447f, -0.05543245f,
    -0.05095487f, 0.09779096f,
    0.1382363f, -0.4600981f,
    0.4600981f, -0.1382363f,
    -0.09779096f, 0.05095487f,
    0.05543245f, -0.026447f,
    -0.03764973f, 0.01485397f,
    0.02716055f, -0.00828756f,
    -0.01994365f, 0.004313674f,
    0.01459396f, -0.001894714f,
    -0.01050689f, 0.0004857935f,
    0.007367171f, 0.0002584767f,
    -0.004989147f, -0.0005743159f,
    0.003235877f, 0.0006243724f,
    -0.001986177f, -0.0005308539f,
    0.00113826f, 0.0003823631f,
    -0.0005953563f, -0.0002298438f,
    0.0002790277f, 0.0001104587f,
    -0.0001123515f, -3.596189e-05f
  };
}
