📄 vecuops.cc
字号:
/****************************************************************************
* erf
****************************************************************************/
#ifdef BZ_HAVE_IEEE_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_erf<P_numtype1> > >
erf(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_erf<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_erf<_bz_typename P_expr1::T_numtype> > >
erf(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_erf<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_erf<P_numtype1> > >
erf(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_erf<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_erf<int> > >
erf(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_erf<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_erf<P_numtype1> > >
erf(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_erf<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
#endif
/****************************************************************************
* erfc
****************************************************************************/
#ifdef BZ_HAVE_IEEE_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_erfc<P_numtype1> > >
erfc(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_erfc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_erfc<_bz_typename P_expr1::T_numtype> > >
erfc(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_erfc<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_erfc<P_numtype1> > >
erfc(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_erfc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_erfc<int> > >
erfc(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_erfc<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_erfc<P_numtype1> > >
erfc(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_erfc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
#endif
/****************************************************************************
* fabs
****************************************************************************/
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_abs<P_numtype1> > >
fabs(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_abs<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_abs<_bz_typename P_expr1::T_numtype> > >
fabs(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_abs<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_abs<P_numtype1> > >
fabs(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_abs<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_abs<int> > >
fabs(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_abs<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_abs<P_numtype1> > >
fabs(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_abs<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
/****************************************************************************
* floor
****************************************************************************/
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_floor<P_numtype1> > >
floor(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_floor<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_floor<_bz_typename P_expr1::T_numtype> > >
floor(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_floor<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_floor<P_numtype1> > >
floor(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_floor<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_floor<int> > >
floor(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_floor<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_floor<P_numtype1> > >
floor(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_floor<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
/****************************************************************************
* ilogb
****************************************************************************/
#ifdef BZ_HAVE_SYSV_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_ilogb<P_numtype1> > >
ilogb(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_ilogb<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_ilogb<_bz_typename P_expr1::T_numtype> > >
ilogb(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_ilogb<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_ilogb<P_numtype1> > >
ilogb(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_ilogb<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_ilogb<int> > >
ilogb(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_ilogb<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_ilogb<P_numtype1> > >
ilogb(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_ilogb<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
#endif
/****************************************************************************
* isnan
****************************************************************************/
#ifdef BZ_HAVE_IEEE_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_isnan<P_numtype1> > >
isnan(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_isnan<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_isnan<_bz_typename P_expr1::T_numtype> > >
isnan(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_isnan<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_isnan<P_numtype1> > >
isnan(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_isnan<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_isnan<int> > >
isnan(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_isnan<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_isnan<P_numtype1> > >
isnan(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_isnan<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
#endif
/****************************************************************************
* itrunc
****************************************************************************/
#ifdef BZ_HAVE_SYSV_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_itrunc<P_numtype1> > >
itrunc(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_itrunc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
template<class P_expr1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_itrunc<_bz_typename P_expr1::T_numtype> > >
itrunc(_bz_VecExpr<P_expr1> d1)
{
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
_bz_itrunc<_bz_typename P_expr1::T_numtype> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_itrunc<P_numtype1> > >
itrunc(const VectorPick<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
_bz_itrunc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
inline
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
_bz_itrunc<int> > >
itrunc(Range d1)
{
typedef _bz_VecExprUnaryOp<Range,
_bz_itrunc<int> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1));
}
template<class P_numtype1, int N_length1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_itrunc<P_numtype1> > >
itrunc(const TinyVector<P_numtype1, N_length1>& d1)
{
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
_bz_itrunc<P_numtype1> > T_expr;
return _bz_VecExpr<T_expr>(T_expr(d1.begin()));
}
#endif
/****************************************************************************
* j0
****************************************************************************/
#ifdef BZ_HAVE_IEEE_MATH
template<class P_numtype1>
inline
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_j0<P_numtype1> > >
j0(const Vector<P_numtype1>& d1)
{
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
_bz_j0<P_numtype1> > T_expr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -