Marsyas
0.6.0-alpha
|
Reorder input along observations. More...
#include <Deinterleave.h>
Inherits MarSystem.
Public Member Functions | |
MarSystem * | clone () const |
Deinterleave (std::string name) | |
Deinterleave (const Deinterleave &a) | |
void | myProcess (realvec &in, realvec &out) |
Processes data. | |
~Deinterleave () |
Reorder input along observations.
This is designed, so that its output can potentially be meaningfully split by the Parallel MarSystem.
if you want to deinterleave along samples: transpose, then deinterleave using this marsystem, then transpose again (using the Transposer MarSystem).
The input realvec is assumed to be organized in numSets equal modulo sets - i.e. in a manner of:
n*numSets,n*numSets+1,...,n*numSets+(numSets-1)
This marsystem ensures that the output will be ordered with the sets grouped together - i.e. in a manner of:
numSet[0][0],numSet[0][1],numSet[0][2],...,numSet[0][inObervations/numsets], numSet[1][0],numSet[1][1],numSet[1][2],...,numSet[1][inObervations/numsets], ..., numSet[numSets-1][0],numSet[numSets-1][1],numSet[numSets-1][2],...,numSet[numSets-1][inObervations/numsets]
Note that, if the number of observations is not divisible by the number of Sets, then the first "rest" groups will have one element more than the remaining groups. (With "rest" being the rest of the division of the number of observations by the number of Sets).
For example, if there are 8 input rows (i.e. observations), then this marsystem would - for three sets (numSets - control set to 3) - reorder the elements of the 8 elements (ordered 0th,1st,2nd,3rd,4th,5th,6th,7th) of each row to the new order 0th,3rd,6th,1st,4th,7th,2nd,5th.
Controls:
Definition at line 65 of file Deinterleave.h.
Deinterleave | ( | std::string | name | ) |
Definition at line 24 of file Deinterleave.cpp.
Deinterleave | ( | const Deinterleave & | a | ) |
Definition at line 36 of file Deinterleave.cpp.
~Deinterleave | ( | ) |
Definition at line 50 of file Deinterleave.cpp.
Implements MarSystem.
Definition at line 56 of file Deinterleave.cpp.
Processes data.
in | Input data to read. |
out | Output data to write. |
Implement this method in subclass to define specific data processing.
Implements MarSystem.
Definition at line 121 of file Deinterleave.cpp.