+
+#if HAVE_OPENMP
+ double x_start = xmin + (colStart * xinc);
+ for (PElemConstIterator pelem = m_listPElem.begin(); pelem != m_listPElem.end(); pelem++) {
+ const PhantomElement& rPElem = **pelem;
+ #pragma omp parallel for
+ for (int ix = 0; ix < colCount; ix++) {
+ double x = x_start + ix * xinc;
+ int iColStore = ix + iStorageOffset;
+ ImageFileColumn vCol = v[iColStore];
+ for (int iy = 0; iy < ny; iy++) {
+ double y = ymin + iy * yinc;
+ double dAtten = 0;
+ for (int kx = 0; kx < nsample; kx++) {
+ double xi = x + kxofs + kxinc * kx;
+ for (int ky = 0; ky < nsample; ky++) {
+ double yi = y + kyofs + ky * kyinc;
+ if (rPElem.isPointInside (xi, yi, PHM_COORD))
+ dAtten += rPElem.atten();
+ } // ky
+ } // kx
+ *vCol++ += dAtten;
+ } /* iy */
+ } /* ix */
+ } /* pelem */
+
+#else