LSST Applications g070148d5b3+33e5256705,g0d53e28543+25c8b88941,g0da5cf3356+2dd1178308,g1081da9e2a+62d12e78cb,g17e5ecfddb+7e422d6136,g1c76d35bf8+ede3a706f7,g295839609d+225697d880,g2e2c1a68ba+cc1f6f037e,g2ffcdf413f+853cd4dcde,g38293774b4+62d12e78cb,g3b44f30a73+d953f1ac34,g48ccf36440+885b902d19,g4b2f1765b6+7dedbde6d2,g5320a0a9f6+0c5d6105b6,g56b687f8c9+ede3a706f7,g5c4744a4d9+ef6ac23297,g5ffd174ac0+0c5d6105b6,g6075d09f38+66af417445,g667d525e37+2ced63db88,g670421136f+2ced63db88,g71f27ac40c+2ced63db88,g774830318a+463cbe8d1f,g7876bc68e5+1d137996f1,g7985c39107+62d12e78cb,g7fdac2220c+0fd8241c05,g96f01af41f+368e6903a7,g9ca82378b8+2ced63db88,g9d27549199+ef6ac23297,gabe93b2c52+e3573e3735,gb065e2a02a+3dfbe639da,gbc3249ced9+0c5d6105b6,gbec6a3398f+0c5d6105b6,gc9534b9d65+35b9f25267,gd01420fc67+0c5d6105b6,geee7ff78d7+a14128c129,gf63283c776+ede3a706f7,gfed783d017+0c5d6105b6,w.2022.47
LSST Data Management Base Package
|
A Mapping split off as a subset of another Mapping. More...
#include <MapSplit.h>
Public Member Functions | |
MapSplit (Mapping const &map, std::vector< int > const &in) | |
Construct a MapSplit. More... | |
MapSplit (MapSplit const &)=default | |
MapSplit (MapSplit &&)=default | |
MapSplit & | operator= (MapSplit const &)=default |
MapSplit & | operator= (MapSplit &&)=default |
Public Attributes | |
std::shared_ptr< Mapping > | splitMap |
The Mapping that was split off. More... | |
std::vector< int > | origIn |
Indices of the inputs of the original mapping were picked for the split mapping. More... | |
std::vector< int > | origOut |
Indices of the outputs of the original mapping which are fed by the picked inputs. More... | |
A Mapping split off as a subset of another Mapping.
Definition at line 38 of file MapSplit.h.
|
explicit |
Construct a MapSplit.
The subset is specified by choosing a subset of inputs from an existing Mapping. Such a split is only possible if the specified inputs correspond to some subset of the original Mapping's outputs. That is, there must exist a subset of the Mapping outputs for which each output depends only on the selected Mapping inputs, and not on any of the inputs which have not been selected. Also, any output which is not in this subset must not depend on any of the selected inputs.
[in] | map | Mapping to split. |
[in] | in | Indices of inputs of map to pick. Each element should have a value in the range [1, map.getNIn()]. |
std::runtime_error | if map cannot be split as specified. |
Definition at line 35 of file MapSplit.cc.
|
default |
|
default |
std::vector<int> ast::MapSplit::origIn |
Indices of the inputs of the original mapping were picked for the split mapping.
This is a copy of the in
argument of the constructor.
Definition at line 73 of file MapSplit.h.
std::vector<int> ast::MapSplit::origOut |
Indices of the outputs of the original mapping which are fed by the picked inputs.
This will contain splitMap->getNOut() elements, each in the range [1, nout of the original mapping]. The i
th element holds the index within the original mapping which corresponds to the i
th output of the split mapping. For example if the 1st output of the split mapping came from the 5th output of the original mapping, then origOut[0] = 5 (0 because vectors use 0-based indexing, and 5 because AST index values are 1-based).
Definition at line 83 of file MapSplit.h.
std::shared_ptr<Mapping> ast::MapSplit::splitMap |
The Mapping that was split off.
Definition at line 67 of file MapSplit.h.