| MADNESS
    version 0.9
    | 
A slice defines a sub-range or patch of a dimension. More...
#include <slice.h>
| Public Member Functions | |
| Slice () | |
| Slice (long s, long e, long stp=1) | |
| Slice & | operator= (const Slice &s) | 
| Public Attributes | |
| long | start | 
| long | end | 
| long | step | 
A slice defines a sub-range or patch of a dimension.
The slice Slice(start,end,step) defines the subvector 
with indices as if generated from these loops
Note that start and end are inclusive, unlike the Python convention of specifying end+1 (note that we cannot do this easily in C/C++ unless we also define a special value to indicate the end of a dimension of unknown size).
Negative values for start or end (similar to Python) are relative to the end of the (possibly unknown) dimension. E.g.,
end=-1 is equivalent to end=dim-1 start=-4 is equivalent to start=dim-4 step=0 and start==end implies dimension will be eliminated when the slice is used to index a tensor<= or >= bounds in the loops specified above.Special slices have been defined as constants
_ (1 underscore) = Slice(0,-1,1) = full slice in current order___ (3 underscores) = Array of Slices with value _ so that t(___) will generate an assignable view of the entire tensor t .Slice(-1,0,-1) = full dimension reversedSlice() — full slice in current orderSlice(0,-1,1) — full slice in current orderSlice(3,3,0) — eliminate this dimension setting index=3 (step=0)Slice(3,3,1) — reduce a dimension to length 1 using index=3 (step=1)Slice(-1,0,-1) — reverse a dimensionSlice(0,-1,2) — use all even numbered elementsSlice(1,-1,2) — use all odd numbered elements | 
 | inline | 
| 
 | inline | 
| long madness::Slice::end | 
Referenced by madness::operator<<(), and operator=().
| long madness::Slice::start | 
Referenced by madness::operator<<(), and operator=().
| long madness::Slice::step | 
Referenced by madness::operator<<(), and operator=().
 1.8.8
 1.8.8