printf ("decode_exc:"); for (i=0;i<nsf;i++) printf (" %f", exc[i]); printf ("\n");
void split_cb_unquant(float *exc,void *par,                      /* non-overlapping codebook */int   nsf,                      /* number of samples in subframe */FrameBits *bits,float *stack){   int i,j;   int *ind;   float *gains;   float *sign;   float *shape_cb, exc_energy;   int shape_cb_size, subvect_size, nb_subvect;   split_cb_params *params;   params = (split_cb_params *) par;   subvect_size = params->subvect_size;   nb_subvect = params->nb_subvect;   shape_cb_size = 1<<params->shape_bits;   shape_cb = params->shape_cb;      ind = (int*)PUSH(stack, nb_subvect);   gains = PUSH(stack, nb_subvect);   sign = PUSH(stack, nb_subvect);   /* Decode global (average) gain */   {      int id;      id = frame_bits_unpack_unsigned(bits, 4);      exc_energy=exp(.5*id+2);   }   for (i=0;i<nb_subvect;i++)   {      int gain_id;      ind[i] = frame_bits_unpack_unsigned(bits, params->shape_bits);      if (frame_bits_unpack_unsigned(bits, 1))         sign[i]=-1;      else         sign[i]=1;            gain_id = frame_bits_unpack_unsigned(bits, 3);      gains[i]=scal_gains4[gain_id];      gains[i] *= sign[i];      gains[i] *= exc_energy;   }   for (i=0;i<nb_subvect;i++)      for (j=0;j<subvect_size;j++)         exc[subvect_size*i+j]+=gains[i]*shape_cb[ind[i]*subvect_size+j];   printf ("decode_exc:");   for (i=0;i<nsf;i++)      printf (" %f", exc[i]);   printf ("\n");   POP(stack);   POP(stack);   POP(stack);}