for (n = 0; n < iir->nb_ab[0]; n++) {
double sr = iir->ab[0][2*n];
double si = iir->ab[0][2*n+1];
- double snr = 1. + sr;
- double sdr = 1. - sr;
- double div = sdr * sdr + si * si;
- iir->ab[0][2*n] = (snr * sdr - si * si) / div;
- iir->ab[0][2*n+1] = (sdr * si + snr * si) / div;
+ iir->ab[0][2*n] = exp(sr) * cos(si);
+ iir->ab[0][2*n+1] = exp(sr) * sin(si);
}
for (n = 0; n < iir->nb_ab[1]; n++) {
double sr = iir->ab[1][2*n];
double si = iir->ab[1][2*n+1];
- double snr = 1. + sr;
- double sdr = 1. - sr;
- double div = sdr * sdr + si * si;
- iir->ab[1][2*n] = (snr * sdr - si * si) / div;
- iir->ab[1][2*n+1] = (sdr * si + snr * si) / div;
+ iir->ab[1][2*n] = exp(sr) * cos(si);
+ iir->ab[1][2*n+1] = exp(sr) * sin(si);
}
}
}