class
<valarray>
std::gsliceValarray generalized slice selector
This class represents a valarray generalized slice selector (a multidimensional slice). It does not contain nor refers to any element - it only describes a selection of elements to be used as an index in valarray::operator[].A valarray generalized slice is specified by a starting index, a set of sizes, and a set of strides. It produces a multidimensional combination of slice selections, where:
The starting index (start) is the index of the first element in the selection.
For example, a gslice with:
start = 1
size = {2, 3}
stride = {7, 2}
[0][1][2][3][4][5][6][7][8][9][10][11][12][13] start=1: * | size=2, stride=7: *--------------------* | | size=3, stride=2: *-----*-----* *------*------* | | | | | | gslice: * * * * * * [0][1][2][3][4][5][6][7][8][9][10][11][12][13]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// gslice example
#include <iostream> // std::cout
#include <cstddef> // std::size_t
#include <valarray> // std::valarray, std::gslice
int main ()
{
std::valarray<int> foo (14);
for (int i=0; i<14; ++i) foo[i]=i;
std::size_t start=1;
std::size_t lengths[]= {2,3};
std::size_t strides[]= {7,2};
std::gslice mygslice (start,
std::valarray<std::size_t>(lengths,2),
std::valarray<std::size_t>(strides,2));
std::valarray<int> bar = foo[mygslice];
std::cout << "gslice:";
for (std::size_t n=0; n<bar.size(); n++)
std::cout << ' ' << bar[n];
std::cout << '\n';
return 0;
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4