#ifndef BZ_ARRAYOPS_CC #define BZ_ARRAYOPS_CC #ifndef BZ_ARRAY_H #error must be included via #endif #ifndef BZ_UPDATE_H #include #endif BZ_NAMESPACE(blitz) /* * Constant operands */ template inline Array& Array::initialize( T_numtype x) { (*this) = _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator+=(T_numtype x) { (*this) += _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator-=(T_numtype x) { (*this) -= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator*=(T_numtype x) { (*this) *= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator/=(T_numtype x) { (*this) /= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator%=(T_numtype x) { (*this) %= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator^=(T_numtype x) { (*this) ^= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator&=(T_numtype x) { (*this) &= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator|=(T_numtype x) { (*this) |= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator>>=(T_numtype x) { (*this) <<= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } template inline Array& Array::operator<<=(T_numtype x) { (*this) <<= _bz_ArrayExpr<_bz_ArrayExprConstant >(x); return *this; } /* * Array operands */ template inline Array& Array::operator=(const Array& x) { (*this) = _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator=(const Array& x) { (*this) = _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator+=(const Array& x) { (*this) += _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator-=(const Array& x) { (*this) -= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator*=(const Array& x) { (*this) *= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator/=(const Array& x) { (*this) /= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator%=(const Array& x) { (*this) %= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator^=(const Array& x) { (*this) ^= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator&=(const Array& x) { (*this) &= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator|=(const Array& x) { (*this) |= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator>>=(const Array& x) { (*this) >>= _bz_ArrayExpr >(x.begin()); return *this; } template template inline Array& Array::operator<<=(const Array& x) { (*this) <<= _bz_ArrayExpr >(x.begin()); return *this; } /* * Array expression operands */ template template inline Array& Array::operator=(_bz_ArrayExpr expr) { evaluate(expr, _bz_update()); return *this; } template template inline Array& Array::operator+=(_bz_ArrayExpr expr) { evaluate(expr, _bz_plus_update()); return *this; } template template inline Array& Array::operator-=(_bz_ArrayExpr expr) { evaluate(expr, _bz_minus_update()); return *this; } template template inline Array& Array::operator*=(_bz_ArrayExpr expr) { evaluate(expr, _bz_multiply_update()); return *this; } template template inline Array& Array::operator/=(_bz_ArrayExpr expr) { evaluate(expr, _bz_divide_update()); return *this; } template template inline Array& Array::operator%=(_bz_ArrayExpr expr) { evaluate(expr, _bz_mod_update()); return *this; } template template inline Array& Array::operator^=(_bz_ArrayExpr expr) { evaluate(expr, _bz_xor_update()); return *this; } template template inline Array& Array::operator&=(_bz_ArrayExpr expr) { evaluate(expr, _bz_bitand_update()); return *this; } template template inline Array& Array::operator|=(_bz_ArrayExpr expr) { evaluate(expr, _bz_bitor_update()); return *this; } template template inline Array& Array::operator>>=(_bz_ArrayExpr expr) { evaluate(expr, _bz_shiftr_update()); return *this; } template template inline Array& Array::operator<<=(_bz_ArrayExpr expr) { evaluate(expr, _bz_shiftl_update()); return *this; } BZ_NAMESPACE_END #endif // BZ_ARRAYOPS_CC