15f757f3fSDimitry Andric// -*- C++ -*- 25f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 35f757f3fSDimitry Andric// 45f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 55f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 65f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 75f757f3fSDimitry Andric// 85f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 95f757f3fSDimitry Andric 105f757f3fSDimitry Andricexport namespace std { 115f757f3fSDimitry Andric // [accumulate], accumulate 125f757f3fSDimitry Andric using std::accumulate; 135f757f3fSDimitry Andric 145f757f3fSDimitry Andric // [reduce], reduce 155f757f3fSDimitry Andric using std::reduce; 165f757f3fSDimitry Andric 175f757f3fSDimitry Andric // [inner.product], inner product 185f757f3fSDimitry Andric using std::inner_product; 195f757f3fSDimitry Andric 205f757f3fSDimitry Andric // [transform.reduce], transform reduce 215f757f3fSDimitry Andric using std::transform_reduce; 225f757f3fSDimitry Andric 235f757f3fSDimitry Andric // [partial.sum], partial sum 245f757f3fSDimitry Andric using std::partial_sum; 255f757f3fSDimitry Andric 265f757f3fSDimitry Andric // [exclusive.scan], exclusive scan 275f757f3fSDimitry Andric using std::exclusive_scan; 285f757f3fSDimitry Andric 295f757f3fSDimitry Andric // [inclusive.scan], inclusive scan 305f757f3fSDimitry Andric using std::inclusive_scan; 315f757f3fSDimitry Andric 325f757f3fSDimitry Andric // [transform.exclusive.scan], transform exclusive scan 335f757f3fSDimitry Andric using std::transform_exclusive_scan; 345f757f3fSDimitry Andric 355f757f3fSDimitry Andric // [transform.inclusive.scan], transform inclusive scan 365f757f3fSDimitry Andric using std::transform_inclusive_scan; 375f757f3fSDimitry Andric 385f757f3fSDimitry Andric // [adjacent.difference], adjacent difference 395f757f3fSDimitry Andric using std::adjacent_difference; 405f757f3fSDimitry Andric 415f757f3fSDimitry Andric // [numeric.iota], iota 425f757f3fSDimitry Andric using std::iota; 435f757f3fSDimitry Andric 445f757f3fSDimitry Andric namespace ranges { 455f757f3fSDimitry Andric // using std::ranges::iota_result; 465f757f3fSDimitry Andric // using std::ranges::iota; 475f757f3fSDimitry Andric } // namespace ranges 485f757f3fSDimitry Andric 495f757f3fSDimitry Andric // [numeric.ops.gcd], greatest common divisor 505f757f3fSDimitry Andric using std::gcd; 515f757f3fSDimitry Andric 525f757f3fSDimitry Andric // [numeric.ops.lcm], least common multiple 535f757f3fSDimitry Andric using std::lcm; 545f757f3fSDimitry Andric 555f757f3fSDimitry Andric // [numeric.ops.midpoint], midpoint 565f757f3fSDimitry Andric using std::midpoint; 57*7a6dacacSDimitry Andric 58*7a6dacacSDimitry Andric#if _LIBCPP_STD_VER >= 26 59*7a6dacacSDimitry Andric // [numeric.sat], saturation arithmetic 60*7a6dacacSDimitry Andric using std::add_sat; 61*7a6dacacSDimitry Andric using std::div_sat; 62*7a6dacacSDimitry Andric using std::mul_sat; 63*7a6dacacSDimitry Andric using std::saturate_cast; 64*7a6dacacSDimitry Andric using std::sub_sat; 65*7a6dacacSDimitry Andric#endif 66*7a6dacacSDimitry Andric 675f757f3fSDimitry Andric} // namespace std 68