int i,j,m,n,q;
int i,j,m,q; #ifndef FIXED_POINT int n; #endif
static void split_cb_search_shape_sign_N1(spx_sig_t target[],			/* target vector */spx_coef_t ak[],			/* LPCs for this subframe */spx_coef_t awk1[],			/* Weighted LPCs for this subframe */spx_coef_t awk2[],			/* Weighted LPCs for this subframe */const void *par,                      /* Codebook/search parameters*/int   p,                        /* number of LPC coeffs */int   nsf,                      /* number of samples in subframe */spx_sig_t *exc,spx_word16_t *r,SpeexBits *bits,char *stack,int   complexity,int   update_target){   int i,j,m,n,q;   VARDECL(spx_word16_t *resp);#ifdef _USE_SSE   VARDECL(__m128 *resp2);   VARDECL(__m128 *E);#else   spx_word16_t *resp2;   VARDECL(spx_word32_t *E);#endif   VARDECL(spx_word16_t *t);   VARDECL(spx_sig_t *e);   const signed char *shape_cb;   int shape_cb_size, subvect_size, nb_subvect;   const split_cb_params *params;   int N=2;   int best_index;   spx_word32_t best_dist;   int have_sign;   N=complexity;   if (N>10)      N=10;   if (N<1)      N=1;      params = (const 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;   have_sign = params->have_sign;   ALLOC(resp, shape_cb_size*subvect_size, spx_word16_t);#ifdef _USE_SSE   ALLOC(resp2, (shape_cb_size*subvect_size)>>2, __m128);   ALLOC(E, shape_cb_size>>2, __m128);#else   resp2 = resp;   ALLOC(E, shape_cb_size, spx_word32_t);#endif   ALLOC(t, nsf, spx_word16_t);   ALLOC(e, nsf, spx_sig_t);      /* FIXME: make that adaptive? */   for (i=0;i<nsf;i++)      t[i]=EXTRACT16(PSHR32(target[i],6));   compute_weighted_codebook(shape_cb, r, resp, resp2, E, shape_cb_size, subvect_size, stack);   for (i=0;i<nb_subvect;i++)   {      spx_word16_t *x=t+subvect_size*i;      /*Find new n-best based on previous n-best j*/      if (have_sign)         vq_nbest_sign(x, resp2, subvect_size, shape_cb_size, E, 1, &best_index, &best_dist, stack);      else         vq_nbest(x, resp2, subvect_size, shape_cb_size, E, 1, &best_index, &best_dist, stack);            speex_bits_pack(bits,best_index,params->shape_bits+have_sign);            {         int rind;         spx_word16_t *res;         spx_word16_t sign=1;         rind = best_index;         if (rind>=shape_cb_size)         {            sign=-1;            rind-=shape_cb_size;         }         res = resp+rind*subvect_size;         if (sign>0)            for (m=0;m<subvect_size;m++)               t[subvect_size*i+m] = SUB16(t[subvect_size*i+m], res[m]);         else            for (m=0;m<subvect_size;m++)               t[subvect_size*i+m] = ADD16(t[subvect_size*i+m], res[m]);#ifdef FIXED_POINT         if (sign)         {            for (j=0;j<subvect_size;j++)               e[subvect_size*i+j]=SHL32(EXTEND32(shape_cb[rind*subvect_size+j]),SIG_SHIFT-5);         } else {            for (j=0;j<subvect_size;j++)               e[subvect_size*i+j]=NEG32(SHL32(EXTEND32(shape_cb[rind*subvect_size+j]),SIG_SHIFT-5));         }#else         for (j=0;j<subvect_size;j++)            e[subvect_size*i+j]=sign*0.03125*shape_cb[rind*subvect_size+j];#endif            }                  for (m=0;m<subvect_size;m++)      {         spx_word16_t g;         int rind;         spx_word16_t sign=1;         rind = best_index;         if (rind>=shape_cb_size)         {            sign=-1;            rind-=shape_cb_size;         }                  q=subvect_size-m;#ifdef FIXED_POINT         g=sign*shape_cb[rind*subvect_size+m];         target_update(t+subvect_size*(i+1), g, r+q, nsf-subvect_size*(i+1));#else         g=sign*0.03125*shape_cb[rind*subvect_size+m];         /*FIXME: I think that one too can be replaced by target_update */         for (n=subvect_size*(i+1);n<nsf;n++,q++)            t[n] = SUB32(t[n],g*r[q]);#endif      }   }   /* Update excitation */   /* FIXME: We could update the excitation directly above */   for (j=0;j<nsf;j++)      exc[j]=ADD32(exc[j],e[j]);      /* Update target: only update target if necessary */   if (update_target)   {      VARDECL(spx_sig_t *r2);      ALLOC(r2, nsf, spx_sig_t);      syn_percep_zero(e, ak, awk1, awk2, r2, nsf,p, stack);      for (j=0;j<nsf;j++)         target[j]=SUB32(target[j],r2[j]);   }}