float target[],                  float *sw,
spx_sig_t target[],                  spx_sig_t *sw,
int pitch_search_3tap(float target[],                 /* Target vector */float *sw,spx_coef_t ak[],                     /* LPCs for this subframe */spx_coef_t awk1[],                   /* Weighted LPCs #1 for this subframe */spx_coef_t awk2[],                   /* Weighted LPCs #2 for this subframe */float exc[],                    /* Excitation */void *par,int   start,                    /* Smallest pitch value allowed */int   end,                      /* Largest pitch value allowed */float pitch_coef,               /* Voicing (pitch) coefficient */int   p,                        /* Number of LPC coeffs */int   nsf,                      /* Number of samples in subframe */SpeexBits *bits,char *stack,float *exc2,float *r,int complexity,int cdbk_offset){   int i,j;   int cdbk_index, pitch=0, best_gain_index=0;   float *best_exc;   int best_pitch=0;   float err, best_err=-1;   int N;   ltp_params *params;   int *nbest;   float *gains;   N=complexity;   if (N>10)      N=10;   nbest=PUSH(stack, N, int);   gains = PUSH(stack, N, float);   params = (ltp_params*) par;   if (N==0 || end<start)   {      speex_bits_pack(bits, 0, params->pitch_bits);      speex_bits_pack(bits, 0, params->gain_bits);      for (i=0;i<nsf;i++)         exc[i]=0;      return start;   }      best_exc=PUSH(stack,nsf, float);      if (N>end-start+1)      N=end-start+1;   open_loop_nbest_pitch(sw, start, end, nsf, nbest, gains, N, stack);   for (i=0;i<N;i++)   {      pitch=nbest[i];      for (j=0;j<nsf;j++)         exc[j]=0;      err=pitch_gain_search_3tap(target, ak, awk1, awk2, exc, par, pitch, p, nsf,                                 bits, stack, exc2, r, &cdbk_index, cdbk_offset);      if (err<best_err || best_err<0)      {         for (j=0;j<nsf;j++)            best_exc[j]=exc[j];         best_err=err;         best_pitch=pitch;         best_gain_index=cdbk_index;      }   }      /*printf ("pitch: %d %d\n", best_pitch, best_gain_index);*/   speex_bits_pack(bits, best_pitch-start, params->pitch_bits);   speex_bits_pack(bits, best_gain_index, params->gain_bits);   /*printf ("encode pitch: %d %d\n", best_pitch, best_gain_index);*/   for (i=0;i<nsf;i++)      exc[i]=best_exc[i];   return pitch;}