1- Data_* right = static_cast <Data_*> (r);
1+ auto right = dynamic_cast <Data_*> (r);
22
3- ULong rEl = right->N_Elements();
4- ULong nEl = N_Elements();
3+ const auto rEl = static_cast<OMPInt>( right->N_Elements() );
4+ const auto nEl = static_cast<OMPInt>( N_Elements() );
55 assert(rEl);
66 assert(nEl);
77
1919 for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*this)[i]) >= std::norm(s));
2020 } else {
2121 TRACEOMP(__FILE__, __LINE__)
22- #pragma omp parallel for num_threads(GDL_NTHREADS)
23- for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*this)[i]) >= std::norm(s));
22+ #pragma omp parallel for num_threads(GDL_NTHREADS) default(none) shared(nEl, res, s)
23+ for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*this)[i]) >= std::norm(s));
2424 }
2525 } else if (StrictScalar(s)) {
2626 res = new Data_<SpDByte>(right->dim, BaseGDL::NOZERO);
3333 for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm(s));
3434 } else {
3535 TRACEOMP(__FILE__, __LINE__)
36- #pragma omp parallel for num_threads(GDL_NTHREADS)
37- for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm(s));
36+ #pragma omp parallel for num_threads(GDL_NTHREADS) default(none) shared(rEl, res, right, s)
37+ for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm(s));
3838 }
3939 } else if (rEl < nEl) {
4040 res = new Data_<SpDByte>(right->dim, BaseGDL::NOZERO);
4343 for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
4444 } else {
4545 TRACEOMP(__FILE__, __LINE__)
46- #pragma omp parallel for num_threads(GDL_NTHREADS)
47- for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
46+ #pragma omp parallel for num_threads(GDL_NTHREADS) default(none) shared(rEl, res, right)
47+ for (OMPInt i = 0; i < rEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
4848 }
4949 } else // ( rEl >= nEl)
5050 {
5858 for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
5959 } else {
6060 TRACEOMP(__FILE__, __LINE__)
61- #pragma omp parallel for num_threads(GDL_NTHREADS)
62- for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
61+ #pragma omp parallel for num_threads(GDL_NTHREADS) default(none) shared(nEl, res, right)
62+ for (OMPInt i = 0; i < nEl; ++i) (*res)[i] = (std::norm((*right)[i]) <= std::norm((*this)[i]));
6363 }
6464 }
65- return res;
66-
65+ return res;
0 commit comments