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++)