Subclause | Header | |
Requirements | ||
Floating-point environment | <cfenv> | |
Complex numbers | <complex> | |
Random number generation | <random> | |
Numeric arrays | <valarray> | |
Mathematical functions for
floating-point types | <cmath>, <cstdlib> | |
Numbers | <numbers> | |
Linear algebra | <linalg> | |
Data-parallel types | <simd> |
constexpr complex(const T& re = T(), const T& im = T());
template<class X> constexpr explicit(see below) complex(const complex<X>& other);
constexpr T real() const;
constexpr void real(T val);
constexpr T imag() const;
constexpr void imag(T val);
constexpr complex& operator+=(const T& rhs);
constexpr complex& operator-=(const T& rhs);
constexpr complex& operator*=(const T& rhs);
constexpr complex& operator/=(const T& rhs);
template<class X> constexpr complex& operator=(const complex<X>& rhs);
template<class X> constexpr complex& operator+=(const complex<X>& rhs);
template<class X> constexpr complex& operator-=(const complex<X>& rhs);
template<class X> constexpr complex& operator*=(const complex<X>& rhs);
template<class X> constexpr complex& operator/=(const complex<X>& rhs);
template<class T> constexpr complex<T> operator+(const complex<T>& lhs);
template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator+(const T& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator-(const complex<T>& lhs);
template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator-(const T& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator*(const T& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator/(const T& lhs, const complex<T>& rhs);
template<class T> constexpr bool operator==(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr bool operator==(const complex<T>& lhs, const T& rhs);
template<class T, class charT, class traits>
basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, complex<T>& x);
template<class T, class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& o, const complex<T>& x);
template<class T> constexpr T real(const complex<T>& x);
template<class T> constexpr T imag(const complex<T>& x);
template<class T> constexpr T abs(const complex<T>& x);
template<class T> constexpr T arg(const complex<T>& x);
template<class T> constexpr T norm(const complex<T>& x);
template<class T> constexpr complex<T> conj(const complex<T>& x);
template<class T> constexpr complex<T> proj(const complex<T>& x);
template<class T> constexpr complex<T> polar(const T& rho, const T& theta = T());
template<class T> constexpr complex<T> acos(const complex<T>& x);
template<class T> constexpr complex<T> asin(const complex<T>& x);
template<class T> constexpr complex<T> atan(const complex<T>& x);
template<class T> constexpr complex<T> acosh(const complex<T>& x);
template<class T> constexpr complex<T> asinh(const complex<T>& x);
template<class T> constexpr complex<T> atanh(const complex<T>& x);
template<class T> constexpr complex<T> cos(const complex<T>& x);
template<class T> constexpr complex<T> cosh(const complex<T>& x);
template<class T> constexpr complex<T> exp(const complex<T>& x);
template<class T> constexpr complex<T> log(const complex<T>& x);
template<class T> constexpr complex<T> log10(const complex<T>& x);
template<class T> constexpr complex<T> pow(const complex<T>& x, const complex<T>& y);
template<class T> constexpr complex<T> pow(const complex<T>& x, const T& y);
template<class T> constexpr complex<T> pow(const T& x, const complex<T>& y);
template<class T> constexpr complex<T> sin(const complex<T>& x);
template<class T> constexpr complex<T> sinh(const complex<T>& x);
template<class T> constexpr complex<T> sqrt(const complex<T>& x);
template<class T> constexpr complex<T> tan(const complex<T>& x);
template<class T> constexpr complex<T> tanh(const complex<T>& x);
template<class T>
struct tuple_size<complex<T>> : integral_constant<size_t, 2> {};
template<size_t I, class T>
struct tuple_element<I, complex<T>> {
using type = T;
};
template<size_t I, class T>
constexpr T& get(complex<T>& z) noexcept;
template<size_t I, class T>
constexpr T&& get(complex<T>&& z) noexcept;
template<size_t I, class T>
constexpr const T& get(const complex<T>& z) noexcept;
template<size_t I, class T>
constexpr const T&& get(const complex<T>&& z) noexcept;
constexpr complex<long double> operator""il(long double d);
constexpr complex<long double> operator""il(unsigned long long d);
constexpr complex<double> operator""i(long double d);
constexpr complex<double> operator""i(unsigned long long d);
constexpr complex<float> operator""if(long double d);
constexpr complex<float> operator""if(unsigned long long d);
Expression | Return type | Pre/post-condition | Complexity |
S::result_type | T | ||
S() | Creates a seed sequence
with the same initial state as all other default-constructed seed sequences
of type S. | constant | |
S(ib,ie) | Creates a seed sequence
having internal state
that depends on some or all of the bits
of the supplied sequence [ib,ie). | ||
S(il) | Same as S(il.begin(), il.end()). | same as S(il.begin(), il.end()) | |
q.generate(rb,re) | void | ||
r.size() | size_t | The number of 32-bit units
that would be copied
by a call to r.param. | constant |
r.param(ob) | void | Copies to the given destination
a sequence of 32-bit units
that can be provided
to the constructor of a second object of type S,
and that would reproduce in that second object
a state indistinguishable
from the state of the first object. |
Expression | Return type | Pre/post-condition | Complexity |
E() | Creates an engine
with the same initial state
as all other default-constructed engines
of type E. | ||
E(x) | Creates an engine
that compares equal to x. | ||
E(s) | Creates an engine
with initial state determined by s. | ||
E(q)²¹⁹ | Creates an engine
with an initial state
that depends on a sequence
produced by one call
to q.generate. | same as complexity of q.generate
called on a sequence
whose length is size of state | |
e.seed() | void | Postconditions: e == E(). | same as E() |
e.seed(s) | void | Postconditions: e == E(s). | same as E(s) |
e.seed(q) | void | Postconditions: e == E(q). | same as E(q) |
e() | T | per [rand.req.urng] | |
e.discard(z)²²⁰ | void | no worse than the complexity
of z consecutive calls e() | |
x == y | bool | ||
x != y | bool | !(x == y). |
os << x
is >> v
A::A();
bool operator==(const A& a1, const A& a2);
A::A(result_type s);
template<class Sseq> A::A(Sseq& q);
void seed();
void seed(result_type s);
template<class Sseq> void seed(Sseq& q);
Expression | Return type | Pre/post-condition | Complexity |
D::result_type | T | ||
D::param_type | P | ||
D() | Creates a distribution whose behavior is indistinguishable
from that of any other newly default-constructed distribution
of type D. | constant | |
D(p) | Creates a distribution whose behavior is indistinguishable
from that of a distribution
newly constructed directly from the values used to construct p. | same as p's construction | |
d.reset() | void | constant | |
x.param() | P | no worse than the complexity of D(p) | |
d.param(p) | void | Postconditions: d.param() == p. | no worse than the complexity of D(p) |
d(g) | T | With ,
the sequence of numbers
returned by successive invocations
with the same object g
is randomly distributed
according to the associated
p(z |{p})
or
function. | amortized constant number of invocations of g |
d(g,p) | T | The sequence of numbers
returned by successive invocations
with the same objects g and p
is randomly distributed
according to the associated
p(z |{p})
or
function. | amortized constant number of invocations of g |
x.min() | T | Returns glb. | constant |
x.max() | T | Returns lub. | constant |
x == y | bool | constant | |
x != y | bool | !(x == y). | same as x == y. |
os << x
is >> d
explicit linear_congruential_engine(result_type s);
template<class Sseq> explicit linear_congruential_engine(Sseq& q);
explicit mersenne_twister_engine(result_type value);
template<class Sseq> explicit mersenne_twister_engine(Sseq& q);
explicit subtract_with_carry_engine(result_type value);
template<class Sseq> explicit subtract_with_carry_engine(Sseq& q);
explicit philox_engine(result_type value);
template<class Sseq> explicit philox_engine(Sseq& q);
void set_counter(const array<result_type, n>& c);
using minstd_rand0 =
linear_congruential_engine<uint_fast32_t, 16'807, 0, 2'147'483'647>;
using minstd_rand =
linear_congruential_engine<uint_fast32_t, 48'271, 0, 2'147'483'647>;
using mt19937 =
mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31,
0x9908'b0df, 11, 0xffff'ffff, 7, 0x9d2c'5680, 15, 0xefc6'0000, 18, 1'812'433'253>;
using mt19937_64 =
mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,
0xb502'6f5a'a966'19e9, 29, 0x5555'5555'5555'5555, 17,
0x71d6'7fff'eda6'0000, 37, 0xfff7'eee0'0000'0000, 43, 6'364'136'223'846'793'005>;
using ranlux24_base =
subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>;
using ranlux48_base =
subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>;
using ranlux24 = discard_block_engine<ranlux24_base, 223, 23>;
using ranlux48 = discard_block_engine<ranlux48_base, 389, 11>;
using knuth_b = shuffle_order_engine<minstd_rand0,256>;
using philox4x32 =
philox_engine<uint_fast32_t, 32, 4, 10,
0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85>;
using philox4x64 =
philox_engine<uint_fast64_t, 64, 4, 10,
0xCA5A826395121157, 0x9E3779B97F4A7C15, 0xD2E7470EE14C6C93, 0xBB67AE8584CAA73B>;
explicit random_device(const string& token);
double entropy() const noexcept;
result_type operator()();
seed_seq() noexcept;
template<class T>
seed_seq(initializer_list<T> il);
template<class InputIterator>
seed_seq(InputIterator begin, InputIterator end);
template<class RandomAccessIterator>
void generate(RandomAccessIterator begin, RandomAccessIterator end);
size_t size() const noexcept;
template<class OutputIterator>
void param(OutputIterator dest) const;
template<class RealType, size_t digits, class URBG>
RealType generate_canonical(URBG& g);
explicit uniform_int_distribution(IntType a, IntType b = numeric_limits<IntType>::max());
result_type a() const;
result_type b() const;
explicit uniform_real_distribution(RealType a, RealType b = 1.0);
result_type a() const;
result_type b() const;
explicit bernoulli_distribution(double p);
double p() const;
explicit binomial_distribution(IntType t, double p = 0.5);
IntType t() const;
double p() const;
explicit geometric_distribution(double p);
double p() const;
explicit negative_binomial_distribution(IntType k, double p = 0.5);
IntType k() const;
double p() const;
explicit poisson_distribution(double mean);
double mean() const;
explicit exponential_distribution(RealType lambda);
RealType lambda() const;
explicit gamma_distribution(RealType alpha, RealType beta = 1.0);
RealType alpha() const;
RealType beta() const;
explicit weibull_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit extreme_value_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit normal_distribution(RealType mean, RealType stddev = 1.0);
RealType mean() const;
RealType stddev() const;
explicit lognormal_distribution(RealType m, RealType s = 1.0);
RealType m() const;
RealType s() const;
explicit chi_squared_distribution(RealType n);
RealType n() const;
explicit cauchy_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit fisher_f_distribution(RealType m, RealType n = 1);
RealType m() const;
RealType n() const;
explicit student_t_distribution(RealType n);
RealType n() const;
discrete_distribution();
template<class InputIterator>
discrete_distribution(InputIterator firstW, InputIterator lastW);
discrete_distribution(initializer_list<double> wl);
template<class UnaryOperation>
discrete_distribution(size_t nw, double xmin, double xmax, UnaryOperation fw);
vector<double> probabilities() const;
piecewise_constant_distribution();
template<class InputIteratorB, class InputIteratorW>
piecewise_constant_distribution(InputIteratorB firstB, InputIteratorB lastB,
InputIteratorW firstW);
template<class UnaryOperation>
piecewise_constant_distribution(initializer_list<RealType> bl, UnaryOperation fw);
template<class UnaryOperation>
piecewise_constant_distribution(size_t nw, RealType xmin, RealType xmax, UnaryOperation fw);
vector<result_type> intervals() const;
vector<result_type> densities() const;
piecewise_linear_distribution();
template<class InputIteratorB, class InputIteratorW>
piecewise_linear_distribution(InputIteratorB firstB, InputIteratorB lastB,
InputIteratorW firstW);
template<class UnaryOperation>
piecewise_linear_distribution(initializer_list<RealType> bl, UnaryOperation fw);
template<class UnaryOperation>
piecewise_linear_distribution(size_t nw, RealType xmin, RealType xmax, UnaryOperation fw);
vector<result_type> intervals() const;
vector<result_type> densities() const;
int rand();
void srand(unsigned int seed);
valarray();
explicit valarray(size_t n);
valarray(const T& v, size_t n);
valarray(const T* p, size_t n);
valarray(const valarray& v);
valarray(valarray&& v) noexcept;
valarray(initializer_list<T> il);
valarray(const slice_array<T>&);
valarray(const gslice_array<T>&);
valarray(const mask_array<T>&);
valarray(const indirect_array<T>&);
~valarray();
valarray& operator=(const valarray& v);
valarray& operator=(valarray&& v) noexcept;
valarray& operator=(initializer_list<T> il);
valarray& operator=(const T& v);
valarray& operator=(const slice_array<T>&);
valarray& operator=(const gslice_array<T>&);
valarray& operator=(const mask_array<T>&);
valarray& operator=(const indirect_array<T>&);
const T& operator[](size_t n) const;
T& operator[](size_t n);
valarray operator[](slice slicearr) const;
slice_array<T> operator[](slice slicearr);
valarray operator[](const gslice& gslicearr) const;
gslice_array<T> operator[](const gslice& gslicearr);
valarray operator[](const valarray<bool>& boolarr) const;
mask_array<T> operator[](const valarray<bool>& boolarr);
valarray operator[](const valarray<size_t>& indarr) const;
indirect_array<T> operator[](const valarray<size_t>& indarr);
valarray operator+() const;
valarray operator-() const;
valarray operator~() const;
valarray<bool> operator!() const;
valarray& operator*= (const valarray& v);
valarray& operator/= (const valarray& v);
valarray& operator%= (const valarray& v);
valarray& operator+= (const valarray& v);
valarray& operator-= (const valarray& v);
valarray& operator^= (const valarray& v);
valarray& operator&= (const valarray& v);
valarray& operator|= (const valarray& v);
valarray& operator<<=(const valarray& v);
valarray& operator>>=(const valarray& v);
valarray& operator*= (const T& v);
valarray& operator/= (const T& v);
valarray& operator%= (const T& v);
valarray& operator+= (const T& v);
valarray& operator-= (const T& v);
valarray& operator^= (const T& v);
valarray& operator&= (const T& v);
valarray& operator|= (const T& v);
valarray& operator<<=(const T& v);
valarray& operator>>=(const T& v);
iterator begin();
const_iterator begin() const;
iterator end();
const_iterator end() const;
void swap(valarray& v) noexcept;
size_t size() const;
T sum() const;
T min() const;
T max() const;
valarray shift(int n) const;
valarray cshift(int n) const;
valarray apply(T func(T)) const;
valarray apply(T func(const T&)) const;
void resize(size_t sz, T c = T());
template<class T> valarray<T> operator* (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator/ (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator% (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator+ (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator- (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator^ (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator& (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator| (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator<<(const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator>>(const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> operator* (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator* (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator/ (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator/ (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator% (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator% (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator+ (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator+ (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator- (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator- (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator^ (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator^ (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator& (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator& (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator| (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator| (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator<<(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator<<(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> operator>>(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<T> operator>>(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator==(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator!=(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator< (const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator> (const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator<=(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator>=(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator&&(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator||(const valarray<T>&, const valarray<T>&);
template<class T> valarray<bool> operator==(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator==(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator!=(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator!=(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator< (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator< (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator> (const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator> (const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator<=(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator<=(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator>=(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator>=(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator&&(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator&&(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<bool> operator||(const valarray<T>&,
const typename valarray<T>::value_type&);
template<class T> valarray<bool> operator||(const typename valarray<T>::value_type&,
const valarray<T>&);
template<class T> valarray<T> abs (const valarray<T>&);
template<class T> valarray<T> acos (const valarray<T>&);
template<class T> valarray<T> asin (const valarray<T>&);
template<class T> valarray<T> atan (const valarray<T>&);
template<class T> valarray<T> atan2(const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> atan2(const valarray<T>&, const typename valarray<T>::value_type&);
template<class T> valarray<T> atan2(const typename valarray<T>::value_type&, const valarray<T>&);
template<class T> valarray<T> cos (const valarray<T>&);
template<class T> valarray<T> cosh (const valarray<T>&);
template<class T> valarray<T> exp (const valarray<T>&);
template<class T> valarray<T> log (const valarray<T>&);
template<class T> valarray<T> log10(const valarray<T>&);
template<class T> valarray<T> pow (const valarray<T>&, const valarray<T>&);
template<class T> valarray<T> pow (const valarray<T>&, const typename valarray<T>::value_type&);
template<class T> valarray<T> pow (const typename valarray<T>::value_type&, const valarray<T>&);
template<class T> valarray<T> sin (const valarray<T>&);
template<class T> valarray<T> sinh (const valarray<T>&);
template<class T> valarray<T> sqrt (const valarray<T>&);
template<class T> valarray<T> tan (const valarray<T>&);
template<class T> valarray<T> tanh (const valarray<T>&);
template<class T> void swap(valarray<T>& x, valarray<T>& y) noexcept;
slice();
slice(size_t start, size_t length, size_t stride);
size_t start() const;
size_t size() const;
size_t stride() const;
friend bool operator==(const slice& x, const slice& y);
void operator=(const valarray<T>&) const;
const slice_array& operator=(const slice_array&) const;
void operator*= (const valarray<T>&) const;
void operator/= (const valarray<T>&) const;
void operator%= (const valarray<T>&) const;
void operator+= (const valarray<T>&) const;
void operator-= (const valarray<T>&) const;
void operator^= (const valarray<T>&) const;
void operator&= (const valarray<T>&) const;
void operator|= (const valarray<T>&) const;
void operator<<=(const valarray<T>&) const;
void operator>>=(const valarray<T>&) const;
void operator=(const T&) const;
(0, 0, 0, 3), (0, 0, 1, 4), (0, 0, 2, 5), (0, 1, 0, 7), (0, 1, 1, 8), (0, 1, 2, 9), (0, 2, 0, 11), (0, 2, 1, 12), (0, 2, 2, 13), (0, 3, 0, 15), (0, 3, 1, 16), (0, 3, 2, 17), (1, 0, 0, 22), (1, 0, 1, 23), … (1, 3, 2, 36)
(0, 0, 0, 3), (0, 0, 1, 4), (0, 0, 2, 5), (0, 1, 0, 4), (0, 1, 1, 5), (0, 1, 2, 6), …— end example]
gslice();
gslice(size_t start, const valarray<size_t>& lengths,
const valarray<size_t>& strides);
size_t start() const;
valarray<size_t> size() const;
valarray<size_t> stride() const;
gslice_array<T> valarray<T>::operator[](const gslice&);
void operator=(const valarray<T>&) const;
const gslice_array& operator=(const gslice_array&) const;
void operator*= (const valarray<T>&) const;
void operator/= (const valarray<T>&) const;
void operator%= (const valarray<T>&) const;
void operator+= (const valarray<T>&) const;
void operator-= (const valarray<T>&) const;
void operator^= (const valarray<T>&) const;
void operator&= (const valarray<T>&) const;
void operator|= (const valarray<T>&) const;
void operator<<=(const valarray<T>&) const;
void operator>>=(const valarray<T>&) const;
void operator=(const T&) const;
mask_array<T> valarray<T>::operator[](const valarray<bool>&);
void operator=(const valarray<T>&) const;
const mask_array& operator=(const mask_array&) const;
void operator*= (const valarray<T>&) const;
void operator/= (const valarray<T>&) const;
void operator%= (const valarray<T>&) const;
void operator+= (const valarray<T>&) const;
void operator-= (const valarray<T>&) const;
void operator^= (const valarray<T>&) const;
void operator&= (const valarray<T>&) const;
void operator|= (const valarray<T>&) const;
void operator<<=(const valarray<T>&) const;
void operator>>=(const valarray<T>&) const;
void operator=(const T&) const;
indirect_array<T> valarray<T>::operator[](const valarray<size_t>&);
void operator=(const valarray<T>&) const;
const indirect_array& operator=(const indirect_array&) const;
void operator*= (const valarray<T>&) const;
void operator/= (const valarray<T>&) const;
void operator%= (const valarray<T>&) const;
void operator+= (const valarray<T>&) const;
void operator-= (const valarray<T>&) const;
void operator^= (const valarray<T>&) const;
void operator&= (const valarray<T>&) const;
void operator|= (const valarray<T>&) const;
void operator<<=(const valarray<T>&) const;
void operator>>=(const valarray<T>&) const;
void operator=(const T&) const;
constexpr int abs(int j);
constexpr long int abs(long int j);
constexpr long long int abs(long long int j);
constexpr floating-point-type abs(floating-point-type x);
constexpr floating-point-type hypot(floating-point-type x, floating-point-type y,
floating-point-type z);
constexpr floating-point-type lerp(floating-point-type a, floating-point-type b,
floating-point-type t) noexcept;
floating-point-type assoc_laguerre(unsigned n, unsigned m, floating-point-type x);
float assoc_laguerref(unsigned n, unsigned m, float x);
long double assoc_laguerrel(unsigned n, unsigned m, long double x);
floating-point-type assoc_legendre(unsigned l, unsigned m, floating-point-type x);
float assoc_legendref(unsigned l, unsigned m, float x);
long double assoc_legendrel(unsigned l, unsigned m, long double x);
floating-point-type beta(floating-point-type x, floating-point-type y);
float betaf(float x, float y);
long double betal(long double x, long double y);
floating-point-type comp_ellint_1(floating-point-type k);
float comp_ellint_1f(float k);
long double comp_ellint_1l(long double k);
floating-point-type comp_ellint_2(floating-point-type k);
float comp_ellint_2f(float k);
long double comp_ellint_2l(long double k);