STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
valarray< _Ty > Class Template Reference

Public Types

typedef valarray< _Ty > _Myt
 
typedef _Ty value_type
 

Public Member Functions

 valarray ()
 
 valarray (size_t _Count)
 
 valarray (const _Ty &_Val, size_t _Count)
 
 valarray (const _Ty *_Ptr, size_t _Count)
 
 valarray (const _Myt &_Right)
 
 valarray (const slice_array< _Ty > &_Slicearr)
 
 valarray (const gslice_array< _Ty > &_Gslicearr)
 
 valarray (const mask_array< _Ty > &_Maskarr)
 
 valarray (const indirect_array< _Ty > &_Indarr)
 
 valarray (_Myt &&_Right) _NOEXCEPT
 
_Mytoperator= (_Myt &&_Right) _NOEXCEPT
 
void _Assign_rv (_Myt &&_Right)
 
 valarray (_XSTD initializer_list< _Ty > _Ilist)
 
_Mytoperator= (_XSTD initializer_list< _Ty > _Ilist)
 
void swap (_Myt &_Right) _NOEXCEPT
 
 ~valarray () _NOEXCEPT
 
_Mytoperator= (const _Myt &_Right)
 
_Mytoperator= (const _Ty &_Val)
 
void resize (size_t _Newsize)
 
void resize (size_t _Newsize, _Ty _Val)
 
_Mytoperator= (const slice_array< _Ty > &_Slicearr)
 
_Mytoperator= (const gslice_array< _Ty > &_Gslicearr)
 
_Mytoperator= (const mask_array< _Ty > &_Maskarr)
 
_Mytoperator= (const indirect_array< _Ty > &_Indarr)
 
_Myt operator+ () const
 
_Myt operator- () const
 
_Myt operator~ () const
 
_Boolarray operator! () const
 
_Mytoperator*= (const _Ty &_Right)
 
_Mytoperator/= (const _Ty &_Right)
 
_Mytoperator%= (const _Ty &_Right)
 
_Mytoperator+= (const _Ty &_Right)
 
_Mytoperator-= (const _Ty &_Right)
 
_Mytoperator^= (const _Ty &_Right)
 
_Mytoperator&= (const _Ty &_Right)
 
_Mytoperator|= (const _Ty &_Right)
 
_Mytoperator<<= (const _Ty &_Right)
 
_Mytoperator>>= (const _Ty &_Right)
 
_Mytoperator*= (const _Myt &_Right)
 
_Mytoperator/= (const _Myt &_Right)
 
_Mytoperator%= (const _Myt &_Right)
 
_Mytoperator+= (const _Myt &_Right)
 
_Mytoperator-= (const _Myt &_Right)
 
_Mytoperator^= (const _Myt &_Right)
 
_Mytoperator|= (const _Myt &_Right)
 
_Mytoperator&= (const _Myt &_Right)
 
_Mytoperator<<= (const _Myt &_Right)
 
_Mytoperator>>= (const _Myt &_Right)
 
size_t size () const
 
const _Ty & operator[] (size_t _Off) const
 
_Ty & operator[] (size_t _Off)
 
_Myt operator[] (slice _Slicearr) const
 
slice_array< _Ty > operator[] (slice _Slicearr)
 
_Myt operator[] (const gslice &_Gslicearr) const
 
gslice_array< _Ty > operator[] (const gslice &_Gslicearr)
 
_Myt operator[] (const _Boolarray &_Boolarr) const
 
mask_array< _Ty > operator[] (const _Boolarray &_Boolarr)
 
_Myt operator[] (const _Sizarray &_Indarr) const
 
indirect_array< _Ty > operator[] (const _Sizarray &_Indarr)
 
_Ty sum () const
 
_Ty() min () const
 
_Ty() max () const
 
_Myt shift (int _Count) const
 
_Myt cshift (int _Count) const
 
_Myt apply (_Ty _Func(_Ty)) const
 
_Myt apply (_Ty _Func(const _Ty &)) const
 
