X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Ffilter.cpp;fp=libctsim%2Ffilter.cpp;h=6382b5609497d5bc5b37e9e08c4ab3a049e54561;hp=397f8a204120926ed04516653b5e1b2ca1d0f654;hb=3931f11e050e896530ae96c9c28264e30d281c5f;hpb=57f23510f319c1f02b724ca8d2173c23bab0ba80 diff --git a/libctsim/filter.cpp b/libctsim/filter.cpp index 397f8a2..6382b56 100644 --- a/libctsim/filter.cpp +++ b/libctsim/filter.cpp @@ -198,10 +198,14 @@ SignalFilter::~SignalFilter (void) 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); + } } @@ -218,8 +222,12 @@ SignalFilter::createSpatialFilter (double* adFilter) const 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