namespace std {
class slice;
class gslice;
// TEMPLATE CLASSES
template<class T>
class valarray;
template<class T>
class slice_array;
template<class T>
class gslice_array;
template<class T>
class mask_array;
template<class T>
class indirect_array;
// TEMPLATE FUNCTIONS
template<class T>
valarray<T> operator*(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator*(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator*(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator/(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator/(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator/(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator%(const valarray<T>& x,
const vararray<T>& y);
template<class T>
valarray<T> operator%(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator%(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator+(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator+(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator+(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator-(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator-(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator-(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator^(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator^(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator^(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator&(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator&(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator&(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator|(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator|(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator|(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator<<(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator<<(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator<<(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> operator>>(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> operator>>(const valarray<T> x,
const T& y);
template<class T>
valarray<T> operator>>(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator&&(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator&&(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator&&(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator||(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator||(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator||(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator==(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator==(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator==(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator!=(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator!=(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator!=(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator<(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator<(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator<(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator>=(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator>=(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator>=(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator>(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator>(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator>(const T& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator<=(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<bool> operator<=(const valarray<T> x,
const T& y);
template<class T>
valarray<bool> operator<=(const T& x,
const valarray<T>& y);
template<class T>
valarray<T> abs(const valarray<T>& x);
template<class T>
valarray<T> acos(const valarray<T>& x);
template<class T>
valarray<T> asin(const valarray<T>& x);
template<class T>
valarray<T> atan(const valarray<T>& x);
template<class T>
valarray<T> atan2(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> atan2(const valarray<T> x, const T& y);
template<class T>
valarray<T> atan2(const T& x, const valarray<T>& y);
template<class T>
valarray<T> cos(const valarray<T>& x);
template<class T>
valarray<T> cosh(const valarray<T>& x);
template<class T>
valarray<T> exp(const valarray<T>& x);
template<class T>
valarray<T> log(const valarray<T>& x);
template<class T>
valarray&tt;T> log10(const valarray<T>& x);
template<class T>
valarray<T> pow(const valarray<T>& x,
const valarray<T>& y);
template<class T>
valarray<T> pow(const valarray<T> x, const T& y);
template<class T>
valarray<T> pow(const T& x, const valarray<T>& y);
template<class T>
valarray<T> sin(const valarray<T>& x);
template<class T>
valarray<T> sinh(const valarray<T>& x);
template<class T>
valarray<T> sqrt(const valarray<T>& x);
template<class T>
valarray<T> tan(const valarray<T>& x);
template<class T>
valarray<T> tanh(const valarray<T>& x);
}