1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10export namespace std {
11  // [accumulate], accumulate
12  using std::accumulate;
13
14  // [reduce], reduce
15  using std::reduce;
16
17  // [inner.product], inner product
18  using std::inner_product;
19
20  // [transform.reduce], transform reduce
21  using std::transform_reduce;
22
23  // [partial.sum], partial sum
24  using std::partial_sum;
25
26  // [exclusive.scan], exclusive scan
27  using std::exclusive_scan;
28
29  // [inclusive.scan], inclusive scan
30  using std::inclusive_scan;
31
32  // [transform.exclusive.scan], transform exclusive scan
33  using std::transform_exclusive_scan;
34
35  // [transform.inclusive.scan], transform inclusive scan
36  using std::transform_inclusive_scan;
37
38  // [adjacent.difference], adjacent difference
39  using std::adjacent_difference;
40
41  // [numeric.iota], iota
42  using std::iota;
43
44  namespace ranges {
45    // using std::ranges::iota_result;
46    // using std::ranges::iota;
47  } // namespace ranges
48
49  // [numeric.ops.gcd], greatest common divisor
50  using std::gcd;
51
52  // [numeric.ops.lcm], least common multiple
53  using std::lcm;
54
55  // [numeric.ops.midpoint], midpoint
56  using std::midpoint;
57
58#if _LIBCPP_STD_VER >= 26
59  // [numeric.sat], saturation arithmetic
60  using std::add_sat;
61  using std::div_sat;
62  using std::mul_sat;
63  using std::saturate_cast;
64  using std::sub_sat;
65#endif
66
67} // namespace std
68