projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add tiny test
[ctsim.git]
/
libctsim
/
filter.cpp
diff --git
a/libctsim/filter.cpp
b/libctsim/filter.cpp
index 86dca12bbab6d2b93a9db570aa3ed2164e41a854..6382b5609497d5bc5b37e9e08c4ab3a049e54561 100644
(file)
--- a/
libctsim/filter.cpp
+++ b/
libctsim/filter.cpp
@@
-198,10
+198,14
@@
SignalFilter::~SignalFilter (void)
void
SignalFilter::createFrequencyFilter (double* adFilter) const
{
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);
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 {
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
if (haveAnalyticSpatial(m_idFilter))
m_adFilter[i] = spatialResponseAnalytic (x);
else
@@
-233,11
+241,12
@@
SignalFilter::convertFilterNameToID (const char *filterName)
{
int filterID = FILTER_INVALID;
{
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;
}
if (strcasecmp (filterName, s_aszFilterName[i]) == 0) {
filterID = i;
break;
}
+ }
return (filterID);
}
return (filterID);
}
@@
-258,9
+267,9
@@
SignalFilter::convertFilterIDToTitle (const int filterID)
{
static const char *title = "";
{
static const char *title = "";
- if (filterID >= 0 && filterID < s_iFilterCount)
+ if (filterID >= 0 && filterID < s_iFilterCount)
{
return (s_aszFilterTitle [filterID]);
return (s_aszFilterTitle [filterID]);
-
+ }
return (title);
}
return (title);
}
@@
-269,13
+278,13
@@
SignalFilter::convertDomainNameToID (const char* const domainName)
{
int dID = DOMAIN_INVALID;
{
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;
}
if (strcasecmp (domainName, s_aszDomainName[i]) == 0) {
dID = i;
break;
}
-
-
return (dID);
+ }
+ return (dID);
}
const char *
}
const char *