bool in_out_variable(const ap::boolean_1d_array& in, const ap::real_2d_array& X, ap::real_2d_array& x, bool io) { ////////////////////////////////////////////////////////////////// // Section: Define variables int rows = in.gethighbound(0) + 1; bool flag; vector<int> stdVector; ////////////////////////////////////////////////////////////////// // Section: Identify how many variables are in or out for (int i=0; i<rows; i++) { if (in(i)==io) stdVector.push_back(i); } if (stdVector.size()>0) { // Routine to extract the in/out variables x.setbounds(0,X.gethighbound(1),0,static_cast<int>(stdVector.size())-1); for (size_t i=0; i<stdVector.size(); i++) ap::vmove(x.getcolumn(static_cast<int>(i),0,X.gethighbound(1)), X.getcolumn(stdVector[i],0,X.gethighbound(1))); flag=TRUE; } else flag=FALSE; return flag; }