📄 valarray.cc
字号:
return _tmp_ret;
}
template<class T>
valarray<bool> operator&& (const valarray<T>& a, const valarray<T>& b)
{
size_t length= ( a.size() > b.size() ) ? b.size() : a.size();
valarray<bool> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind] && b[ind];
_RW_IMP_SPACE(_RW_temporary<bool>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<bool>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<bool> operator|| (const valarray<T>& a, const valarray<T>& b)
{
size_t length= ( a.size() > b.size() ) ? b.size() : a.size();
valarray<bool> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind] || b[ind];
_RW_IMP_SPACE(_RW_temporary<bool>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<bool>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
// with non array second parameter
template<class T>
valarray<T> operator* (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]*b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator/ (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]/b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator% (const valarray<T>& a,const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]%b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator+ (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]+b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator- (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]-b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator^ (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]^b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator& (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]&b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator| (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]|b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator<< (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]<<b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator>> (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind]>>b;
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<bool> operator&& (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<bool> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind] && b;
_RW_IMP_SPACE(_RW_temporary<bool>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<bool>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<bool> operator|| (const valarray<T>& a, const T& b)
{
size_t length= a.size();
valarray<bool> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a[ind] || b;
_RW_IMP_SPACE(_RW_temporary<bool>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<bool>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
// with non array first parameter
template<class T>
valarray<T> operator* (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a*b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator/ (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a/b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator% (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a%b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator+ (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a+b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator- (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a-b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator^ (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a^b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator& (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a&b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator| (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a|b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator<< (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a<<b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
valarray<T> operator>> (const T& a, const valarray<T>& b)
{
size_t length= b.size();
valarray<T> tmp_array(length);
for(size_t ind=0; ind< length; ind++ )
tmp_array[ind] = a>>b[ind];
_RW_IMP_SPACE(_RW_temporary<T>)* _tmp_ret = new _RW_IMP_SPACE(_RW_temporary<T>);
_tmp_ret->store_adr = tmp_array._RW_get_memory_array()._RW_get_storage();
_tmp_ret->length = length;
tmp_array._RW_get_memory_array_adr()->_RW_invalidate();
return _tmp_ret;
}
template<class T>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -