X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Ffilter.cpp;h=6382b5609497d5bc5b37e9e08c4ab3a049e54561;hp=86dca12bbab6d2b93a9db570aa3ed2164e41a854;hb=3931f11e050e896530ae96c9c28264e30d281c5f;hpb=f13a8c004b8f182b42d9e4df2bcd7c7f030bf1ad diff --git a/libctsim/filter.cpp b/libctsim/filter.cpp index 86dca12..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 @@ -233,11 +241,12 @@ SignalFilter::convertFilterNameToID (const char *filterName) { int filterID = FILTER_INVALID; - for (int i = 0; i < s_iFilterCount; i++) + for (int i = 0; i < s_iFilterCount; i++) { if (strcasecmp (filterName, s_aszFilterName[i]) == 0) { filterID = i; break; } + } return (filterID); } @@ -258,9 +267,9 @@ SignalFilter::convertFilterIDToTitle (const int filterID) { static const char *title = ""; - if (filterID >= 0 && filterID < s_iFilterCount) + if (filterID >= 0 && filterID < s_iFilterCount) { return (s_aszFilterTitle [filterID]); - + } return (title); } @@ -269,13 +278,13 @@ SignalFilter::convertDomainNameToID (const char* const domainName) { int dID = DOMAIN_INVALID; - for (int i = 0; i < s_iDomainCount; i++) + for (int i = 0; i < s_iDomainCount; i++) { if (strcasecmp (domainName, s_aszDomainName[i]) == 0) { dID = i; break; } - - return (dID); + } + return (dID); } const char *