diff --git a/.clang-tidy b/.clang-tidy index fc4fd05fa1b..f473f135ba4 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -41,7 +41,6 @@ Checks: > -modernize-use-constraints, -modernize-use-designated-initializers, -modernize-use-integer-sign-comparison, - -modernize-use-ranges, -modernize-use-starts-ends-with, -modernize-use-std-numbers, -modernize-use-trailing-return-type, @@ -81,6 +80,5 @@ HeaderFileExtensions: ['', "H", 'h', 'hh', 'hpp', 'hxx'] # -modernize-use-constraints # -modernize-use-designated-initializers # -modernize-use-std-numbers -# -modernize-use-ranges # -modernize-use-integer-sign-comparison # -modernize-use-starts-ends-with diff --git a/Src/Amr/AMReX_Amr.cpp b/Src/Amr/AMReX_Amr.cpp index 43ada13dff4..b5c3b904215 100644 --- a/Src/Amr/AMReX_Amr.cpp +++ b/Src/Amr/AMReX_Amr.cpp @@ -598,14 +598,14 @@ Amr::finalizeInSitu() bool Amr::isStatePlotVar (const std::string& name) { - auto it = std::find(state_plot_vars.begin(), state_plot_vars.end(), name); + auto it = std::ranges::find(state_plot_vars, name); return (it != state_plot_vars.end()); } bool Amr::isStateSmallPlotVar (const std::string& name) { - auto it = std::find(state_small_plot_vars.begin(), state_small_plot_vars.end(), name); + auto it = std::ranges::find(state_small_plot_vars, name); return (it != state_small_plot_vars.end()); } @@ -676,14 +676,14 @@ Amr::deleteStatePlotVar (const std::string& name) bool Amr::isDerivePlotVar (const std::string& name) noexcept { - auto it = std::find(derive_plot_vars.begin(), derive_plot_vars.end(), name); + auto it = std::ranges::find(derive_plot_vars, name); return (it != derive_plot_vars.end()); } bool Amr::isDeriveSmallPlotVar (const std::string& name) noexcept { - auto it = std::find(derive_small_plot_vars.begin(), derive_small_plot_vars.end(), name); + auto it = std::ranges::find(derive_small_plot_vars, name); return (it != derive_small_plot_vars.end()); } diff --git a/Src/AmrCore/AMReX_AmrMesh.cpp b/Src/AmrCore/AMReX_AmrMesh.cpp index 38a1a88ca0a..fee98cf1f03 100644 --- a/Src/AmrCore/AMReX_AmrMesh.cpp +++ b/Src/AmrCore/AMReX_AmrMesh.cpp @@ -485,7 +485,7 @@ AmrMesh::ChopGrids (int lev, BoxArray& ba, int target_size) const chunk_dir{AMREX_D_DECL(std::make_pair(chunk[0],int(0)), std::make_pair(chunk[1],int(1)), std::make_pair(chunk[2],int(2)))}; - std::sort(chunk_dir.begin(), chunk_dir.end()); + std::ranges::sort(chunk_dir); for (int idx = AMREX_SPACEDIM-1; idx >= 0; idx--) { int idim = chunk_dir[idx].second; diff --git a/Src/AmrCore/AMReX_FillPatcher.H b/Src/AmrCore/AMReX_FillPatcher.H index 825446f8fc2..03207e66520 100644 --- a/Src/AmrCore/AMReX_FillPatcher.H +++ b/Src/AmrCore/AMReX_FillPatcher.H @@ -323,10 +323,10 @@ FillPatcher::fillCoarseFineBoundary (MF& mf, IntVect const& nghost, Real tim int ncmfs = cmf.size(); for (int icmf = 0; icmf < ncmfs; ++icmf) { Real t = ct[icmf]; - auto it = std::find_if(m_cf_crse_data.begin(), m_cf_crse_data.end(), - [=] (auto const& x) { - return amrex::almostEqual(x.first,t,5); - }); + auto it = std::ranges::find_if(m_cf_crse_data, + [=] (auto const& x) { + return amrex::almostEqual(x.first,t,5); + }); if (it == std::end(m_cf_crse_data)) { MF mf_crse_patch = detail::make_mf_crse_patch(fpc, m_ncomp); diff --git a/Src/AmrCore/AMReX_TagBox.cpp b/Src/AmrCore/AMReX_TagBox.cpp index 3e8f4eb5609..f060c851f56 100644 --- a/Src/AmrCore/AMReX_TagBox.cpp +++ b/Src/AmrCore/AMReX_TagBox.cpp @@ -661,8 +661,8 @@ TagBoxArray::collate (Gpu::PinnedVector& TheGlobalCollateSpace) const auto countvec_int = std::vector(countvec.size()); auto offset_int = std::vector(offset.size()); const auto mul_funct = [](const auto el){return el*AMREX_SPACEDIM;}; - std::transform(countvec.begin(), countvec.end(), countvec_int.begin(), mul_funct); - std::transform(offset.begin(), offset.end(), offset_int.begin(), mul_funct); + std::ranges::transform(countvec, countvec_int.begin(), mul_funct); + std::ranges::transform(offset, offset_int.begin(), mul_funct); ParallelDescriptor::Gatherv( psend_int, count_int, precv_int, countvec_int, offset_int, IOProcNumber); #endif diff --git a/Src/Base/AMReX.cpp b/Src/Base/AMReX.cpp index 93529d623a8..6e2bc01c0e9 100644 --- a/Src/Base/AMReX.cpp +++ b/Src/Base/AMReX.cpp @@ -1002,9 +1002,9 @@ AMReX::~AMReX () void AMReX::push (AMReX* pamrex) { - auto r = std::find_if(m_instance.begin(), m_instance.end(), - [=] (const std::unique_ptr& x) -> bool - { return x.get() == pamrex; }); + auto r = std::ranges::find_if(m_instance, + [=] (const std::unique_ptr& x) -> bool + { return x.get() == pamrex; }); if (r == m_instance.end()) { m_instance.emplace_back(pamrex); } else if (r+1 != m_instance.end()) { @@ -1021,9 +1021,9 @@ AMReX::push (std::unique_ptr pamrex) void AMReX::erase (AMReX* pamrex) { - auto r = std::find_if(m_instance.begin(), m_instance.end(), - [=] (const std::unique_ptr& x) -> bool - { return x.get() == pamrex; }); + auto r = std::ranges::find_if(m_instance, + [=] (const std::unique_ptr& x) -> bool + { return x.get() == pamrex; }); if (r != m_instance.end()) { m_instance.erase(r); } diff --git a/Src/Base/AMReX_BoxArray.cpp b/Src/Base/AMReX_BoxArray.cpp index 0d2acc9bfa2..76054791b57 100644 --- a/Src/Base/AMReX_BoxArray.cpp +++ b/Src/Base/AMReX_BoxArray.cpp @@ -1947,7 +1947,7 @@ bool match (const BoxArray& x, const BoxArray& y) BoxArray decompose (Box const& domain, int nboxes, Array const& decomp, bool no_overlap) { - auto ndecomp = std::count(decomp.begin(), decomp.end(), true); + auto ndecomp = std::ranges::count(decomp, true); if (nboxes <= 1 || ndecomp == 0) { return BoxArray(domain); @@ -2021,7 +2021,7 @@ BoxArray decompose (Box const& domain, int nboxes, int nprocs_tot = 1; while (!factors.empty()) { - std::sort(procdim.begin(), procdim.end(), comp); + std::ranges::sort(procdim, comp); auto f = factors.back(); factors.pop_back(); procdim.back().nproc *= f; @@ -2035,9 +2035,9 @@ BoxArray decompose (Box const& domain, int nboxes, // swap to see if the decomposition can be improved. while (true) { - std::sort(procdim.begin(), procdim.end(), comp); - auto fit = std::find_if(procdim.begin(),procdim.end(), - [] (ProcDim const& x) { return x.nproc > 1; }); + std::ranges::sort(procdim, comp); + auto fit = std::ranges::find_if(procdim, + [] (ProcDim const& x) { return x.nproc > 1; }); if (fit == procdim.end()) { break; } // This should not actually happen. auto& light = *fit; auto& heavy = procdim.back(); diff --git a/Src/Base/AMReX_BoxList.cpp b/Src/Base/AMReX_BoxList.cpp index b5fbd58a556..1f9cc6a6cff 100644 --- a/Src/Base/AMReX_BoxList.cpp +++ b/Src/Base/AMReX_BoxList.cpp @@ -236,8 +236,8 @@ BoxList::BoxList (const Box& bx, int nboxes, Direction dir) bool BoxList::ok () const noexcept { - return std::all_of(this->cbegin(), this->cend(), - [] (Box const& b) { return b.ok(); }); + return std::ranges::all_of(*this, + [] (Box const& b) { return b.ok(); }); } bool @@ -259,8 +259,8 @@ BoxList::contains (const BoxList& bl) const BoxArray ba(*this); - return std::all_of(bl.cbegin(), bl.cend(), - [&ba] (Box const& b) { return ba.contains(b); }); + return std::ranges::all_of(bl, + [&ba] (Box const& b) { return ba.contains(b); }); } BoxList& diff --git a/Src/Base/AMReX_DistributionMapping.cpp b/Src/Base/AMReX_DistributionMapping.cpp index e88cc0c3597..0d7719b59e2 100644 --- a/Src/Base/AMReX_DistributionMapping.cpp +++ b/Src/Base/AMReX_DistributionMapping.cpp @@ -180,10 +180,10 @@ DistributionMapping::Sort (std::vector& vec, if (vec.size() > 1) { if (reverse) { - std::stable_sort(vec.begin(), vec.end(), LIpairGT()); + std::ranges::stable_sort(vec, LIpairGT()); } else { - std::stable_sort(vec.begin(), vec.end(), LIpairLT()); + std::ranges::stable_sort(vec, LIpairLT()); } } } @@ -1049,8 +1049,8 @@ DistributionMapping::KnapSackProcessorMap (const DistributionMapping& olddm, } } - AMREX_ASSERT(std::none_of(m_ref->m_pmap.cbegin(), m_ref->m_pmap.cend(), - [] (int i) { return i < 0; })); + AMREX_ASSERT(std::ranges::none_of(m_ref->m_pmap, + [] (int i) { return i < 0; })); } } } @@ -1590,7 +1590,7 @@ DistributionMapping::ConvertCostRealToLong (const Vector& rcost) { Vector cost(rcost.size()); - Real wmax = *std::max_element(rcost.begin(), rcost.end()); + Real wmax = *std::ranges::max_element(rcost); Real scale = (wmax == 0) ? 1.e9_rt : 1.e9_rt/wmax; for (Long i = 0; i < rcost.size(); ++i) { diff --git a/Src/Base/AMReX_Enum.H b/Src/Base/AMReX_Enum.H index e0d18e08065..fefc9310ab1 100644 --- a/Src/Base/AMReX_Enum.H +++ b/Src/Base/AMReX_Enum.H @@ -36,9 +36,9 @@ namespace detail } else if (kv.size() == 2) { auto const& value_string = amrex::trim(kv[1]); // For k = v, find if v exists as a key. If not, v must be an int. - auto it = std::find_if(r.begin(), r.end(), - [&] (auto const& x) -> bool - { return x.first == value_string; }); + auto it = std::ranges::find_if(r, + [&] (auto const& x) -> bool + { return x.first == value_string; }); T this_value; if (it != r.end()) { this_value = it->second; @@ -90,9 +90,9 @@ namespace detail T getEnum (std::string_view const& s) { auto const& kv = getEnumNameValuePairs(); - auto it = std::find_if(kv.begin(), kv.end(), - [&] (auto const& x) -> bool - { return x.first == s; }); + auto it = std::ranges::find_if(kv, + [&] (auto const& x) -> bool + { return x.first == s; }); if (it != kv.end()) { return it->second; } else { @@ -125,9 +125,9 @@ namespace detail { auto const& kv = getEnumNameValuePairs(); std::string ls = amrex::toLower(std::string(s)); - auto it = std::find_if(kv.begin(), kv.end(), - [&] (auto const& x) -> bool - { return amrex::toLower(x.first) == ls; }); + auto it = std::ranges::find_if(kv, + [&] (auto const& x) -> bool + { return amrex::toLower(x.first) == ls; }); if (it != kv.end()) { return it->second; } else { @@ -157,9 +157,9 @@ namespace detail std::string getEnumNameString (T const& v) { auto const& kv = getEnumNameValuePairs(); - auto it = std::find_if(kv.begin(), kv.end(), - [&] (auto const& x) -> bool - { return x.second == v; }); + auto it = std::ranges::find_if(kv, + [&] (auto const& x) -> bool + { return x.second == v; }); if (it != kv.end()) { return it->first; } else { diff --git a/Src/Base/AMReX_FBI.H b/Src/Base/AMReX_FBI.H index 1b3f8cc13f0..ea166d5c3e3 100644 --- a/Src/Base/AMReX_FBI.H +++ b/Src/Base/AMReX_FBI.H @@ -1050,8 +1050,8 @@ FabArray::get_send_copy_tag_vector (Vector const& send_data, { using TagType = CommSendBufTag; - auto kit = std::find_if(send_cctc.begin(), send_cctc.end(), - [] (CopyComTagsContainer const* p) { return p != nullptr; }); + auto kit = std::ranges::find_if(send_cctc, + [] (CopyComTagsContainer const* p) { return p != nullptr; }); if (kit == send_cctc.end()) { return nullptr; } @@ -1147,8 +1147,8 @@ FabArray::get_recv_copy_tag_vector (Vector const& recv_data, { using TagType = CommRecvBufTag; - auto kit = std::find_if(recv_cctc.begin(), recv_cctc.end(), - [] (CopyComTagsContainer const* p) { return p != nullptr; }); + auto kit = std::ranges::find_if(recv_cctc, + [] (CopyComTagsContainer const* p) { return p != nullptr; }); if (kit == recv_cctc.end()) { return nullptr; } diff --git a/Src/Base/AMReX_FabArrayBase.cpp b/Src/Base/AMReX_FabArrayBase.cpp index b23bc098458..d768378518d 100644 --- a/Src/Base/AMReX_FabArrayBase.cpp +++ b/Src/Base/AMReX_FabArrayBase.cpp @@ -2403,9 +2403,9 @@ FabArrayBase::buildTileArray (const IntVect& tileSize, TileArray& ta) const const int nworkers = ParallelDescriptor::TeamSize(); if (nworkers > 1) { // reorder it so that each worker will be more likely to work on their own fabs - std::stable_sort(local_idxs.begin(), local_idxs.end(), [this](int i, int j) - { return this->distributionMap[this->indexArray[i]] - < this->distributionMap[this->indexArray[j]]; }); + std::ranges::stable_sort(local_idxs, [this](int i, int j) + { return this->distributionMap[this->indexArray[i]] + < this->distributionMap[this->indexArray[j]]; }); } #endif diff --git a/Src/Base/AMReX_FabArrayCommI.H b/Src/Base/AMReX_FabArrayCommI.H index 1eec379844c..6a1e165e551 100644 --- a/Src/Base/AMReX_FabArrayCommI.H +++ b/Src/Base/AMReX_FabArrayCommI.H @@ -240,7 +240,7 @@ FabArray::FillBoundary_finish () } } - int actual_n_rcvs = N_rcvs - std::count(fbd->recv_data.begin(), fbd->recv_data.end(), nullptr); + int actual_n_rcvs = N_rcvs - std::ranges::count(fbd->recv_data, nullptr); if (actual_n_rcvs > 0) { ParallelDescriptor::Waitall(fbd->recv_reqs, fbd->recv_stat); @@ -597,7 +597,7 @@ FabArray::ParallelCopy_nowait (const FabArray& src, if (N_rcvs > 0) { PostRcvs(*thecpc.m_RcvTags, pcd->the_recv_data, pcd->recv_data, pcd->recv_size, pcd->recv_from, pcd->recv_reqs, NC, pcd->tag); - pcd->actual_n_rcvs = N_rcvs - std::count(pcd->recv_size.begin(), pcd->recv_size.end(), 0); + pcd->actual_n_rcvs = N_rcvs - std::ranges::count(pcd->recv_size, 0); } // diff --git a/Src/Base/AMReX_GpuDevice.cpp b/Src/Base/AMReX_GpuDevice.cpp index 1e5423bdb80..e059f8539c5 100644 --- a/Src/Base/AMReX_GpuDevice.cpp +++ b/Src/Base/AMReX_GpuDevice.cpp @@ -633,7 +633,7 @@ Device::initialize_gpu (bool minimal) } #endif } - auto found = std::find(sgss.begin(), sgss.end(), static_cast(warp_size)); + auto found = std::ranges::find(sgss, static_cast(warp_size)); if (found == sgss.end()) { amrex::Abort("Incorrect subgroup size"); } } #endif diff --git a/Src/Base/AMReX_MPMD.cpp b/Src/Base/AMReX_MPMD.cpp index 06a91c65cf4..dc30735204c 100644 --- a/Src/Base/AMReX_MPMD.cpp +++ b/Src/Base/AMReX_MPMD.cpp @@ -25,9 +25,9 @@ namespace { template int num_unique_elements (std::vector& v) { - std::sort(v.begin(), v.end()); - auto last = std::unique(v.begin(), v.end()); - return last - v.begin(); + std::ranges::sort(v); + auto last = std::ranges::unique(v); + return static_cast(last.begin() - v.begin()); } } diff --git a/Src/Base/AMReX_MemProfiler.cpp b/Src/Base/AMReX_MemProfiler.cpp index faccae225ac..8cb93f9470c 100644 --- a/Src/Base/AMReX_MemProfiler.cpp +++ b/Src/Base/AMReX_MemProfiler.cpp @@ -25,7 +25,7 @@ void MemProfiler::add (const std::string& name, std::function&& f) { MemProfiler& mprofiler = getInstance(); - auto it = std::find(mprofiler.the_names.begin(), mprofiler.the_names.end(), name); + auto it = std::ranges::find(mprofiler.the_names, name); if (it != mprofiler.the_names.end()) { std::string s = "MemProfiler::add (MemInfo) failed because " + name + " already existed"; amrex::Abort(s.c_str()); @@ -38,7 +38,7 @@ void MemProfiler::add (const std::string& name, std::function&& f) { MemProfiler& mprofiler = getInstance(); - auto it = std::find(mprofiler.the_names_builds.begin(), mprofiler.the_names_builds.end(), name); + auto it = std::ranges::find(mprofiler.the_names_builds, name); if (it != mprofiler.the_names_builds.end()) { std::string s = "MemProfiler::add (NBuildsInfo) failed because " + name + " already existed"; amrex::Abort(s.c_str()); @@ -249,8 +249,8 @@ MemProfiler::report_ (const std::string& prefix, const std::string& memory_log_n std::vector idxs(the_names.size()); std::iota(idxs.begin(), idxs.end(), 0); - std::sort(idxs.begin(), idxs.end(), [&](int i, int j) - { return hwm_max[i] > hwm_max[j]; }); + std::ranges::sort(idxs, [&](int i, int j) + { return hwm_max[i] > hwm_max[j]; }); for (int ii = 0; ii < idxs.size(); ++ii) { int i = idxs[ii]; diff --git a/Src/Base/AMReX_ParallelDescriptor.cpp b/Src/Base/AMReX_ParallelDescriptor.cpp index afb6cc2a412..b9f2084c7dc 100644 --- a/Src/Base/AMReX_ParallelDescriptor.cpp +++ b/Src/Base/AMReX_ParallelDescriptor.cpp @@ -173,18 +173,21 @@ namespace amrex::ParallelDescriptor { std::vector PMI_y_meshcoord(all_y_meshcoords, all_y_meshcoords + ParallelDescriptor::NProcs()); std::vector PMI_z_meshcoord(all_z_meshcoords, all_z_meshcoords + ParallelDescriptor::NProcs()); - std::sort(PMI_x_meshcoord.begin(), PMI_x_meshcoord.end()); - std::sort(PMI_y_meshcoord.begin(), PMI_y_meshcoord.end()); - std::sort(PMI_z_meshcoord.begin(), PMI_z_meshcoord.end()); + std::ranges::sort(PMI_x_meshcoord); + std::ranges::sort(PMI_y_meshcoord); + std::ranges::sort(PMI_z_meshcoord); - auto last = std::unique(PMI_x_meshcoord.begin(), PMI_x_meshcoord.end()); - amrex::Print() << "# of unique groups: " << std::distance(PMI_x_meshcoord.begin(), last) << '\n'; + auto last = std::ranges::unique(PMI_x_meshcoord); + amrex::Print() << "# of unique groups: " + << std::distance(PMI_x_meshcoord.begin(), last.begin()) << '\n'; - last = std::unique(PMI_y_meshcoord.begin(), PMI_y_meshcoord.end()); - amrex::Print() << "# of unique groups: " << std::distance(PMI_y_meshcoord.begin(), last) << '\n'; + last = std::ranges::unique(PMI_y_meshcoord); + amrex::Print() << "# of unique groups: " + << std::distance(PMI_y_meshcoord.begin(), last.begin()) << '\n'; - last = std::unique(PMI_z_meshcoord.begin(), PMI_z_meshcoord.end()); - amrex::Print() << "# of unique groups: " << std::distance(PMI_z_meshcoord.begin(), last) << '\n'; + last = std::ranges::unique(PMI_z_meshcoord); + amrex::Print() << "# of unique groups: " + << std::distance(PMI_z_meshcoord.begin(), last.begin()) << '\n'; } #endif diff --git a/Src/Base/AMReX_ParmParse.cpp b/Src/Base/AMReX_ParmParse.cpp index b99c9348aef..905a79e1cf5 100644 --- a/Src/Base/AMReX_ParmParse.cpp +++ b/Src/Base/AMReX_ParmParse.cpp @@ -703,13 +703,12 @@ read_file (const char* fname, ParmParse::Table& tab) continue; } - if (std::find(std::begin(valid_region), std::end(valid_region), false) - != std::end(valid_region)) { + if (std::ranges::find(valid_region, false) != std::end(valid_region)) { continue; } - auto r = std::find_if(std::begin(line), std::end(line), - [](int c) -> bool { return !std::isspace(c); }); + auto r = std::ranges::find_if(line, + [](int c) -> bool { return !std::isspace(c); }); if (fortran_namelist) { // already inside fortran namelist // os_fortran << line << "\n"; // pgi and ibm do not like `\n`. We strip comments for them too. @@ -1455,10 +1454,10 @@ ppinit (int argc, char** argv, const char* parfile, ParmParse::Table& table) for (auto& [name, arg_entry] : arg_table) { auto& src = arg_entry.m_vals; auto& dst = table[name].m_vals; - std::move(std::begin(src), std::end(src), std::back_inserter(dst)); + std::ranges::move(src, std::back_inserter(dst)); auto& src_quotes = arg_entry.m_quotes; auto& dst_quotes = table[name].m_quotes; - std::move(std::begin(src_quotes), std::end(src_quotes), std::back_inserter(dst_quotes)); + std::ranges::move(src_quotes, std::back_inserter(dst_quotes)); } } initialized = true; @@ -1468,17 +1467,17 @@ bool unused_table_entries_q (const ParmParse::Table& table, const std::string& prefix = std::string()) { if (prefix.empty()) { - return std::any_of(table.begin(), table.end(), - [] (auto const& x) -> bool { - return x.second.m_count == 0; - }); + return std::ranges::any_of(table, + [] (auto const& x) -> bool { + return x.second.m_count == 0; + }); } else { auto s = prefix + '.'; - return std::any_of(table.begin(), table.end(), - [&] (auto const& x) -> bool { - return x.second.m_count == 0 - && x.first.substr(0,s.size()) == s; - }); + return std::ranges::any_of(table, + [&] (auto const& x) -> bool { + return x.second.m_count == 0 + && x.first.substr(0,s.size()) == s; + }); } } @@ -1491,7 +1490,7 @@ void pp_print_unused (const std::string& pfx, const ParmParse::Table& table) sorted_names.push_back(name); } } - std::sort(sorted_names.begin(), sorted_names.end()); + std::ranges::sort(sorted_names); for (auto const& name : sorted_names) { auto const& entry = table.at(name); @@ -1696,7 +1695,7 @@ ParmParse::getUnusedInputs (const std::string& prefix) sorted_names.push_back(name); } } - std::sort(sorted_names.begin(), sorted_names.end()); + std::ranges::sort(sorted_names); std::vector r; for (auto const& name : sorted_names) { @@ -1789,7 +1788,7 @@ ParmParse::dumpTable (std::ostream& os, bool prettyPrint) for (auto const& [name, entry] : g_table) { sorted_names.push_back(name); } - std::sort(sorted_names.begin(), sorted_names.end()); + std::ranges::sort(sorted_names); for (auto const& name : sorted_names) { auto const& entry = g_table[name]; @@ -1828,7 +1827,7 @@ void pretty_print_table (std::ostream& os, PPFlag pp_flag) } if (to_print) { sorted_names.push_back(name); } } - std::sort(sorted_names.begin(), sorted_names.end()); + std::ranges::sort(sorted_names); for (auto const& name : sorted_names) { auto const& entry = g_table[name]; diff --git a/Src/Base/AMReX_PlotFileDataImpl.cpp b/Src/Base/AMReX_PlotFileDataImpl.cpp index 8516ac71331..bc01bc4b88c 100644 --- a/Src/Base/AMReX_PlotFileDataImpl.cpp +++ b/Src/Base/AMReX_PlotFileDataImpl.cpp @@ -132,7 +132,7 @@ MultiFab PlotFileDataImpl::get (int level, std::string const& varname) { MultiFab mf(m_ba[level], m_dmap[level], 1, m_ngrow[level]); - auto r = std::find(std::begin(m_var_names), std::end(m_var_names), varname); + auto r = std::ranges::find(m_var_names, varname); if (r == std::end(m_var_names)) { amrex::Abort("PlotFileDataImpl::get: varname not found "+varname); } else { diff --git a/Src/Base/AMReX_String.cpp b/Src/Base/AMReX_String.cpp index 8f3b654fd39..65ac2ba4663 100644 --- a/Src/Base/AMReX_String.cpp +++ b/Src/Base/AMReX_String.cpp @@ -10,15 +10,15 @@ namespace amrex { std::string toLower (std::string s) { - std::transform(s.begin(), s.end(), s.begin(), - [](unsigned char c) { return std::tolower(c); }); + std::ranges::transform(s, s.begin(), + [](unsigned char c) { return std::tolower(c); }); return s; } std::string toUpper (std::string s) { - std::transform(s.begin(), s.end(), s.begin(), - [](unsigned char c) { return std::toupper(c); }); + std::ranges::transform(s, s.begin(), + [](unsigned char c) { return std::toupper(c); }); return s; } diff --git a/Src/Base/AMReX_TinyProfiler.cpp b/Src/Base/AMReX_TinyProfiler.cpp index 9defd15329d..bceb6e73b26 100644 --- a/Src/Base/AMReX_TinyProfiler.cpp +++ b/Src/Base/AMReX_TinyProfiler.cpp @@ -950,7 +950,7 @@ TinyProfiler::StartRegion (std::string regname) noexcept { if (!enabled) { return; } - if (std::find(regionstack.begin(), regionstack.end(), regname) == regionstack.end()) { + if (std::ranges::find(regionstack, regname) == regionstack.end()) { regionstack.emplace_back(std::move(regname)); } } diff --git a/Src/Base/AMReX_Vector.H b/Src/Base/AMReX_Vector.H index ff90cab2188..d06af7190ba 100644 --- a/Src/Base/AMReX_Vector.H +++ b/Src/Base/AMReX_Vector.H @@ -196,13 +196,13 @@ namespace amrex template void FillNull (Vector& a) { - std::for_each(a.begin(), a.end(), [](T*& p) { p = nullptr; }); + std::ranges::for_each(a, [](T*& p) { p = nullptr; }); } template void FillNull (Vector >& a) { - std::for_each(a.begin(), a.end(), [](std::unique_ptr& p) { p.reset(); }); + std::ranges::for_each(a, [](std::unique_ptr& p) { p.reset(); }); } ///////////////////////////////////////////////////////////// @@ -210,8 +210,8 @@ namespace amrex template void RemoveDuplicates (Vector& vec) { std::sort(vec.begin(), vec.end()); - auto it = std::unique(vec.begin(), vec.end()); - vec.erase(it, vec.end()); + auto it = std::ranges::unique(vec); + vec.erase(it.begin(), vec.end()); } /// \cond DOXYGEN_IGNORE diff --git a/Src/Base/Parser/AMReX_IParser_Exe.cpp b/Src/Base/Parser/AMReX_IParser_Exe.cpp index abe8f1981ae..b7779046354 100644 --- a/Src/Base/Parser/AMReX_IParser_Exe.cpp +++ b/Src/Base/Parser/AMReX_IParser_Exe.cpp @@ -1,14 +1,17 @@ #include +#include + namespace amrex { namespace { int iparser_local_symbol_index (struct iparser_symbol* sym, Vector& local_variables) { - auto r = std::find_if(local_variables.rbegin(), local_variables.rend(), - [=] (char* i) { return std::strcmp(sym->name, i) == 0; }); - if (r != local_variables.rend()) { - return static_cast(std::distance(r, local_variables.rend())) - 1; + auto const reversed_local_variables = std::views::reverse(local_variables); + auto r = std::ranges::find_if(reversed_local_variables, + [=] (char* i) { return std::strcmp(sym->name, i) == 0; }); + if (r != reversed_local_variables.end()) { + return static_cast(std::distance(r, reversed_local_variables.end())) - 1; } else { return -1; } diff --git a/Src/Base/Parser/AMReX_Parser_Exe.cpp b/Src/Base/Parser/AMReX_Parser_Exe.cpp index f22894a17a8..c2ad991e042 100644 --- a/Src/Base/Parser/AMReX_Parser_Exe.cpp +++ b/Src/Base/Parser/AMReX_Parser_Exe.cpp @@ -1,4 +1,5 @@ #include +#include #include namespace amrex { @@ -13,11 +14,12 @@ parser_compile_exe_size (struct parser_node* node, char*& p, std::size_t& exe_si { AMREX_ASSERT(snode->type == PARSER_SYMBOL); auto* sym = (struct parser_symbol*)snode; - auto r = std::find_if(local_variables.rbegin(), local_variables.rend(), - [=] (char const* i) - { return std::strcmp(sym->name, i) == 0; }); - if (r != local_variables.rend()) { - return static_cast(std::distance(r, local_variables.rend())) - 1 + auto const reversed_local_variables = std::views::reverse(local_variables); + auto r = std::ranges::find_if(reversed_local_variables, + [=] (char const* i) + { return std::strcmp(sym->name, i) == 0; }); + if (r != reversed_local_variables.end()) { + return static_cast(std::distance(r, reversed_local_variables.end())) - 1 + AMREX_PARSER_LOCAL_IDX0; } else { if (sym->ip < 0) { diff --git a/Src/EB/AMReX_EB2.cpp b/Src/EB/AMReX_EB2.cpp index fb4cb522318..143b502d5d3 100644 --- a/Src/EB/AMReX_EB2.cpp +++ b/Src/EB/AMReX_EB2.cpp @@ -63,9 +63,9 @@ int NumCoarsenOpt () void IndexSpace::push (IndexSpace* ispace) { - auto r = std::find_if(m_instance.begin(), m_instance.end(), - [=] (const std::unique_ptr& x) -> bool - { return x.get() == ispace; }); + auto r = std::ranges::find_if(m_instance, + [=] (const std::unique_ptr& x) -> bool + { return x.get() == ispace; }); if (r == m_instance.end()) { m_instance.emplace_back(ispace); } else if (r+1 != m_instance.end()) { @@ -82,9 +82,9 @@ IndexSpace::push (std::unique_ptr ispace) void IndexSpace::erase (IndexSpace* ispace) { - auto r = std::find_if(m_instance.begin(), m_instance.end(), - [=] (const std::unique_ptr& x) -> bool - { return x.get() == ispace; }); + auto r = std::ranges::find_if(m_instance, + [=] (const std::unique_ptr& x) -> bool + { return x.get() == ispace; }); if (r != m_instance.end()) { m_instance.erase(r); } diff --git a/Src/EB/AMReX_EB2_IndexSpaceI.H b/Src/EB/AMReX_EB2_IndexSpaceI.H index 555b8727820..7ce151d6267 100644 --- a/Src/EB/AMReX_EB2_IndexSpaceI.H +++ b/Src/EB/AMReX_EB2_IndexSpaceI.H @@ -100,7 +100,7 @@ template const Level& IndexSpaceImp::getLevel (const Geometry& geom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), geom.Domain()); + auto it = std::ranges::find(m_domain, geom.Domain()); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(it != std::end(m_domain), "IndexSpaceImp::getLevel: Geometry not found"); int i = std::distance(m_domain.begin(), it); @@ -111,7 +111,7 @@ template const Geometry& IndexSpaceImp::getGeometry (const Box& dom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), dom); + auto it = std::ranges::find(m_domain, dom); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(it != std::end(m_domain), "IndexSpaceImp::getLevel: domain not found"); int i = std::distance(m_domain.begin(), it); diff --git a/Src/EB/AMReX_EB2_IndexSpace_STL.cpp b/Src/EB/AMReX_EB2_IndexSpace_STL.cpp index 5d4b23080e1..944e126803f 100644 --- a/Src/EB/AMReX_EB2_IndexSpace_STL.cpp +++ b/Src/EB/AMReX_EB2_IndexSpace_STL.cpp @@ -74,7 +74,7 @@ IndexSpaceSTL::IndexSpaceSTL (const std::string& stl_file, Real stl_scale, const Level& IndexSpaceSTL::getLevel (const Geometry& geom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), geom.Domain()); + auto it = std::ranges::find(m_domain, geom.Domain()); auto i = std::distance(m_domain.begin(), it); return m_stllevel[i]; } @@ -82,7 +82,7 @@ IndexSpaceSTL::getLevel (const Geometry& geom) const const Geometry& IndexSpaceSTL::getGeometry (const Box& dom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), dom); + auto it = std::ranges::find(m_domain, dom); auto i = std::distance(m_domain.begin(), it); return m_geom[i]; } diff --git a/Src/EB/AMReX_EB2_IndexSpace_chkpt_file.cpp b/Src/EB/AMReX_EB2_IndexSpace_chkpt_file.cpp index 966b5c424e1..f89667dc186 100644 --- a/Src/EB/AMReX_EB2_IndexSpace_chkpt_file.cpp +++ b/Src/EB/AMReX_EB2_IndexSpace_chkpt_file.cpp @@ -64,7 +64,7 @@ IndexSpaceChkptFile::IndexSpaceChkptFile (const ChkptFile& chkpt_file, const Level& IndexSpaceChkptFile::getLevel (const Geometry& geom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), geom.Domain()); + auto it = std::ranges::find(m_domain, geom.Domain()); auto i = std::distance(m_domain.begin(), it); return m_chkpt_file_level[i]; } @@ -72,7 +72,7 @@ IndexSpaceChkptFile::getLevel (const Geometry& geom) const const Geometry& IndexSpaceChkptFile::getGeometry (const Box& dom) const { - auto it = std::find(std::begin(m_domain), std::end(m_domain), dom); + auto it = std::ranges::find(m_domain, dom); auto i = std::distance(m_domain.begin(), it); return m_geom[i]; } diff --git a/Src/EB/AMReX_EBToPVD.cpp b/Src/EB/AMReX_EBToPVD.cpp index 91edf68b0ce..959c85aa89e 100644 --- a/Src/EB/AMReX_EBToPVD.cpp +++ b/Src/EB/AMReX_EBToPVD.cpp @@ -348,7 +348,7 @@ void EBToPVD::calc_alpha(std::array& alpha, const Real* dx) { // default (large) value - std::fill(alpha.begin(), alpha.end(), 10.0); + std::ranges::fill(alpha, 10.0); // Ray-xAxis intersection if(std::abs(n0[0]) > std::numeric_limits::epsilon()) { @@ -379,7 +379,7 @@ void EBToPVD::calc_intersects(int& int_count, std::array& intersects_fl const std::array& alpha) { int_count = 0; - std::fill(intersects_flags.begin(), intersects_flags.end(), false); + std::ranges::fill(intersects_flags, false); for(int lc1 = 0; lc1 < 12; ++lc1) { if(intersects(alpha[lc1])) { diff --git a/Src/Extern/Bittree/AMReX_Bittree.cpp b/Src/Extern/Bittree/AMReX_Bittree.cpp index 0efd784e1cb..ad4bbb30c5a 100644 --- a/Src/Extern/Bittree/AMReX_Bittree.cpp +++ b/Src/Extern/Bittree/AMReX_Bittree.cpp @@ -176,7 +176,7 @@ void btUnit::btCheckRefine (BittreeAmr* const mesh, std::vector& btTags, do { // Clear out ref_test - std::fill(ref_test.begin(),ref_test.end(),0); + std::ranges::fill(ref_test, 0); // Check neighbors - if any adjacent child of a neighbor is either a parent // or marked for refinement, this block needs to be refined. diff --git a/Src/Extern/ProfParser/AMReX_CommProfStats.cpp b/Src/Extern/ProfParser/AMReX_CommProfStats.cpp index d6f82011c3f..51bdf978795 100644 --- a/Src/Extern/ProfParser/AMReX_CommProfStats.cpp +++ b/Src/Extern/ProfParser/AMReX_CommProfStats.cpp @@ -204,7 +204,7 @@ void CommProfStats::AddReduction(const long rnum, const long index) { // ---------------------------------------------------------------------- void CommProfStats::AddNameTagName(const string &name) { - if(std::find(nameTagNames.begin(), nameTagNames.end(), name) == nameTagNames.end()) { + if(std::ranges::find(nameTagNames, name) == nameTagNames.end()) { nameTagNames.push_back(name); } } @@ -302,8 +302,7 @@ void CommProfStats::AddTopoCoord(const int nid, const int node, // ---------------------------------------------------------------------- void CommProfStats::AddCommHeaderFileName(const string &hfn) { - if(std::find(commHeaderFileNames.begin(), - commHeaderFileNames.end(), hfn) == commHeaderFileNames.end()) + if(std::ranges::find(commHeaderFileNames, hfn) == commHeaderFileNames.end()) { commHeaderFileNames.push_back(hfn); } @@ -781,9 +780,9 @@ void CommProfStats::ReportSyncPointDataSetup(long &nBMax, long &nRMax) } } //nBMin = *std::min_element(nBarriers.begin(), nBarriers.end()); - nBMax = *std::max_element(nBarriers.begin(), nBarriers.end()); + nBMax = *std::ranges::max_element(nBarriers); //nRMin = *std::min_element(nReductions.begin(), nReductions.end()); - nRMax = *std::max_element(nReductions.begin(), nReductions.end()); + nRMax = *std::ranges::max_element(nReductions); } diff --git a/Src/Extern/ProfParser/AMReX_RegionsProfStats.cpp b/Src/Extern/ProfParser/AMReX_RegionsProfStats.cpp index 4f3b2423c01..d22ca60ff9d 100644 --- a/Src/Extern/ProfParser/AMReX_RegionsProfStats.cpp +++ b/Src/Extern/ProfParser/AMReX_RegionsProfStats.cpp @@ -98,8 +98,7 @@ RegionsProfStats::~RegionsProfStats() { // ---------------------------------------------------------------------- void RegionsProfStats::AddCStatsHeaderFileName(const string &hfn) { - if(std::find(regHeaderFileNames.begin(), - regHeaderFileNames.end(), hfn) == regHeaderFileNames.end()) + if(std::ranges::find(regHeaderFileNames, hfn) == regHeaderFileNames.end()) { regHeaderFileNames.push_back(hfn); } diff --git a/Src/Extern/SUNDIALS/AMReX_SUNMemory.cpp b/Src/Extern/SUNDIALS/AMReX_SUNMemory.cpp index 82c8d70d439..451d6ed8a24 100644 --- a/Src/Extern/SUNDIALS/AMReX_SUNMemory.cpp +++ b/Src/Extern/SUNDIALS/AMReX_SUNMemory.cpp @@ -162,9 +162,9 @@ void MemoryHelper::Initialize(int nthreads) { if (initialized.empty()) { initialized.resize(nthreads); - std::fill(initialized.begin(), initialized.end(), 0); + std::ranges::fill(initialized, 0); the_sunmemory_helper.resize(nthreads); - std::fill(the_sunmemory_helper.begin(), the_sunmemory_helper.end(), nullptr); + std::ranges::fill(the_sunmemory_helper, nullptr); } for (int i = 0; i < nthreads; i++) { if (initialized[i]) { continue; } diff --git a/Src/Extern/SUNDIALS/AMReX_Sundials_Core.cpp b/Src/Extern/SUNDIALS/AMReX_Sundials_Core.cpp index 4533a155ccd..cbfe51e6e4d 100644 --- a/Src/Extern/SUNDIALS/AMReX_Sundials_Core.cpp +++ b/Src/Extern/SUNDIALS/AMReX_Sundials_Core.cpp @@ -17,9 +17,9 @@ void Initialize(int nthreads) // Initialize the sundials context if (initialized.empty()) { initialized.resize(nthreads); - std::fill(initialized.begin(), initialized.end(), 0); + std::ranges::fill(initialized, 0); the_sundials_context.resize(nthreads); - std::fill(the_sundials_context.begin(), the_sundials_context.end(), nullptr); + std::ranges::fill(the_sundials_context, nullptr); } for (int i = 0; i < nthreads; i++) { if (initialized[i]) { continue; } diff --git a/Src/F_Interfaces/AmrCore/AMReX_FlashFluxRegister.cpp b/Src/F_Interfaces/AmrCore/AMReX_FlashFluxRegister.cpp index 0e804f76a12..83f46f35d26 100644 --- a/Src/F_Interfaces/AmrCore/AMReX_FlashFluxRegister.cpp +++ b/Src/F_Interfaces/AmrCore/AMReX_FlashFluxRegister.cpp @@ -124,9 +124,9 @@ void FlashFluxRegister::define (const BoxArray& fba, const BoxArray& cba, cell_faces.clear(); crsefine_faces.clear(); } else { - auto found = std::find_if(cell_faces.begin(), cell_faces.end(), - [&] (std::pair const& x) - { return x.second.contains(b); }); + auto found = std::ranges::find_if(cell_faces, + [&] (std::pair const& x) + { return x.second.contains(b); }); if (found != cell_faces.end()) { crsefine_faces.push_back(found->first); cell_faces.erase(found); diff --git a/Src/LinearSolvers/AMReX_CSR.H b/Src/LinearSolvers/AMReX_CSR.H index 1619b12d255..7d10a821502 100644 --- a/Src/LinearSolvers/AMReX_CSR.H +++ b/Src/LinearSolvers/AMReX_CSR.H @@ -363,10 +363,10 @@ void CSR::sort_on_host () perm [i] = i; } - std::sort(perm.begin(), perm.end(), - [&] (int i0, int i1) { - return lcols[i0] < lcols[i1]; - }); + std::ranges::sort(perm, + [&] (int i0, int i1) { + return lcols[i0] < lcols[i1]; + }); for (int out = 0; out < len; ++out) { auto const in = perm[out]; diff --git a/Src/LinearSolvers/MLMG/AMReX_MLABecLaplacian.H b/Src/LinearSolvers/MLMG/AMReX_MLABecLaplacian.H index 4363deba4f9..d38351b112f 100644 --- a/Src/LinearSolvers/MLMG/AMReX_MLABecLaplacian.H +++ b/Src/LinearSolvers/MLMG/AMReX_MLABecLaplacian.H @@ -741,8 +741,8 @@ MLABecLaplacianT::update_singular_flags () { m_is_singular.clear(); m_is_singular.resize(this->m_num_amr_levels, false); - auto itlo = std::find(this->m_lobc[0].begin(), this->m_lobc[0].end(), BCType::Dirichlet); - auto ithi = std::find(this->m_hibc[0].begin(), this->m_hibc[0].end(), BCType::Dirichlet); + auto itlo = std::ranges::find(this->m_lobc[0], BCType::Dirichlet); + auto ithi = std::ranges::find(this->m_hibc[0], BCType::Dirichlet); if (itlo == this->m_lobc[0].end() && ithi == this->m_hibc[0].end()) { // No Dirichlet for (int alev = 0; alev < this->m_num_amr_levels; ++alev) diff --git a/Src/LinearSolvers/MLMG/AMReX_MLALaplacian.H b/Src/LinearSolvers/MLMG/AMReX_MLALaplacian.H index 2e3feceabc9..3e456c0a01e 100644 --- a/Src/LinearSolvers/MLMG/AMReX_MLALaplacian.H +++ b/Src/LinearSolvers/MLMG/AMReX_MLALaplacian.H @@ -217,8 +217,8 @@ MLALaplacianT::updateSingularFlag () { m_is_singular.clear(); m_is_singular.resize(this->m_num_amr_levels, false); - auto itlo = std::find(this->m_lobc[0].begin(), this->m_lobc[0].end(), BCType::Dirichlet); - auto ithi = std::find(this->m_hibc[0].begin(), this->m_hibc[0].end(), BCType::Dirichlet); + auto itlo = std::ranges::find(this->m_lobc[0], BCType::Dirichlet); + auto ithi = std::ranges::find(this->m_hibc[0], BCType::Dirichlet); if (itlo == this->m_lobc[0].end() && ithi == this->m_hibc[0].end()) { // No Dirichlet for (int alev = 0; alev < this->m_num_amr_levels; ++alev) diff --git a/Src/LinearSolvers/MLMG/AMReX_MLCellLinOp.H b/Src/LinearSolvers/MLMG/AMReX_MLCellLinOp.H index 0f77a4bcd8f..7ac2dc0f38e 100644 --- a/Src/LinearSolvers/MLMG/AMReX_MLCellLinOp.H +++ b/Src/LinearSolvers/MLMG/AMReX_MLCellLinOp.H @@ -968,7 +968,7 @@ MLCellLinOpT::makeNGrids (int grid_size) const } std::sort(bv.begin(), bv.end()); - bv.erase(std::unique(bv.begin(), bv.end()), bv.end()); + bv.erase(std::ranges::unique(bv).begin(), bv.end()); BoxList bl(std::move(bv)); diff --git a/Src/LinearSolvers/MLMG/AMReX_MLLinOp.H b/Src/LinearSolvers/MLMG/AMReX_MLLinOp.H index e51c05cefba..ee025d13e43 100644 --- a/Src/LinearSolvers/MLMG/AMReX_MLLinOp.H +++ b/Src/LinearSolvers/MLMG/AMReX_MLLinOp.H @@ -1411,9 +1411,9 @@ MLLinOpT::makeSubCommunicator (const DistributionMapping& dm) #ifdef BL_USE_MPI Vector newgrp_ranks = dm.ProcessorMap(); - std::sort(newgrp_ranks.begin(), newgrp_ranks.end()); - auto last = std::unique(newgrp_ranks.begin(), newgrp_ranks.end()); - newgrp_ranks.erase(last, newgrp_ranks.end()); + std::ranges::sort(newgrp_ranks); + auto last = std::ranges::unique(newgrp_ranks); + newgrp_ranks.erase(last.begin(), newgrp_ranks.end()); MPI_Comm newcomm; MPI_Group defgrp, newgrp; diff --git a/Src/LinearSolvers/MLMG/AMReX_MLPoisson.H b/Src/LinearSolvers/MLMG/AMReX_MLPoisson.H index 17d426c9c6f..b1142ec221a 100644 --- a/Src/LinearSolvers/MLMG/AMReX_MLPoisson.H +++ b/Src/LinearSolvers/MLMG/AMReX_MLPoisson.H @@ -148,8 +148,8 @@ MLPoissonT::prepareForSolve () m_is_singular.clear(); m_is_singular.resize(this->m_num_amr_levels, false); - auto itlo = std::find(this->m_lobc[0].begin(), this->m_lobc[0].end(), BCType::Dirichlet); - auto ithi = std::find(this->m_hibc[0].begin(), this->m_hibc[0].end(), BCType::Dirichlet); + auto itlo = std::ranges::find(this->m_lobc[0], BCType::Dirichlet); + auto ithi = std::ranges::find(this->m_hibc[0], BCType::Dirichlet); if (itlo == this->m_lobc[0].end() && ithi == this->m_hibc[0].end()) { // No Dirichlet for (int alev = 0; alev < this->m_num_amr_levels; ++alev) diff --git a/Src/Particle/AMReX_ParticleBufferMap.cpp b/Src/Particle/AMReX_ParticleBufferMap.cpp index d9b3d72a484..2f8abe98248 100644 --- a/Src/Particle/AMReX_ParticleBufferMap.cpp +++ b/Src/Particle/AMReX_ParticleBufferMap.cpp @@ -82,7 +82,7 @@ void ParticleBufferMap::define (const ParGDBBase* a_gdb, bool a_do_tiling, } } - std::sort(box_tile_lev_proc_ids.begin(), box_tile_lev_proc_ids.end(), + std::ranges::sort(box_tile_lev_proc_ids, [](const FourIntTuple& a, const FourIntTuple& b) -> bool { int pid_a = std::get<3>(a); diff --git a/Src/Particle/AMReX_ParticleContainer.H b/Src/Particle/AMReX_ParticleContainer.H index bb9cc487090..28a77b3a2e5 100644 --- a/Src/Particle/AMReX_ParticleContainer.H +++ b/Src/Particle/AMReX_ParticleContainer.H @@ -1293,7 +1293,7 @@ public: void AddRealComp (std::string const & name, int communicate=1) { // names must be unique - auto const it = std::find(m_soa_rdata_names.begin(), m_soa_rdata_names.end(), name); + auto const it = std::ranges::find(m_soa_rdata_names, name); if (it != m_soa_rdata_names.end()) { throw std::runtime_error("AddRealComp: name '" + name + "' is already present in the SoA."); } @@ -1326,7 +1326,7 @@ public: void AddIntComp (std::string const & name, int communicate=1) { // names must be unique - auto const it = std::find(m_soa_idata_names.begin(), m_soa_idata_names.end(), name); + auto const it = std::ranges::find(m_soa_idata_names, name); if (it != m_soa_idata_names.end()) { throw std::runtime_error("AddIntComp: name '" + name + "' is already present in the SoA."); } diff --git a/Src/Particle/AMReX_ParticleContainerI.H b/Src/Particle/AMReX_ParticleContainerI.H index e0eb6c8496c..8e5f7691ff0 100644 --- a/Src/Particle/AMReX_ParticleContainerI.H +++ b/Src/Particle/AMReX_ParticleContainerI.H @@ -139,7 +139,7 @@ template< bool ParticleContainer_impl::HasRealComp (std::string const & name) { - return std::find(m_soa_rdata_names.begin(), m_soa_rdata_names.end(), name) != std::end(m_soa_rdata_names); + return std::ranges::find(m_soa_rdata_names, name) != std::end(m_soa_rdata_names); } template ::HasIntComp (std::string const & name) { - return std::find(m_soa_idata_names.begin(), m_soa_idata_names.end(), name) != std::end(m_soa_idata_names); + return std::ranges::find(m_soa_idata_names, name) != std::end(m_soa_idata_names); } template< @@ -160,7 +160,7 @@ template< int ParticleContainer_impl::GetRealCompIndex (std::string const & name) { - const auto it = std::find(m_soa_rdata_names.begin(), m_soa_rdata_names.end(), name); + const auto it = std::ranges::find(m_soa_rdata_names, name); if (it == m_soa_rdata_names.end()) { @@ -182,7 +182,7 @@ template< int ParticleContainer_impl::GetIntCompIndex (std::string const & name) { - const auto it = std::find(m_soa_idata_names.begin(), m_soa_idata_names.end(), name); + const auto it = std::ranges::find(m_soa_idata_names, name); if (it == m_soa_idata_names.end()) { diff --git a/Src/Particle/AMReX_ParticleTile.H b/Src/Particle/AMReX_ParticleTile.H index d59f772b332..2a89e9146d8 100644 --- a/Src/Particle/AMReX_ParticleTile.H +++ b/Src/Particle/AMReX_ParticleTile.H @@ -1403,19 +1403,19 @@ struct ParticleTile } } - std::sort(pvs.begin(), pvs.end(), [] (auto const& a, auto const& b) { + std::ranges::sort(pvs, [] (auto const& a, auto const& b) { return (a.first->size() + a.second) > (b.first->size() + b.second); }); - std::sort(ids.begin(), ids.end(), [] (auto const& a, auto const& b) { + std::ranges::sort(ids, [] (auto const& a, auto const& b) { return (a.first->size() + a.second) > (b.first->size() + b.second); }); - std::sort(rvs.begin(), rvs.end(), [] (auto const& a, auto const& b) { + std::ranges::sort(rvs, [] (auto const& a, auto const& b) { return (a.first->size() + a.second) > (b.first->size() + b.second); }); - std::sort(ivs.begin(), ivs.end(), [] (auto const& a, auto const& b) { + std::ranges::sort(ivs, [] (auto const& a, auto const& b) { return (a.first->size() + a.second) > (b.first->size() + b.second); }); diff --git a/Src/Particle/AMReX_ParticleTileRT.H b/Src/Particle/AMReX_ParticleTileRT.H index 8c4dff93770..74de8bf3c18 100644 --- a/Src/Particle/AMReX_ParticleTileRT.H +++ b/Src/Particle/AMReX_ParticleTileRT.H @@ -800,7 +800,7 @@ private: static int get_idx_from_str (std::string const & name, std::vector* name_list) { AMREX_ALWAYS_ASSERT(name_list != nullptr); - auto const pos = std::find(name_list->begin(), name_list->end(), name); + auto const pos = std::ranges::find(*name_list, name); AMREX_ALWAYS_ASSERT(pos != name_list->end()); return static_cast(std::distance(name_list->begin(), pos)); } diff --git a/Src/Particle/AMReX_SparseBins.H b/Src/Particle/AMReX_SparseBins.H index 1629a997597..ae70666d146 100644 --- a/Src/Particle/AMReX_SparseBins.H +++ b/Src/Particle/AMReX_SparseBins.H @@ -147,8 +147,8 @@ public: Gpu::HostVector host_perm(nitems); std::iota(host_perm.begin(), host_perm.end(), 0); - std::sort(host_perm.begin(), host_perm.end(), - [&](int i, int j) {return host_cells[i] < host_cells[j];}); + std::ranges::sort(host_perm, + [&](int i, int j) {return host_cells[i] < host_cells[j];}); Gpu::HostVector host_bins; Gpu::HostVector host_offsets = {0}; diff --git a/Src/Particle/AMReX_StructOfArrays.H b/Src/Particle/AMReX_StructOfArrays.H index 67a9faeea82..7b62d968e33 100644 --- a/Src/Particle/AMReX_StructOfArrays.H +++ b/Src/Particle/AMReX_StructOfArrays.H @@ -118,7 +118,7 @@ struct StructOfArrays { */ [[nodiscard]] RealVector& GetRealData (std::string const & name) { AMREX_ALWAYS_ASSERT_WITH_MESSAGE(m_rdata_names != nullptr, "SoA Real names were not defined."); - auto const pos = std::find(m_rdata_names->begin(), m_rdata_names->end(), name); + auto const pos = std::ranges::find(*m_rdata_names, name); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(pos != m_rdata_names->end(), "Soa Real name='" + name + "' was not found components"); int const index = std::distance(m_rdata_names->begin(), pos); @@ -131,7 +131,7 @@ struct StructOfArrays { */ [[nodiscard]] const RealVector& GetRealData (std::string const & name) const { AMREX_ALWAYS_ASSERT_WITH_MESSAGE(m_rdata_names != nullptr, "SoA Real names were not defined."); - auto const pos = std::find(m_rdata_names->begin(), m_rdata_names->end(), name); + auto const pos = std::ranges::find(*m_rdata_names, name); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(pos != m_rdata_names->end(), "Soa Real name='" + name + "' was not found components"); int const index = std::distance(m_rdata_names->begin(), pos); @@ -184,7 +184,7 @@ struct StructOfArrays { */ [[nodiscard]] IntVector& GetIntData (std::string const & name) { AMREX_ALWAYS_ASSERT_WITH_MESSAGE(m_idata_names != nullptr, "SoA Int names were not defined."); - auto const pos = std::find(m_idata_names->begin(), m_idata_names->end(), name); + auto const pos = std::ranges::find(*m_idata_names, name); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(pos != m_idata_names->end(), "Soa Int name='" + name + "' was not found components"); int const index = std::distance(m_idata_names->begin(), pos); @@ -198,7 +198,7 @@ struct StructOfArrays { */ [[nodiscard]] const IntVector& GetIntData (std::string const & name) const { AMREX_ALWAYS_ASSERT_WITH_MESSAGE(m_idata_names != nullptr, "SoA Int names were not defined."); - auto const pos = std::find(m_idata_names->begin(), m_idata_names->end(), name); + auto const pos = std::ranges::find(*m_idata_names, name); AMREX_ALWAYS_ASSERT_WITH_MESSAGE(pos != m_idata_names->end(), "Soa Int name='" + name + "' was not found components"); int const index = std::distance(m_idata_names->begin(), pos); diff --git a/Tests/SIMD/main.cpp b/Tests/SIMD/main.cpp index 1d75f8b7c31..75ec15450d0 100644 --- a/Tests/SIMD/main.cpp +++ b/Tests/SIMD/main.cpp @@ -265,7 +265,7 @@ int main (int argc, char* argv[]) Gpu::ManagedVector x_data(n); Gpu::ManagedVector y_data(n); std::iota(x_data.begin(), x_data.end(), ParticleReal(0)); - std::fill(y_data.begin(), y_data.end(), ParticleReal(100)); + std::ranges::fill(y_data, ParticleReal(100)); auto* x_ptr = x_data.data(); auto* y_ptr = y_data.data(); @@ -321,7 +321,7 @@ int main (int argc, char* argv[]) Gpu::ManagedVector x_data(n); Gpu::ManagedVector y_data(n); std::iota(x_data.begin(), x_data.end(), ParticleReal(0)); - std::fill(y_data.begin(), y_data.end(), ParticleReal(10)); + std::ranges::fill(y_data, ParticleReal(10)); auto* x_ptr = x_data.data(); auto* y_ptr = y_data.data(); diff --git a/Tools/Plotfile/faverage.cpp b/Tools/Plotfile/faverage.cpp index f7e4dd133aa..d2021147fcd 100644 --- a/Tools/Plotfile/faverage.cpp +++ b/Tools/Plotfile/faverage.cpp @@ -81,11 +81,11 @@ int main(int argc, char* argv[]) // density can be call "density" in Castro or "rho" in MAESTROeX int dens_comp = std::distance(var_names_pf.cbegin(), - std::find(var_names_pf.cbegin(), var_names_pf.cend(), "density")); + std::ranges::find(var_names_pf, "density")); if (dens_comp == var_names_pf.size()) { dens_comp = std::distance(var_names_pf.cbegin(), - std::find(var_names_pf.cbegin(), var_names_pf.cend(), "rho")); + std::ranges::find(var_names_pf, "rho")); } if (dens_comp == var_names_pf.size() && do_favre) { @@ -93,7 +93,7 @@ int main(int argc, char* argv[]) } int var_comp = std::distance(var_names_pf.cbegin(), - std::find(var_names_pf.cbegin(), var_names_pf.cend(), varname)); + std::ranges::find(var_names_pf, varname)); if (var_comp == var_names_pf.size()) { amrex::Error("variable " + varname + " not found"); diff --git a/Tools/Plotfile/fcompare.cpp b/Tools/Plotfile/fcompare.cpp index 9ee7e66e15a..b16692646ec 100644 --- a/Tools/Plotfile/fcompare.cpp +++ b/Tools/Plotfile/fcompare.cpp @@ -142,7 +142,7 @@ int main_main() Vector ivar_b(ncomp_a,-1); // in case the variables are not in the same order for (int n_a = 0; n_a < ncomp_a; ++n_a) { - auto r = std::find(std::begin(names_b), std::end(names_b), names_a[n_a]); + auto r = std::ranges::find(names_b, names_a[n_a]); if (r == std::end(names_b)) { amrex::Print() << " WARNING: variable " << names_a[n_a] << " not found in plotfile 2\n"; all_variables_found = false; @@ -162,7 +162,7 @@ int main_main() // also print out, as a diagnostic, those variables in plotfile 1 that // are not in plotfile 2 for (int n_b = 0; n_b < ncomp_b; ++n_b) { - auto r = std::find(std::begin(names_a),std::end(names_a),names_b[n_b]); + auto r = std::ranges::find(names_a, names_b[n_b]); if (r == std::end(names_a)) { amrex::Print() << " WARNING: variable " << names_b[n_b] << " not found in plotfile 1\n"; all_variables_found = false; @@ -332,8 +332,7 @@ int main_main() } global_error = std::max(global_error, - *(std::max_element(aerror.begin(), - aerror.end()))); + *(std::ranges::max_element(aerror))); for (int icomp_a = 0; icomp_a < ncomp_a; ++icomp_a) { any_nans = any_nans || has_nan_a[icomp_a] || has_nan_b[icomp_a]; diff --git a/Tools/Plotfile/fextract.cpp b/Tools/Plotfile/fextract.cpp index c51c6a0e0cc..ff23d740d71 100644 --- a/Tools/Plotfile/fextract.cpp +++ b/Tools/Plotfile/fextract.cpp @@ -120,11 +120,11 @@ void main_main() std::istringstream is(varnames_arg); var_names.assign(std::istream_iterator{is}, std::istream_iterator{ }); - var_names.erase(std::remove_if(var_names.begin(), var_names.end(), - [&](std::string const& x) { - return var_names_pf.end() == - std::find(var_names_pf.begin(), var_names_pf.end(), x); - }), + var_names.erase(std::ranges::remove_if(var_names, + [&](std::string const& x) { + return var_names_pf.end() == + std::ranges::find(var_names_pf, x); + }).begin(), var_names.end()); if (var_names.empty()) { amrex::Abort("ERROR: no valid variable names"); @@ -334,7 +334,7 @@ void main_main() for (int i = 0; i < pos.size(); ++i) { posidx.emplace_back(pos[i],i); } - std::sort(posidx.begin(), posidx.end()); + std::ranges::sort(posidx); const std::string dirstr = (idir == 0) ? "x" : ((idir == 1) ? "y" : "z"); diff --git a/Tools/Plotfile/fgradient.cpp b/Tools/Plotfile/fgradient.cpp index 1de840f68e2..af292e87bd8 100644 --- a/Tools/Plotfile/fgradient.cpp +++ b/Tools/Plotfile/fgradient.cpp @@ -147,8 +147,7 @@ void main_main() Vector args(std::istream_iterator{is}, std::istream_iterator{ }); for (auto const& vn : args) { - if (std::find(std::begin(all_names),std::end(all_names), vn) - != std::end(all_names)) { + if (std::ranges::find(all_names, vn) != std::end(all_names)) { varnames.push_back(vn); } else { amrex::Abort("fgradient: Unknown variable "+vn); diff --git a/Tools/Plotfile/fsnapshot.cpp b/Tools/Plotfile/fsnapshot.cpp index 23e9e98ce25..bd2259e3d22 100644 --- a/Tools/Plotfile/fsnapshot.cpp +++ b/Tools/Plotfile/fsnapshot.cpp @@ -135,7 +135,7 @@ void main_main() } const auto& var_names = pf.varNames(); - if (std::find(var_names.begin(), var_names.end(), compname) == var_names.end()) { + if (std::ranges::find(var_names, compname) == var_names.end()) { amrex::Abort("ERROR: " + compname + " not found in pltfile " + pltfile); }