⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 valarray_after.h

📁 openRisc2000编译链接器等,用于i386 cygwin
💻 H
📖 第 1 页 / 共 2 页
字号:
  template<class _Clos, typename _Tp>    inline _Tp    _Expr<_Clos, _Tp>::min() const    { return __valarray_min(_M_closure); }  template<class _Clos, typename _Tp>    inline _Tp    _Expr<_Clos, _Tp>::max() const    { return __valarray_max(_M_closure); }  template<class _Dom, typename _Tp>    inline _Expr<_UnClos<__logical_not,_Expr,_Dom>, bool>    _Expr<_Dom,_Tp>::operator!() const    {      typedef _UnClos<__logical_not,std::_Expr,_Dom> _Closure;      return _Expr<_Closure,_Tp>(_Closure(this->_M_closure));    }#define _DEFINE_EXPR_UNARY_OPERATOR(_Op, _Name)                           \  template<class _Dom, typename _Tp>                                      \    inline _Expr<_UnClos<_Name,std::_Expr,_Dom>,_Tp>                      \    _Expr<_Dom,_Tp>::operator _Op() const                                 \    {                                                                     \      typedef _UnClos<_Name,std::_Expr,_Dom> _Closure;                    \      return _Expr<_Closure,_Tp>(_Closure(this->_M_closure));             \    }    _DEFINE_EXPR_UNARY_OPERATOR(+, __unary_plus)    _DEFINE_EXPR_UNARY_OPERATOR(-, __negate)    _DEFINE_EXPR_UNARY_OPERATOR(~, __bitwise_not)#undef _DEFINE_EXPR_UNARY_OPERATOR#define _DEFINE_EXPR_BINARY_OPERATOR(_Op, _Name)                        \  template<class _Dom1, class _Dom2>					\  inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>,                 \         typename __fun<_Name, typename _Dom1::value_type>::result_type>\  operator _Op(const _Expr<_Dom1,typename _Dom1::value_type>& __v,      \	       const _Expr<_Dom2,typename _Dom2::value_type>& __w)      \  {                                                                     \    typedef typename _Dom1::value_type _Arg;                            \    typedef typename __fun<_Name, _Arg>::result_type _Value;            \    typedef _BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2> _Closure;           \    return _Expr<_Closure,_Value>(_Closure(__v(), __w()));              \  }                                                                     \                                                                        \template<class _Dom>                                                    \inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>,\             typename __fun<_Name, typename _Dom::value_type>::result_type>\operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __v,          \             const typename _Dom::value_type& __t)                      \{                                                                       \  typedef typename _Dom::value_type _Arg;                               \  typedef typename __fun<_Name, _Arg>::result_type _Value;              \  typedef _BinClos<_Name,_Expr,_Constant,_Dom,_Arg> _Closure;           \  return _Expr<_Closure,_Value>(_Closure(__v(), __t));                  \}                                                                       \                                                                        \template<class _Dom>                                                    \inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>,\             typename __fun<_Name, typename _Dom::value_type>::result_type>\operator _Op(const typename _Dom::value_type& __t,                      \             const _Expr<_Dom,typename _Dom::value_type>& __v)          \{                                                                       \  typedef typename _Dom::value_type _Arg;                               \  typedef typename __fun<_Name, _Arg>::result_type _Value;              \  typedef _BinClos<_Name,_Constant,_Expr,_Arg,_Dom> _Closure;           \  return _Expr<_Closure,_Value>(_Closure(__t, __v()));                  \}                                                                       \                                                                        \template<class _Dom>                                                    \inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>,\             typename __fun<_Name, typename _Dom::value_type>::result_type>\operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,          \             const valarray<typename _Dom::value_type>& __v)            \{                                                                       \  typedef typename _Dom::value_type _Arg;                               \  typedef typename __fun<_Name, _Arg>::result_type _Value;              \  typedef _BinClos<_Name,_Expr,_ValArray,_Dom,_Arg> _Closure;           \  return  _Expr<_Closure,_Value>(_Closure(__e(), __v));                 \}                                                                       \                                                                        \template<class _Dom>                                                    \inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>,\             typename __fun<_Name, typename _Dom::value_type>::result_type>\operator _Op(const valarray<typename _Dom::value_type>& __v,            \             const _Expr<_Dom,typename _Dom::value_type>& __e)          \{                                                                       \  typedef typename _Dom::value_type _Tp;                                \  typedef typename __fun<_Name, _Tp>::result_type _Value;               \  typedef _BinClos<_Name,_ValArray,_Expr,_Tp,_Dom> _Closure;            \  return _Expr<_Closure,_Value> (_Closure (__v, __e ()));               \}    _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)    _DEFINE_EXPR_BINARY_OPERATOR(-, __minus)    _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)    _DEFINE_EXPR_BINARY_OPERATOR(/, __divides)    _DEFINE_EXPR_BINARY_OPERATOR(%, __modulus)    _DEFINE_EXPR_BINARY_OPERATOR(^, __bitwise_xor)    _DEFINE_EXPR_BINARY_OPERATOR(&, __bitwise_and)    _DEFINE_EXPR_BINARY_OPERATOR(|, __bitwise_or)    _DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)    _DEFINE_EXPR_BINARY_OPERATOR(>>, __shift_right)    _DEFINE_EXPR_BINARY_OPERATOR(&&, __logical_and)    _DEFINE_EXPR_BINARY_OPERATOR(||, __logical_or)    _DEFINE_EXPR_BINARY_OPERATOR(==, __equal_to)    _DEFINE_EXPR_BINARY_OPERATOR(!=, __not_equal_to)    _DEFINE_EXPR_BINARY_OPERATOR(<, __less)    _DEFINE_EXPR_BINARY_OPERATOR(>, __greater)    _DEFINE_EXPR_BINARY_OPERATOR(<=, __less_equal)    _DEFINE_EXPR_BINARY_OPERATOR(>=, __greater_equal)#undef _DEFINE_EXPR_BINARY_OPERATOR#define _DEFINE_EXPR_UNARY_FUNCTION(_Name)                               \  template<class _Dom>                                                   \    inline _Expr<_UnClos<__##_Name,_Expr,_Dom>,typename _Dom::value_type>\    _Name(const _Expr<_Dom,typename _Dom::value_type>& __e)              \    {                                                                    \      typedef typename _Dom::value_type _Tp;                             \      typedef _UnClos<__##_Name,_Expr,_Dom> _Closure;                    \      return _Expr<_Closure,_Tp>(_Closure(__e()));                       \    }                                                                    \                                                                         \  template<typename _Tp>                                                 \    inline _Expr<_UnClos<__##_Name,_ValArray,_Tp>,_Tp>                   \    _Name(const valarray<_Tp>& __v)                                      \    {                                                                    \      typedef _UnClos<__##_Name,_ValArray,_Tp> _Closure;                 \      return _Expr<_Closure,_Tp>(_Closure(__v));                         \    }    _DEFINE_EXPR_UNARY_FUNCTION(abs)    _DEFINE_EXPR_UNARY_FUNCTION(cos)    _DEFINE_EXPR_UNARY_FUNCTION(acos)    _DEFINE_EXPR_UNARY_FUNCTION(cosh)    _DEFINE_EXPR_UNARY_FUNCTION(sin)    _DEFINE_EXPR_UNARY_FUNCTION(asin)    _DEFINE_EXPR_UNARY_FUNCTION(sinh)    _DEFINE_EXPR_UNARY_FUNCTION(tan)    _DEFINE_EXPR_UNARY_FUNCTION(tanh)    _DEFINE_EXPR_UNARY_FUNCTION(atan)    _DEFINE_EXPR_UNARY_FUNCTION(exp)    _DEFINE_EXPR_UNARY_FUNCTION(log)    _DEFINE_EXPR_UNARY_FUNCTION(log10)    _DEFINE_EXPR_UNARY_FUNCTION(sqrt)#undef _DEFINE_EXPR_UNARY_FUNCTION#define _DEFINE_EXPR_BINARY_FUNCTION(_Fun)                             \  template<class _Dom1, class _Dom2>                                   \    inline _Expr<_BinClos<__##_Fun,_Expr,_Expr,_Dom1,_Dom2>,           \		 typename _Dom1::value_type>                           \    _Fun(const _Expr<_Dom1,typename _Dom1::value_type>& __e1,          \	  const _Expr<_Dom2,typename _Dom2::value_type>& __e2)         \    {                                                                  \      typedef typename _Dom1::value_type _Tp;                          \      typedef _BinClos<__##_Fun,_Expr,_Expr,_Dom1,_Dom2> _Closure;     \      return _Expr<_Closure,_Tp>(_Closure(__e1(), __e2()));            \    }                                                                  \                                                                       \  template<class _Dom>                                                 \    inline _Expr<_BinClos<__##_Fun, _Expr, _ValArray, _Dom,            \			  typename _Dom::value_type>,                  \		 typename _Dom::value_type>                            \    _Fun(const _Expr<_Dom,typename _Dom::value_type>& __e,             \	 const valarray<typename _Dom::value_type>& __v)               \    {                                                                  \      typedef typename _Dom::value_type _Tp;                           \      typedef _BinClos<__##_Fun, _Expr, _ValArray, _Dom, _Tp> _Closure;\      return _Expr<_Closure,_Tp>(_Closure(__e(), __v));                \    }                                                                  \                                                                       \  template<class _Dom>                                                 \    inline _Expr<_BinClos<__##_Fun, _ValArray, _Expr,                  \			  typename _Dom::value_type,_Dom>,             \		 typename _Dom::value_type>                            \    _Fun(const valarray<typename _Dom::valarray>& __v,                 \	 const _Expr<_Dom,typename _Dom::value_type>& __e)             \    {                                                                  \      typedef typename _Dom::value_type _Tp;                           \      typedef _BinClos<__##_Fun,_ValArray,_Expr,_Tp,_Dom> _Closure;    \      return _Expr<_Closure,_Tp>(_Closure(__v, __e()));                \    }                                                                  \                                                                       \  template<class _Dom>                                                 \    inline _Expr<_BinClos<__##_Fun,_Expr,_Constant,_Dom,               \			  typename _Dom::value_type>,                  \		 typename _Dom::value_type>                            \    _Fun(const _Expr<_Dom, typename _Dom::value_type>& __e,            \	 const typename _Dom::value_type& __t)                         \    {                                                                  \      typedef typename _Dom::value_type _Tp;                           \      typedef _BinClos<__##_Fun,_Expr,_Constant,_Dom,_Tp> _Closure;    \      return _Expr<_Closure,_Tp>(_Closure(__e(), __t));                \    }                                                                  \                                                                       \  template<class _Dom>                                                 \    inline _Expr<_BinClos<__##_Fun,_Constant,_Expr,                    \			  typename _Dom::value_type,_Dom>,             \		 typename _Dom::value_type>                            \    _Fun(const typename _Dom::value_type& __t,                         \	 const _Expr<_Dom,typename _Dom::value_type>& __e)             \    {                                                                  \      typedef typename _Dom::value_type _Tp;                           \      typedef _BinClos<__##_Fun, _Constant,_Expr,_Tp,_Dom> _Closure;   \      return _Expr<_Closure,_Tp>(_Closure(__t, __e()));                \    }                                                                  \                                                                       \  template<typename _Tp>                                               \    inline _Expr<_BinClos<__##_Fun,_ValArray,_ValArray,_Tp,_Tp>, _Tp>  \    _Fun(const valarray<_Tp>& __v, const valarray<_Tp>& __w)           \    {                                                                  \      typedef _BinClos<__##_Fun,_ValArray,_ValArray,_Tp,_Tp> _Closure; \      return _Expr<_Closure,_Tp>(_Closure(__v, __w));                  \    }                                                                  \                                                                       \  template<typename _Tp>                                               \    inline _Expr<_BinClos<__##_Fun,_ValArray,_Constant,_Tp,_Tp>,_Tp>   \    _Fun(const valarray<_Tp>& __v, const _Tp& __t)                     \    {                                                                  \      typedef _BinClos<__##_Fun,_ValArray,_Constant,_Tp,_Tp> _Closure; \      return _Expr<_Closure,_Tp>(_Closure(__v, __t));                  \    }                                                                  \								       \  template<typename _Tp>                                               \    inline _Expr<_BinClos<__##_Fun,_Constant,_ValArray,_Tp,_Tp>,_Tp>   \    _Fun(const _Tp& __t, const valarray<_Tp>& __v)                     \    {                                                                  \      typedef _BinClos<__##_Fun,_Constant,_ValArray,_Tp,_Tp> _Closure; \      return _Expr<_Closure,_Tp>(_Closure(__t, __v));                  \    }_DEFINE_EXPR_BINARY_FUNCTION(atan2)_DEFINE_EXPR_BINARY_FUNCTION(pow)#undef _DEFINE_EXPR_BINARY_FUNCTION} // std::#endif /* _CPP_VALARRAY_AFTER_H */// Local Variables:// mode:c++// End:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -