コード例 #1
0
ファイル: switch.cpp プロジェクト: casadi/casadi
 Sparsity Switch::get_sparsity_out(casadi_int i) {
   Sparsity ret;
   for (auto&& fk : f_) {
     if (!fk.is_null()) {
       const Sparsity& s = fk.sparsity_out(i);
       ret = ret.is_null() ? s : ret.unite(s);
     }
   }
   casadi_assert_dev(!f_def_.is_null());
   const Sparsity& s = f_def_.sparsity_out(i);
   ret = ret.is_null() ? s : ret.unite(s);
   return ret;
 }
コード例 #2
0
ファイル: switch.cpp プロジェクト: casadi/casadi
 Sparsity Switch::get_sparsity_in(casadi_int i) {
   if (i==0) {
     return Sparsity::scalar();
   } else {
     Sparsity ret;
     for (auto&& fk : f_) {
       if (!fk.is_null()) {
         const Sparsity& s = fk.sparsity_in(i-1);
         ret = ret.is_null() ? s : ret.unite(s);
       }
     }
     casadi_assert_dev(!f_def_.is_null());
     const Sparsity& s = f_def_.sparsity_in(i-1);
     ret = ret.is_null() ? s : ret.unite(s);
     return ret;
   }
 }