//RBJ BANDPASS1A
streamin in;
streamin freq;
streamin q;
streamin A;
streamout out;

float in1,in2,out1,out2;
float a0,a1,a2,b0,b1,b2;
float sin,cos,alpha,abs;

stage(0)
{
  abs = 3.4e38|0.999999|0.1;
  b1 = 0;
}
stage(2)
{
  sin = sin1(0.5*freq);
  cos = cos1(0.5*freq);
  alpha = sin/(2*A*q);
  a0 = 1/(1 + alpha);
  a1 = a0*-2*cos;
  a2 = a0*(1 - alpha);
  b0 = a0*(0.5*sin);
  b2 = -1*b0;
  out = in*b0 + in1*b1 + in2*b2 - out1*a1 - out2*a2;
  out = ((out&abs) > 1e-11)&out;
  out2 = out1;
  out1 = out;
  in2 = in1;
  in1 = in;
}