Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
valarray.cpp
Go to the documentation of this file.
1
29#define _RWSTD_LIB_SRC
30
31#include <valarray>
32#include <string.h> // for memset()
33
34#include <rw/_defs.h>
35
36
38
39
40_RWSTD_SIZE_T gslice::next_ind ()
41{
42 _RWSTD_SIZE_T __n = _C_length.size ();
43
44 for (; __n; --__n)
45 {
46 if ( _C_length [__n - 1]
47 && _C_r_length [__n - 1] != _C_length [__n - 1] - 1)
48 break;
49 }
50
51 if (0 == __n) {
52 _C_reset = true;
53 _C_r_length = 0;
54 return _C_start;
55 }
56
57 if (_C_reset) {
58 _C_reset = false;
59 return _C_start;
60 }
61
62 _RWSTD_ASSERT (0 < __n);
63
64 ++_C_r_length [__n - 1];
65
66 if (__n < _C_r_length.size ())
67 ::memset (&_C_r_length [__n], 0,
68 (_C_r_length.size () - __n) * sizeof _C_r_length [__n]);
69 else
70 __n = _C_r_length.size ();
71
72 _RWSTD_SIZE_T __inx = _C_start;
73 for (_RWSTD_SIZE_T __i = 0; __i != __n; ++__i)
74 __inx += _C_r_length [__i] * _C_stride [__i];
75
76 return __inx;
77}
78
79} // namespace std
#define _RWSTD_NAMESPACE(name)
Definition _defs.h:567
#define _RWSTD_ASSERT(ignore)
Definition _defs.h:1108
Definition json.h:5363