Horzcat::Horzcat(const std::vector<MX>& x) : Concat(x) { // Construct the sparsity casadi_assert(!x.empty()); Sparsity sp = x.front().sparsity(); for (vector<MX>::const_iterator i=x.begin()+1; i!=x.end(); ++i) { sp.appendColumns(i->sparsity()); } setSparsity(sp); }
Sparsity vertcat(const Sparsity & a, const Sparsity & b) { if(a.isVector()){ Sparsity ret = a; ret.append(b); return ret; } else { Sparsity ret = a.T(); ret.appendColumns(b.T()); return ret.T(); } }
Sparsity horzcat(const std::vector<Sparsity> & sp) { if(sp.empty()){ return Sparsity(); } else { Sparsity ret = sp[0]; for(int i=1; i<sp.size(); ++i) { ret.appendColumns(sp[i]); } return ret; } }
Sparsity horzcat(const Sparsity & a, const Sparsity & b) { Sparsity ret = a; ret.appendColumns(b); return ret; }