Varianti

std::gslice

Da cppreference.com.

<metanoindex/>

 
 
Numeri libreria
Comuni funzioni matematiche
Virgola mobile ambiente
I numeri complessi
Array numerici
Pseudo-casuale generazione
In fase di compilazione aritmetica razionale (C++11)
Generici operazioni numeriche
Original:
Generic numeric operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
iota(C++11)
accumulate
inner_product
adjacent_difference
partial_sum
 
 
<tbody> </tbody>
Elemento definito nell'header <valarray>
class gslice;
std::gslice è la classe selettore che identifica un sottoinsieme di indici std::valarray definiti da un multi-livello insieme di passi e dimensioni. Oggetti di std::gslice tipo possono essere usati come indici con operator[] valarray di selezionare, per esempio, le colonne di una matrice multidimensionale rappresentata come valarray.
Original:
std::gslice is the selector class that identifies a subset of std::valarray indices defined by a multi-level set of strides and sizes. Objects of type std::gslice can be used as indices with valarray's operator[] to select, for example, columns of a multidimensional array represented as a valarray.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Dato il s valore iniziale, un elenco di passi i
j
e una lista di dimensioni d
j
, un std::gslice costruito da questi valori seleziona l'insieme di indici k
j
=s+Σ
j
(i
j
d
j
)
.
Original:
Given the starting value s, a list of strides i
j
and a list of sizes d
j
, a std::gslice constructed from these values selects the set of indices k
j
=s+Σ
j
(i
j
d
j
)
.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Per esempio, con un gslice 3 indice iniziale, passi {19,4,1} e lunghezze {2,4,3} genera il seguente insieme di indici:
Original:
For example, a gslice with starting index 3, strides {19,4,1} and lengths {2,4,3} generates the following set of indices:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

3 + 0*19 + 0*4 + 0*1 = 3, 3 + 0*19 + 0*4 + 1*1 = 4, 3 + 0*19 + 0*4 + 2*1 = 5, 3 + 0*19 + 1*4 + 0*1 = 7, 3 + 0*19 + 1*4 + 1*1 = 8, ... 3 + 1*19 + 3*4 + 2*1 = 36

È possibile costruire oggetti std::gslice che selezionano alcuni indici più di una volta: se il precedente esempio utilizzato il {1,1,1} passi, gli indici sarebbero stati {3, 4, 5, 4, 5, 6, ...} . Gslices in questione possono essere utilizzati solo come argomenti la versione const di std::valarray::operator[], altrimenti il ​​comportamento è indefinito.
Original:
It is possible to construct std::gslice objects that select some indices more than once: if the above example used the strides {1,1,1} , the indices would have been {3, 4, 5, 4, 5, 6, ...} . Such gslices may only be used as arguments to the const version of std::valarray::operator[], otherwise the behavior is undefined.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Membri funzioni

costruisce un gslice
Original:
constructs a gslice
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico)
accede l'inizio della gslice
Original:
accesses the start of the gslice
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico)
accede alla serie di passi del gslice
Original:
accesses the array of strides of the gslice
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico)
accede alla matrice di sizees del gslice
Original:
accesses the array of sizees of the gslice
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico)

Esempio

dimostra l'uso di gslices affrontare colonne di una matrice 3D
Original:
demonstrates the use of gslices to address columns of a 3D array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <valarray>
void test_print(std::valarray<int>& v, int rows, int cols, int planes)
{
    for(int r=0; r<rows; ++r) {
        for(int c=0; c<cols; ++c) {
            for(int z=0; z<planes; ++z)
                std::cout << v[r*cols*planes + c*planes + z] << ' ';
            std::cout << '\n';
        }
        std::cout << '\n';
    }
}
int main()
{
    std::valarray<int> v = // 3d array: 2 x 4 x 3 elements
    { 111,112,113 , 121,122,123 , 131,132,133 , 141,142,143,
      211,212,213 , 221,222,223 , 231,232,233 , 241,242,243};
    // int ar3d[2][4][3]
    std::cout << "Initial 2x4x3 array:\n";
    test_print(v, 2, 4, 3);

    // update every value in the first columns of both planes
    v[std::gslice(0, {2, 4}, {4*3, 3})] = 1; // two level one strides of 12 elements
                                             // then four level two strides of 3 elements

    // subtract the third column from the second column in the 1st plane
    v[std::gslice(1, {1, 4}, {4*3, 3})] -= v[std::gslice(2, {1, 4}, {4*3, 3})];

    std::cout << "After column operations: \n";
    test_print(v, 2, 4, 3);
}

Output:

Initial 2x4x3 array:
111 112 113
121 122 123
131 132 133
141 142 143

211 212 213
221 222 223
231 232 233
241 242 243

After column operations:
1 -1 113
1 -1 123
1 -1 133
1 -1 143

1 212 213
1 222 223
1 232 233
1 242 243

Vedi anche

get / set elemento valarray, fetta, o maschera
Original:
get/set valarray element, slice, or mask
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico) [modifica]
BLAS-come una fetta di valarray: indice iniziale, lunghezza, passo
Original:
BLAS-like slice of a valarray: starting index, length, stride
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(classe) [modifica]
proxy per un sottoinsieme di un valarray dopo aver applicato un gslice
Original:
proxy to a subset of a valarray after applying a gslice
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(classe template) [modifica]