コード例 #1
0
 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();
   }
 }
コード例 #2
0
 std::vector<Sparsity> vertsplit(const Sparsity& sp, const std::vector<int>& offset){
   std::vector<Sparsity> ret = horzsplit(sp.T(),offset);
   for(std::vector<Sparsity>::iterator it=ret.begin(); it!=ret.end(); ++it){
     *it = it->T();
   }
   return ret;
 }
コード例 #3
0
 Sparsity vertcat(const std::vector<Sparsity> & sp) {
   if(sp.empty()){
     return Sparsity();
   } else if(sp[0].isVector()){
     Sparsity ret = sp[0];
     for(int i=1; i<sp.size(); ++i) {
       ret.append(sp[i]);
     }
     return ret;
   } else {
     Sparsity ret = sp[0].T();
     for(int i=1; i<sp.size(); ++i) {
       ret.appendColumns(sp[i].T());
     }
     return ret.T();
   }
 }
コード例 #4
0
 Sparsity mul(const Sparsity& a, const Sparsity &b) {
   return b.patternProduct(a.T());
 }