📄 bops.cc
字号:
/***************************************************************************
* blitz/arraybops.cc Array expression templates (2 operands)
*
* $Id: arraybops.cc,v 1.2 1998/03/14 00:04:47 tveldhui Exp $
*
* Copyright (C) 1997 Todd Veldhuizen <tveldhui@seurat.uwaterloo.ca>
* All rights reserved. Please see <blitz/blitz.h> for terms and
* conditions of use.
*
* Suggestions: blitz-suggest@cybervision.com
* Bugs: blitz-bugs@cybervision.com
*
* For more information, please see the Blitz++ Home Page:
* http://seurat.uwaterloo.ca/blitz/
*
***************************************************************************
* $Log: arraybops.cc,v $
* Revision 1.2 1998/03/14 00:04:47 tveldhui
* 0.2-alpha-05
*
*/
// Generated source file. Do not edit.
// genarrbops.cpp Aug 7 1997 15:04:14
#ifndef BZ_ARRAYBOPS_CC
#define BZ_ARRAYBOPS_CC
#ifndef BZ_ARRAYEXPR_H
#error <blitz/arraybops.cc> must be included after <blitz/arrayexpr.h>
#endif
BZ_NAMESPACE(blitz)
/****************************************************************************
* Addition Operators
****************************************************************************/
// Array<T_numtype1, N_rank1> + Array<T_numtype2, N_rank2>
template<class T_numtype1, int N_rank1, class T_numtype2, int N_rank2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<T_numtype1, T_numtype2 > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
const Array<T_numtype2, N_rank2>& d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<T_numtype1, T_numtype2> >
(d1.begin(),
d2.begin());
}
// Array<T_numtype1, N_rank1> + _bz_ArrayExpr<P_expr2>
template<class T_numtype1, int N_rank1, class P_expr2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExpr<P_expr2>,
Add<T_numtype1, _bz_typename P_expr2::T_numtype > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
_bz_ArrayExpr<P_expr2> d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExpr<P_expr2>,
Add<T_numtype1, _bz_typename P_expr2::T_numtype> >
(d1.begin(),
d2);
}
// Array<T_numtype1, N_rank1> + IndexPlaceholder<N_index2>
template<class T_numtype1, int N_rank1, int N_index2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
IndexPlaceholder<N_index2>,
Add<T_numtype1, int > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
IndexPlaceholder<N_index2> d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
IndexPlaceholder<N_index2>,
Add<T_numtype1, int> >
(d1.begin(),
d2);
}
// Array<T_numtype1, N_rank1> + int
template<class T_numtype1, int N_rank1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<int>,
Add<T_numtype1, int > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
int d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<int>,
Add<T_numtype1, int> >
(d1.begin(),
_bz_ArrayExprConstant<int>(d2));
}
// Array<T_numtype1, N_rank1> + float
template<class T_numtype1, int N_rank1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<float>,
Add<T_numtype1, float > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
float d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<float>,
Add<T_numtype1, float> >
(d1.begin(),
_bz_ArrayExprConstant<float>(d2));
}
// Array<T_numtype1, N_rank1> + double
template<class T_numtype1, int N_rank1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<double>,
Add<T_numtype1, double > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
double d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<double>,
Add<T_numtype1, double> >
(d1.begin(),
_bz_ArrayExprConstant<double>(d2));
}
// Array<T_numtype1, N_rank1> + long double
template<class T_numtype1, int N_rank1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<long double>,
Add<T_numtype1, long double > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
long double d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<long double>,
Add<T_numtype1, long double> >
(d1.begin(),
_bz_ArrayExprConstant<long double>(d2));
}
#ifdef BZ_HAVE_COMPLEX
// Array<T_numtype1, N_rank1> + complex<T2>
template<class T_numtype1, int N_rank1, class T2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<complex<T2> > ,
Add<T_numtype1, complex<T2> > > >
operator+(const Array<T_numtype1, N_rank1>& d1,
complex<T2> d2)
{
return _bz_ArrayExprOp<ArrayIterator<T_numtype1, N_rank1>,
_bz_ArrayExprConstant<complex<T2> > ,
Add<T_numtype1, complex<T2> > >
(d1.begin(),
_bz_ArrayExprConstant<complex<T2> > (d2));
}
#endif // BZ_HAVE_COMPLEX
// _bz_ArrayExpr<P_expr1> + Array<T_numtype2, N_rank2>
template<class P_expr1, class T_numtype2, int N_rank2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<_bz_typename P_expr1::T_numtype, T_numtype2 > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
const Array<T_numtype2, N_rank2>& d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<_bz_typename P_expr1::T_numtype, T_numtype2> >
(d1,
d2.begin());
}
// _bz_ArrayExpr<P_expr1> + _bz_ArrayExpr<P_expr2>
template<class P_expr1, class P_expr2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExpr<P_expr2>,
Add<_bz_typename P_expr1::T_numtype, _bz_typename P_expr2::T_numtype > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
_bz_ArrayExpr<P_expr2> d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExpr<P_expr2>,
Add<_bz_typename P_expr1::T_numtype, _bz_typename P_expr2::T_numtype> >
(d1,
d2);
}
// _bz_ArrayExpr<P_expr1> + IndexPlaceholder<N_index2>
template<class P_expr1, int N_index2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
IndexPlaceholder<N_index2>,
Add<_bz_typename P_expr1::T_numtype, int > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
IndexPlaceholder<N_index2> d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
IndexPlaceholder<N_index2>,
Add<_bz_typename P_expr1::T_numtype, int> >
(d1,
d2);
}
// _bz_ArrayExpr<P_expr1> + int
template<class P_expr1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<int>,
Add<_bz_typename P_expr1::T_numtype, int > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
int d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<int>,
Add<_bz_typename P_expr1::T_numtype, int> >
(d1,
_bz_ArrayExprConstant<int>(d2));
}
// _bz_ArrayExpr<P_expr1> + float
template<class P_expr1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<float>,
Add<_bz_typename P_expr1::T_numtype, float > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
float d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<float>,
Add<_bz_typename P_expr1::T_numtype, float> >
(d1,
_bz_ArrayExprConstant<float>(d2));
}
// _bz_ArrayExpr<P_expr1> + double
template<class P_expr1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<double>,
Add<_bz_typename P_expr1::T_numtype, double > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
double d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<double>,
Add<_bz_typename P_expr1::T_numtype, double> >
(d1,
_bz_ArrayExprConstant<double>(d2));
}
// _bz_ArrayExpr<P_expr1> + long double
template<class P_expr1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<long double>,
Add<_bz_typename P_expr1::T_numtype, long double > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
long double d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<long double>,
Add<_bz_typename P_expr1::T_numtype, long double> >
(d1,
_bz_ArrayExprConstant<long double>(d2));
}
#ifdef BZ_HAVE_COMPLEX
// _bz_ArrayExpr<P_expr1> + complex<T2>
template<class P_expr1, class T2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<complex<T2> > ,
Add<_bz_typename P_expr1::T_numtype, complex<T2> > > >
operator+(_bz_ArrayExpr<P_expr1> d1,
complex<T2> d2)
{
return _bz_ArrayExprOp<_bz_ArrayExpr<P_expr1>,
_bz_ArrayExprConstant<complex<T2> > ,
Add<_bz_typename P_expr1::T_numtype, complex<T2> > >
(d1,
_bz_ArrayExprConstant<complex<T2> > (d2));
}
#endif // BZ_HAVE_COMPLEX
// IndexPlaceholder<N_index1> + Array<T_numtype2, N_rank2>
template<int N_index1, class T_numtype2, int N_rank2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<int, T_numtype2 > > >
operator+(IndexPlaceholder<N_index1> d1,
const Array<T_numtype2, N_rank2>& d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
ArrayIterator<T_numtype2, N_rank2>,
Add<int, T_numtype2> >
(d1,
d2.begin());
}
// IndexPlaceholder<N_index1> + _bz_ArrayExpr<P_expr2>
template<int N_index1, class P_expr2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExpr<P_expr2>,
Add<int, _bz_typename P_expr2::T_numtype > > >
operator+(IndexPlaceholder<N_index1> d1,
_bz_ArrayExpr<P_expr2> d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExpr<P_expr2>,
Add<int, _bz_typename P_expr2::T_numtype> >
(d1,
d2);
}
// IndexPlaceholder<N_index1> + IndexPlaceholder<N_index2>
template<int N_index1, int N_index2>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
IndexPlaceholder<N_index2>,
Add<int, int > > >
operator+(IndexPlaceholder<N_index1> d1,
IndexPlaceholder<N_index2> d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
IndexPlaceholder<N_index2>,
Add<int, int> >
(d1,
d2);
}
// IndexPlaceholder<N_index1> + int
template<int N_index1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<int>,
Add<int, int > > >
operator+(IndexPlaceholder<N_index1> d1,
int d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<int>,
Add<int, int> >
(d1,
_bz_ArrayExprConstant<int>(d2));
}
// IndexPlaceholder<N_index1> + float
template<int N_index1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<float>,
Add<int, float > > >
operator+(IndexPlaceholder<N_index1> d1,
float d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<float>,
Add<int, float> >
(d1,
_bz_ArrayExprConstant<float>(d2));
}
// IndexPlaceholder<N_index1> + double
template<int N_index1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<double>,
Add<int, double > > >
operator+(IndexPlaceholder<N_index1> d1,
double d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<double>,
Add<int, double> >
(d1,
_bz_ArrayExprConstant<double>(d2));
}
// IndexPlaceholder<N_index1> + long double
template<int N_index1>
inline
_bz_ArrayExpr<_bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<long double>,
Add<int, long double > > >
operator+(IndexPlaceholder<N_index1> d1,
long double d2)
{
return _bz_ArrayExprOp<IndexPlaceholder<N_index1>,
_bz_ArrayExprConstant<long double>,
Add<int, long double> >
(d1,
_bz_ArrayExprConstant<long double>(d2));
}
#ifdef BZ_HAVE_COMPLEX
// IndexPlaceholder<N_index1> + complex<T2>
template<int N_index1, class T2>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -