/* Fast approximation to the trigonometric cosine function for Q15 data.  */
q15_t arm_cos_q15(q15_t x)
/* Fast approximation to the trigonometric cosine function for Q15 data.  */
q15_t arm_cos_q15(q15_t x)
{
  q15_t cosVal;
  int32_t index;
  q15_t a, b;
  q15_t fract;
  x = (uint16_t)x + 0x2000;
  if (x < 0)
  {
      x = (uint16_t)x + 0x8000;
  }
  index = (uint32_t)x >> FAST_MATH_Q15_SHIFT;
  fract = (x - (index << FAST_MATH_Q15_SHIFT)) << 9;
  a = sinTable_q15[index];
  b = sinTable_q15[index+1];
  cosVal = (q31_t)(0x8000-fract)*a >> 16;
  cosVal = (q15_t)((((q31_t)cosVal << 16) + ((q31_t)fract*b)) >> 16);
  return cosVal << 1;
}