// -*- 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
//
//===----------------------------------------------------------------------===//

export namespace std {
  using std::gslice;
  using std::gslice_array;
  using std::indirect_array;
  using std::mask_array;
  using std::slice;
  using std::slice_array;
  using std::valarray;

  using std::swap;

  using std::operator*;
  using std::operator/;
  using std::operator%;
  using std::operator+;
  using std::operator-;

  using std::operator^;
  using std::operator&;
  using std::operator|;

  using std::operator<<;
  using std::operator>>;

  using std::operator&&;
  using std::operator||;

  using std::operator==;
  using std::operator!=;

  using std::operator<;
  using std::operator>;
  using std::operator<=;
  using std::operator>=;

  using std::abs;
  using std::acos;
  using std::asin;
  using std::atan;

  using std::atan2;

  using std::cos;
  using std::cosh;
  using std::exp;
  using std::log;
  using std::log10;

  using std::pow;

  using std::sin;
  using std::sinh;
  using std::sqrt;
  using std::tan;
  using std::tanh;

  using std::begin;
  using std::end;
} // namespace std
