1 #ifndef MATH_STACKING_H 2 #define MATH_STACKING_H 4 #include "VectorTemplate.h" 5 #include "MatrixTemplate.h" 16 void Stack(
const std::vector<VectorTemplate<T> >& vs,VectorTemplate<T>& out)
19 for(
size_t i=0;i<vs.size();i++) n += vs[i].n;
22 for(
size_t i=0;i<vs.size();i++) {
23 out.copySubVector(n,vs[i]);
29 void Stack(
const VectorTemplate<T>& v1,
const VectorTemplate<T>& v2,VectorTemplate<T>& out)
31 out.resize(v1.n+v2.n);
32 out.copySubVector(0,v1);
33 out.copySubVector(v1.n,v2);
38 void HStack(
const std::vector<VectorTemplate<T> >& vs,MatrixTemplate<T>& out)
41 for(
size_t i=0;i<vs.size();i++) Assert(vs[i].n==vs[0].n);
42 out.resize(vs.size(),vs[0].n);
43 for(
size_t i=0;i<vs.size();i++)
48 void VStack(
const std::vector<VectorTemplate<T> >& vs,MatrixTemplate<T>& out)
51 for(
size_t i=0;i<vs.size();i++) Assert(vs[i].n==vs[0].n);
52 out.resize(vs[0].n,vs.size());
53 for(
size_t i=0;i<vs.size();i++)
58 void HStack(
const MatrixTemplate<T>& v1,
const MatrixTemplate<T>& v2,MatrixTemplate<T>& out)
61 out.resize(v1.m+v2.m,v1.n);
62 out.copySubMatrix(0,0,v1);
63 out.copySubMatrix(v1.m,0,v2);
67 void VStack(
const MatrixTemplate<T>& v1,
const MatrixTemplate<T>& v2,MatrixTemplate<T>& out)
70 out.resize(v1.m,v1.n+v2.n);
71 out.copySubMatrix(0,0,v1);
72 out.copySubMatrix(0,v1.n,v2);
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12