if (interpType == Backprojector::INTERP_LINEAR) {
// precalculate scaled difference for linear interpolation
deltaFilteredProj = new double [nDet];
+#if HAVE_OPENMP
+ #pragma omp parallel for
+#endif
for (int i = 0; i < nDet - 1; i++)
deltaFilteredProj[i] = filteredProj[i+1] - filteredProj[i];
deltaFilteredProj[nDet - 1] = 0; // last detector
if (interpType == Backprojector::INTERP_LINEAR) {
// precalculate scaled difference for linear interpolation
deltaFilteredProj = new double [nDet];
+#if HAVE_OPENMP
+ #pragma omp parallel for
+#endif
for (int i = 0; i < nDet - 1; i++)
deltaFilteredProj[i] = (filteredProj[i+1] - filteredProj[i]) * dInvScale;
deltaFilteredProj[nDet - 1] = 0; // last detector
void
SignalFilter::createFrequencyFilter (double* adFilter) const
{
- double x;
- int i;
- for (x = m_dFilterMin, i = 0; i < m_nFilterPoints; x += m_dFilterInc, i++)
+ double xstart = m_dFilterMin;
+#if HAVE_OPENMP
+ #pragma omp parallel for
+#endif
+ for (int i = 0; i < m_nFilterPoints; i++) {
+ double x = xstart + (i * m_dFilterInc);
adFilter[i] = frequencyResponse (x);
+ }
}
for (int i = 1; i <= sidelen; i++ )
m_adFilter [center + i] = m_adFilter [center - i] = c / (4 * (i * i) - 1);
} else {
- double x = m_dFilterMin;
- for (int i = 0; i < m_nFilterPoints; i++, x += m_dFilterInc) {
+ double xstart = m_dFilterMin;
+#if HAVE_OPENMP
+ #pragma omp parallel for
+#endif
+ for (int i = 0; i < m_nFilterPoints; i++) {
+ double x = xstart + (i * m_dFilterInc);
if (haveAnalyticSpatial(m_idFilter))
m_adFilter[i] = spatialResponseAnalytic (x);
else