** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: filter.cpp,v 1.25 2000/08/19 22:59:06 kevin Exp $
+** $Id: filter.cpp,v 1.26 2000/08/22 07:02:48 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
switch (filterID) {
case FILTER_BANDLIMIT:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0.;
else
q = 1;
break;
case FILTER_ABS_BANDLIMIT:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0.;
else
q = au;
break;
case FILTER_TRIANGLE:
- if (au >= bw)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0;
else
q = 1 - au / bw;
break;
case FILTER_COSINE:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0;
else
q = cos(PI * u / bw);
break;
case FILTER_ABS_COSINE:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0;
else
q = au * cos(PI * u / bw);
q = au * bw * sinc (PI * bw * u, 1.);
break;
case FILTER_G_HAMMING:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0;
else
q = param + (1 - param) * cos (TWOPI * u / bw);
break;
case FILTER_ABS_G_HAMMING:
- if (au >= bw / 2)
+ if (fabs(au) > fabs(bw / 2) + F_EPSILON)
q = 0;
else
q = au * (param + (1 - param) * cos(TWOPI * u / bw));