44   dtheta = 2.0 * 
pi * freq;
 
   47 double Sine_Source::sample()
 
   49   double samp = m + A * 
sin(theta);
 
   52   if (theta >= 2.0 * 
pi)
 
   62   for (
int i=0; i < n; i++)
 
   73   for (i = 0; i < h; i++)
 
   74     for (j = 0; j < w; j++)
 
   88   theta = inphase / (2.0 * 
pi);
 
   92 double Square_Source::sample()
 
   94   double samp = theta < 0.5 ? 1.0 : -1.0;
 
  107   for (
int i=0; i < n; i++)
 
  118   for (i = 0; i < h; i++)
 
  119     for (j = 0; j < w; j++)
 
  133   theta = inphase / (2.0 * 
pi);
 
  137 double Triangle_Source::sample()
 
  139   double samp = m + 4.0 * A * (theta < 0.25 ? theta : 0.5 - theta);
 
  152   for (
int i=0; i < n; i++)
 
  163   for (i = 0; i < h; i++)
 
  164     for (j = 0; j < w; j++)
 
  178   theta = inphase / (2.0 * 
pi);
 
  182 double Sawtooth_Source::sample()
 
  184   double samp = 2.0 * A * theta;
 
  197   for (
int i=0; i < n; i++)
 
  208   for (i = 0; i < h; i++)
 
  209     for (j = 0; j < w; j++)
 
  222   pos = inphase / (2.0 * 
pi);
 
  226 double Impulse_Source::sample()
 
  246   for (
int i=0; i < n; i++)
 
  257   for (i = 0; i < h; i++)
 
  258     for (j = 0; j < w; j++)
 
  276   for (
int i = pat.size() - 1; i >= 0; i--) {
 
  278     var += pat(i) * pat(i);
 
  285 double Pattern_Source::sample()
 
  287   double samp = pat(pos);
 
  289   if (pos >= pat.size() - 1)
 
  301   for (
int i=0; i < n; i++)
 
  312   for (i = 0; i < h; i++)
 
  313     for (j = 0; j < w; j++)