Compute apodized instrument line shape. 
  124              {
  125 
  126  
  127  const double a = 2 * M_PI * dnu * opl;
  128  const double a2 = a * a;
  129  const double a4 = a2 * a2;
  130  const double a6 = a4 * a2;
  131  const double a8 = a4 * a4;
  132 
  133  
  134  if (apo == 0) {
  135    if (fabs(a) < 0.7)
  136      return 1 - a2 / 6 + a4 / 120 - a6 / 5040 + a8 / 362880;
  137    else
  138      return sin(a) / a;
  139  }
  140 
  141  
  142  else if (apo == 1) {
  143    double q0, q2, q4;
  144    if (fabs(a) < 0.7) {
  145      q0 = 1 - a2 / 6 + a4 / 120 - a6 / 5040 + a8 / 362880;
  146      q2 = 1 - a2 / 14 + a4 / 504 - a6 / 33264 + a8 / 3459456;
  147      q4 = 1 - a2 / 22 + a4 / 1144 - a6 / 102960 + a8 / 14002560;
  148    } else {
  149      const double sinca = sin(a) / a;
  150      const double cosa = cos(a);
  151      q0 = sinca;
  152      q2 = -15 / a2 * ((1 - 3 / a2) * sinca + (3 / a2) * cosa);
  153      q4 =
  154        945 / a4 * ((1 - 45 / a2 + 105 / a4) * sinca +
  155                    5 / a2 * (2 - 21 / a2) * cosa);
  156    }
  157    return 0.045335 * q0 + 0.554883 * q2 * 8. / 15. +
  158      0.399782 * q4 * 384. / 945.;
  159  }
  160 
  161  
  162  else
  163    ERRMSG(
"Unknown apodization!");
 
  164}
#define ERRMSG(...)
Print error message and quit program.