Mark de Wever c40595f2ce [libc++][modules] Adds std module cppm files.
This adds the cppm files of D144994. These files by themselves will do
nothing. The goal is to reduce the size of D144994 and making it easier
to review the real changes of the patch.

Implements parts of
- P2465R3 Standard Library Modules std and std.compat

Reviewed By: ldionne, ChuanqiXu, aaronmondal, #libc

Differential Revision: https://reviews.llvm.org/D151030
2023-05-23 18:51:27 +02:00

62 lines
1.5 KiB
C++

// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
module;
#include <numeric>
export module std:numeric;
export namespace std {
// [accumulate], accumulate
using std::accumulate;
// [reduce], reduce
using std::reduce;
// [inner.product], inner product
using std::inner_product;
// [transform.reduce], transform reduce
using std::transform_reduce;
// [partial.sum], partial sum
using std::partial_sum;
// [exclusive.scan], exclusive scan
using std::exclusive_scan;
// [inclusive.scan], inclusive scan
using std::inclusive_scan;
// [transform.exclusive.scan], transform exclusive scan
using std::transform_exclusive_scan;
// [transform.inclusive.scan], transform inclusive scan
using std::transform_inclusive_scan;
// [adjacent.difference], adjacent difference
using std::adjacent_difference;
// [numeric.iota], iota
using std::iota;
namespace ranges {
// using std::ranges::iota_result;
// using std::ranges::iota;
} // namespace ranges
// [numeric.ops.gcd], greatest common divisor
using std::gcd;
// [numeric.ops.lcm], least common multiple
using std::lcm;
// [numeric.ops.midpoint], midpoint
using std::midpoint;
} // namespace std