void() free ()
 

Private Member Functions

void _Grow (size_t _Newsize)
 
void _Grow (size_t _Newsize, const _Ty *_Ptr, size_t _Inc=0)
 
void _Tidy (bool _Constructed=false)
 
void _Assign (size_t _Newsize, const _Ty *_Ptr)
 

Private Attributes

_Ty * _Myptr
 
size_t _Mysize
 

Member Typedef Documentation

template<class _Ty>
typedef valarray<_Ty> valarray< _Ty >::_Myt
template<class _Ty>
typedef _Ty valarray< _Ty >::value_type

Constructor & Destructor Documentation

template<class _Ty>
valarray< _Ty >::valarray ( )
inline
55  { // construct empty valarray
56  _Tidy();
57  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
valarray< _Ty >::valarray ( size_t  _Count)
inlineexplicit
60  { // construct with _Count * _Ty()
61  _Tidy();
62  _Grow(_Count);
63  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Diff _Count
Definition: algorithm:1941
template<class _Ty>
valarray< _Ty >::valarray ( const _Ty &  _Val,
size_t  _Count 
)
inline
66  { // construct with _Count * _Val
67  _Tidy();
68  _Grow(_Count, &_Val);
69  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Diff _Count
Definition: algorithm:1941
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _Ty>
valarray< _Ty >::valarray ( const _Ty *  _Ptr,
size_t  _Count 
)
inline
72  { // construct with [_Ptr, _Ptr + _Count)
73  _Tidy();
74  _Grow(_Count, _Ptr, 1);
75  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Diff _Count
Definition: algorithm:1941
template<class _Ty>
valarray< _Ty >::valarray ( const _Myt _Right)
inline
78  { // construct from valarray
79  _Tidy();
80  _Grow(_Right.size(), _Right._Myptr, 1);
81  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
valarray< _Ty >::valarray ( const slice_array< _Ty > &  _Slicearr)
inline
84  { // construct from slice_array
85  _Tidy();
86  *this = _Slicearr;
87  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
valarray< _Ty >::valarray ( const gslice_array< _Ty > &  _Gslicearr)
inline
90  { // construct from gslice_array
91  _Tidy();
92  *this = _Gslicearr;
93  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
valarray< _Ty >::valarray ( const mask_array< _Ty > &  _Maskarr)
inline
96  { // construct from mask_array
97  _Tidy();
98  *this = _Maskarr;
99  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
valarray< _Ty >::valarray ( const indirect_array< _Ty > &  _Indarr)
inline
102  { // construct from indirect_array
103  _Tidy();
104  *this = _Indarr;
105  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
valarray< _Ty >::valarray ( _Myt &&  _Right)
inline
108  { // construct by moving _Right
109  _Tidy();
110  _Assign_rv(_STD forward<_Myt>(_Right));
111  }
void _Assign_rv(_Myt &&_Right)
Definition: valarray:119
void _Tidy(bool _Constructed=false)
Definition: valarray:459
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
valarray< _Ty >::valarray ( _XSTD initializer_list< _Ty >  _Ilist)
inline
131  { // construct from initializer_list
132  _Tidy();
133  _Grow(_Ilist.size(), _Ilist.begin(), 1);
134  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
template<class _Ty>
valarray< _Ty >::~valarray ( )
inline
152  { // destroy the object
153  _Tidy(true);
154  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459

Member Function Documentation

template<class _Ty>
void valarray< _Ty >::_Assign ( size_t  _Newsize,
const _Ty *  _Ptr 
)
inlineprivate
473  { // assign [_Ptr, _Ptr + _Newsize)
474  if (size() == _Newsize)
475  for (size_t _Idx = 0; _Idx < size(); ++_Idx)
476  _Myptr[_Idx] = _Ptr[_Idx];
477  else
478  { // resize and copy
479  _Tidy(true);
480  _Grow(_Newsize, _Ptr, 1);
481  }
482  }
size_t size() const
Definition: valarray:312
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::_Assign_rv ( _Myt &&  _Right)
inline
120  { // assign by moving _Right
121  if (this != &_Right)
122  { // clear this and steal from _Right
123  _Tidy(true);
124  _Myptr = _Right._Myptr;
125  _Mysize = _Right._Mysize;
126  _Right._Tidy();
127  }
128  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
size_t _Mysize
Definition: valarray:485
const _Ty & _Right
Definition: algorithm:4087
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::_Grow ( size_t  _Newsize)
inlineprivate
422  { // grow to _Count elements and pad with default values
423  if (0 < _Newsize)
424  { // worth doing, allocate
425  _Myptr = _Allocate(_Newsize, (_Ty *)0);
426 
427  _TRY_BEGIN
428  for (size_t _Idx = 0; _Idx < _Newsize; ++_Idx)
429  _Construct(&_Myptr[_Idx]);
430  _CATCH_ALL
431  _Tidy(true); // construction failed, clean up and reraise
432  _RERAISE;
433  _CATCH_END
434 
435  _Mysize = _Newsize;
436  }
437  }
#define _TRY_BEGIN
Definition: xstddef:60
#define _CATCH_END
Definition: xstddef:63
void _Construct(_Ty1 *_Ptr, _Ty2 &&_Val)
Definition: xmemory0:37
_STD_BEGIN _Ty * _Allocate(size_t _Count, _Ty *)
Definition: xmemory0:21
void _Tidy(bool _Constructed=false)
Definition: valarray:459
size_t _Mysize
Definition: valarray:485
#define _CATCH_ALL
Definition: xstddef:62
#define _RERAISE
Definition: xstddef:74
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::_Grow ( size_t  _Newsize,
const _Ty *  _Ptr,
size_t  _Inc = 0 
)
inlineprivate
442  { // grow to _Count elements and fill
443  if (0 < _Newsize)
444  { // worth doing, allocate
445  _Myptr = _Allocate(_Newsize, (_Ty *)0);
446 
447  _TRY_BEGIN
448  for (size_t _Idx = 0; _Idx < _Newsize; ++_Idx, _Ptr += _Inc)
449  _Construct(&_Myptr[_Idx], *_Ptr);
450  _CATCH_ALL
451  _Tidy(true); // construction failed, clean up and reraise
452  _RERAISE;
453  _CATCH_END
454 
455  _Mysize = _Newsize;
456  }
457  }
#define _TRY_BEGIN
Definition: xstddef:60
#define _CATCH_END
Definition: xstddef:63
void _Construct(_Ty1 *_Ptr, _Ty2 &&_Val)
Definition: xmemory0:37
_STD_BEGIN _Ty * _Allocate(size_t _Count, _Ty *)
Definition: xmemory0:21
void _Tidy(bool _Constructed=false)
Definition: valarray:459
size_t _Mysize
Definition: valarray:485
#define _CATCH_ALL
Definition: xstddef:62
#define _RERAISE
Definition: xstddef:74
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::_Tidy ( bool  _Constructed = false)
inlineprivate
460  { // initialize the object, freeing any allocated storage
461  if (_Constructed && _Myptr != 0)
462  { // destroy elements
463  for (size_t _Idx = 1; _Idx < _Mysize; ++_Idx)
464  _Destroy(&_Myptr[_Idx]);
465  delete _Myptr;
466  }
467 
468  _Mysize = 0;
469  _Myptr = 0;
470  }
size_t _Mysize
Definition: valarray:485
void _Destroy(_Ty *_Ptr)
Definition: xmemory0:53
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt valarray< _Ty >::apply ( _Ty   _Func_Ty) const
inline
406  { // return valarray transformed by _Func, value argument
407  _VALOP(_Ty, size(), _Func(_Myptr[_Idx]));
408  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt valarray< _Ty >::apply ( _Ty   _Funcconst _Ty &) const
inline
411  { // return valarray transformed by _Func, nonmutable argument
412  _VALOP(_Ty, size(), _Func(_Myptr[_Idx]));
413  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt valarray< _Ty >::cshift ( int  _Count) const
inline
387  { // return valarray left rotated
388  if (size() == 0)
389  ; // no shift
390  else if (_Count < 0)
391  { // right shift
392  if (size() < (size_t)0 - _Count)
393  _Count = (int)(size() - ((size_t)0 - _Count - size())
394  % size());
395  else
396  _Count = (int)(size() + _Count);
397  }
398  else if (size() <= (size_t)_Count)
399  _Count %= size();
400 
401  _VALOP(_Ty, size(), size() - _Idx <= (size_t)_Count
402  ? _Myptr[_Idx - size() + _Count] : _Myptr[_Idx + _Count]);
403  }
_W64 unsigned int size_t
Definition: crtdefs.h:496
_CRTIMP _In_opt_z_ const wchar_t _In_opt_z_ const wchar_t unsigned int
Definition: crtdefs.h:642
size_t size() const
Definition: valarray:312
_Diff _Count
Definition: algorithm:1941
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void() valarray< _Ty >::free ( )
inline
416  { // erase all elements
417  _Tidy(true);
418  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
template<class _Ty>
_Ty() valarray< _Ty >::max ( ) const
inline
369  { // return largest of all elements
370  _Ty _Max = _Myptr[0];
371  for (size_t _Idx = 0; ++_Idx < size(); )
372  if (_Max < _Myptr[_Idx])
373  _Max = _Myptr[_Idx];
374  return (_Max);
375  }
size_t size() const
Definition: valarray:312
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Ty() valarray< _Ty >::min ( ) const
inline
360  { // return smallest of all elements
361  _Ty _Min = _Myptr[0];
362  for (size_t _Idx = 0; ++_Idx < size(); )
363  if (_Myptr[_Idx] < _Min)
364  _Min = _Myptr[_Idx];
365  return (_Min);
366  }
size_t size() const
Definition: valarray:312
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Boolarray valarray< _Ty >::operator! ( ) const
inline
208  { // return !valarray
209  _VALOP(_Bool, size(), !_Myptr[_Idx]);
210  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt& valarray< _Ty >::operator%= ( const _Ty &  _Right)
inline
223  { // remainder valarray elements by _Right
224  _VALGOP(%= _Right);
225  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator%= ( const _Myt _Right)
inline
273  { // remainder valarray elements by valarray _Right elements
274  _VALGOP(%= _Right[_Idx]);
275  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator&= ( const _Ty &  _Right)
inline
243  { // AND _Right into valarray elements
244  _VALGOP(&= _Right);
245  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator&= ( const _Myt _Right)
inline
298  { // AND valarray _Right elements into valarray elements
299  _VALGOP(&= _Right[_Idx]);
300  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator*= ( const _Ty &  _Right)
inline
213  { // multiply valarray elements by _Right
214  _VALGOP(*= _Right);
215  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator*= ( const _Myt _Right)
inline
263  { // multiply valarray elements by valarray _Right elements
264  _VALGOP(*= _Right[_Idx]);
265  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt valarray< _Ty >::operator+ ( ) const
inline
193  { // return +valarray
194  _VALOP(_Ty, size(), +_Myptr[_Idx]);
195  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt& valarray< _Ty >::operator+= ( const _Ty &  _Right)
inline
228  { // add _Right to valarray elements
229  _VALGOP(+= _Right);
230  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator+= ( const _Myt _Right)
inline
278  { // add valarray _Right elements to valarray elements
279  _VALGOP(+= _Right[_Idx]);
280  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt valarray< _Ty >::operator- ( void  ) const
inline
198  { // return -valarray
199  _VALOP(_Ty, size(), -_Myptr[_Idx]);
200  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt& valarray< _Ty >::operator-= ( const _Ty &  _Right)
inline
233  { // subtract _Right from valarray elements
234  _VALGOP(-= _Right);
235  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator-= ( const _Myt _Right)
inline
283  { // subtract valarray _Right elements from valarray elements
284  _VALGOP(-= _Right[_Idx]);
285  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator/= ( const _Ty &  _Right)
inline
218  { // divide valarray elements by _Right
219  _VALGOP(/= _Right);
220  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator/= ( const _Myt _Right)
inline
268  { // divide valarray elements by valarray _Right elements
269  _VALGOP(/= _Right[_Idx]);
270  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator<<= ( const _Ty &  _Right)
inline
253  { // left shift valarray elements by _Right
254  _VALGOP(<<= _Right);
255  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator<<= ( const _Myt _Right)
inline
303  { // left shift valarray elements by valarray _Right elements
304  _VALGOP(<<= _Right[_Idx]);
305  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator= ( _Myt &&  _Right)
inline
114  { // assign by moving _Right
115  _Assign_rv(_STD forward<_Myt>(_Right));
116  return (*this);
117  }
void _Assign_rv(_Myt &&_Right)
Definition: valarray:119
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator= ( _XSTD initializer_list< _Ty >  _Ilist)
inline
137  { // assign initializer_list
138  _Assign(_Ilist.size(), _Ilist.begin());
139  return (*this);
140  }
void _Assign(size_t _Newsize, const _Ty *_Ptr)
Definition: valarray:472
template<class _Ty>
_Myt& valarray< _Ty >::operator= ( const _Myt _Right)
inline
157  { // assign valarray _Right
158  if (this != &_Right)
159  _Assign(_Right.size(), _Right._Myptr);
160  return (*this);
161  }
void _Assign(size_t _Newsize, const _Ty *_Ptr)
Definition: valarray:472
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator= ( const _Ty &  _Val)
inline
164  { // assign _Val to each element
165  _VALGOP(= _Val);
166  }
#define _VALGOP(RHS)
Definition: valarray:41
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _Ty>
valarray< _Ty > & valarray< _Ty >::operator= ( const slice_array< _Ty > &  _Slicearr)
inline
1537  { // assign slice array to valarray
1538  _Tidy(true);
1539  _Grow(_Slicearr.size(), &_Slicearr._Data(_Slicearr.start()),
1540  _Slicearr.stride());
1541  return (*this);
1542  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Ty & _Data(size_t _Idx) const
Definition: valarray:1129
size_t start() const
Definition: valarray:1034
size_t stride() const
Definition: valarray:1044
size_t size() const
Definition: valarray:1039
template<class _Ty>
valarray< _Ty > & valarray< _Ty >::operator= ( const gslice_array< _Ty > &  _Gslicearr)
inline
1560  { // assign generalized slice array to valarray
1561  _Tidy(true);
1562  _Grow(_Gslicearr._Totlen());
1563  _Sizarray _Indexarray((size_t)0, _Gslicearr._Nslice());
1564  _VALGOP(= _Gslicearr._Data(_Gslicearr._Off(_Indexarray)));
1565  }
size_t _Off(_Sizarray &_Indexarr) const
Definition: valarray:1186
size_t _Nslice() const
Definition: valarray:1181
void _Tidy(bool _Constructed=false)
Definition: valarray:459
_Ty & _Data(size_t _Idx) const
Definition: valarray:1293
void _Grow(size_t _Newsize)
Definition: valarray:421
size_t _Totlen() const
Definition: valarray:1201
#define _VALGOP(RHS)
Definition: valarray:41
template<class _Ty>
valarray< _Ty > & valarray< _Ty >::operator= ( const mask_array< _Ty > &  _Maskarr)
inline
1582  { // assign masked array to valarray
1583  _Tidy(true);
1584  _Grow(_Maskarr._Totlen());
1585  size_t _Count = 0;
1586 
1587  for (size_t _Idx = 0; _Idx < size(); ++_Count)
1588  if (_Maskarr._Mask(_Count))
1589  _Myptr[_Idx++] = _Maskarr._Data(_Count);
1590  return (*this);
1591  }
size_t _Totlen() const
Definition: valarray:1400
_Ty & _Data(size_t _Idx) const
Definition: valarray:1390
size_t size() const
Definition: valarray:312
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_Diff _Count
Definition: algorithm:1941
bool _Mask(size_t _Idx) const
Definition: valarray:1395
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
valarray< _Ty > & valarray< _Ty >::operator= ( const indirect_array< _Ty > &  _Indarr)
inline
1609  { // assign indirect array to valarray
1610  _Tidy(true);
1611  _Grow(_Indarr._Totlen());
1612  _VALGOP(= _Indarr._Data(_Indarr._Indir(_Idx)));
1613  }
_Ty & _Data(size_t _Idx) const
Definition: valarray:1500
size_t _Indir(size_t _Idx) const
Definition: valarray:1505
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
#define _VALGOP(RHS)
Definition: valarray:41
size_t _Totlen() const
Definition: valarray:1510
template<class _Ty>
_Myt& valarray< _Ty >::operator>>= ( const _Ty &  _Right)
inline
258  { // right shift valarray elements by _Right
259  _VALGOP(>>= _Right);
260  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator>>= ( const _Myt _Right)
inline
308  { // right shift valarray elements by valarray _Right elements
309  _VALGOP(>>= _Right[_Idx]);
310  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
const _Ty& valarray< _Ty >::operator[] ( size_t  _Off) const
inline
318  { // subscript nonmutable sequence
319  return (_Myptr[_Off]);
320  }
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Ty& valarray< _Ty >::operator[] ( size_t  _Off)
inline
323  { // subscript mutable sequence
324  return (_Myptr[_Off]);
325  }
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
valarray< _Ty > valarray< _Ty >::operator[] ( slice  _Slicearr) const
inline
1546  { // subscript nonmutable valarray by slice
1547  return (valarray<_Ty>(slice_array<_Ty>(_Slice, _Myptr)));
1548  }
Definition: valarray:29
Definition: valarray:27
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
slice_array< _Ty > valarray< _Ty >::operator[] ( slice  _Slicearr)
inline
1552  { // subscript mutable valarray by slice
1553  return (slice_array<_Ty>(_Slice, _Myptr));
1554  }
Definition: valarray:27
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
valarray< _Ty > valarray< _Ty >::operator[] ( const gslice _Gslicearr) const
inline
1569  { // subscript nonmutable valarray by generalized slice
1570  return (valarray<_Ty>(gslice_array<_Ty>(_Gslice, _Myptr)));
1571  }
Definition: valarray:29
Definition: valarray:21
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
gslice_array< _Ty > valarray< _Ty >::operator[] ( const gslice _Gslicearr)
inline
1575  { // subscript mutable valarray by generalized slice
1576  return (gslice_array<_Ty>(_Gslicearr, _Myptr));
1577  }
Definition: valarray:21
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
valarray< _Ty > valarray< _Ty >::operator[] ( const _Boolarray _Boolarr) const
inline
1595  { // subscript nonmutable valarray by boolean (mask) array
1596  return (valarray<_Ty>(mask_array<_Ty>(_Boolarr, _Myptr)));
1597  }
Definition: valarray:29
Definition: valarray:25
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
mask_array< _Ty > valarray< _Ty >::operator[] ( const _Boolarray _Boolarr)
inline
1601  { // subscript nonmutable valarray by boolean (mask) array
1602  return (mask_array<_Ty>(_Boolarr, _Myptr));
1603  }
Definition: valarray:25
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
valarray< _Ty > valarray< _Ty >::operator[] ( const _Sizarray _Indarr) const
inline
1617  { // subscript nonmutable valarray by indirect (mapping) array
1618  return (valarray<_Ty>(indirect_array<_Ty>(_Indarr, _Myptr)));
1619  }
Definition: valarray:29
Definition: valarray:23
_Ty * _Myptr
Definition: valarray:484
template<class _Ty >
indirect_array< _Ty > valarray< _Ty >::operator[] ( const _Sizarray _Indarr)
inline
1623  { // subscript mutable valarray by indirect (mapping) array
1624  return (indirect_array<_Ty>(_Indarr, _Myptr));
1625  }
Definition: valarray:23
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
_Myt& valarray< _Ty >::operator^= ( const _Ty &  _Right)
inline
238  { // XOR _Right into valarray elements
239  _VALGOP(^= _Right);
240  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator^= ( const _Myt _Right)
inline
288  { // XOR valarray _Right elements into valarray elements
289  _VALGOP(^= _Right[_Idx]);
290  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator|= ( const _Ty &  _Right)
inline
248  { // OR _Right into valarray elements
249  _VALGOP(|= _Right);
250  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt& valarray< _Ty >::operator|= ( const _Myt _Right)
inline
293  { // OR valarray _Right elements into valarray elements
294  _VALGOP(|= _Right[_Idx]);
295  }
#define _VALGOP(RHS)
Definition: valarray:41
const _Ty & _Right
Definition: algorithm:4087
template<class _Ty>
_Myt valarray< _Ty >::operator~ ( ) const
inline
203  { // return ~valarray
204  _VALOP(_Ty, size(), ~_Myptr[_Idx]);
205  }
size_t size() const
Definition: valarray:312
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::resize ( size_t  _Newsize)
inline
169  { // determine new length, filling with _Ty() elements
170  _Tidy(true);
171  _Grow(_Newsize);
172  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
template<class _Ty>
void valarray< _Ty >::resize ( size_t  _Newsize,
_Ty  _Val 
)
inline
175  { // determine new length, filling with _Val elements
176  _Tidy(true);
177  _Grow(_Newsize, &_Val, 0);
178  }
void _Tidy(bool _Constructed=false)
Definition: valarray:459
void _Grow(size_t _Newsize)
Definition: valarray:421
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _Ty>
_Myt valarray< _Ty >::shift ( int  _Count) const
inline
378  { // return valarray left shifted
379  __PURE_APPDOMAIN_GLOBAL static _Ty _Dflt;
380  _VALOP(_Ty, size(),
381  0 < _Count && size() - _Idx <= (size_t)_Count
382  || _Count < 0 && _Idx < (size_t)-_Count
383  ? _Dflt : _Myptr[_Idx + _Count]);
384  }
#define __PURE_APPDOMAIN_GLOBAL
Definition: yvals.h:48
size_t size() const
Definition: valarray:312
_Diff _Count
Definition: algorithm:1941
#define _VALOP(TYPE, LENGTH, RHS)
Definition: valarray:35
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
size_t valarray< _Ty >::size ( ) const
inline
313  { // return length of sequence
314  return (_Mysize);
315  }
size_t _Mysize
Definition: valarray:485
template<class _Ty>
_Ty valarray< _Ty >::sum ( ) const
inline
352  { // return sum all elements
353  _Ty _Sum = _Myptr[0];
354  for (size_t _Idx = 0; ++_Idx < size(); )
355  _Sum += _Myptr[_Idx];
356  return (_Sum);
357  }
size_t size() const
Definition: valarray:312
_Ty * _Myptr
Definition: valarray:484
template<class _Ty>
void valarray< _Ty >::swap ( _Myt _Right)
inline
143  { // exchange contents with _Right
144  if (this != &_Right)
145  { // swap with emptied container
146  _STD swap(_Myptr, _Right._Myptr);
147  _STD swap(_Mysize, _Right._Mysize);
148  }
149  }
void swap(_Myt &_Right) _NOEXCEPT
Definition: valarray:142
size_t _Mysize
Definition: valarray:485
const _Ty & _Right
Definition: algorithm:4087
_Ty * _Myptr
Definition: valarray:484

Member Data Documentation

template<class _Ty>
_Ty* valarray< _Ty >::_Myptr
private
template<class _Ty>
size_t valarray< _Ty >::_Mysize
private

The documentation for this class was generated from the following file: