void MapOmp::init(const Dict& opts) { // Call the initialization method of the base class Map::init(opts); // Allocate memory for holding memory object references alloc_iw(n_, true); // Allocate sufficient memory for parallel evaluation alloc_arg(f_.sz_arg() * n_); alloc_res(f_.sz_res() * n_); alloc_w(f_.sz_w() * n_); alloc_iw(f_.sz_iw() * n_); }
void Map::init(const Dict& opts) { // Call the initialization method of the base class FunctionInternal::init(opts); // Allocate sufficient memory for serial evaluation alloc_arg(f_.sz_arg()); alloc_res(f_.sz_res()); alloc_w(f_.sz_w()); alloc_iw(f_.sz_iw()); }
void GurobiInterface::init(const Dict& opts) { // Initialize the base classes Conic::init(opts); // Default options std::vector<std::string> vtype; // Read options for (auto&& op : opts) { if (op.first=="vtype") { vtype = op.second; } } // Variable types if (!vtype.empty()) { casadi_assert_message(vtype.size()==nx_, "Option 'vtype' has wrong length"); vtype_.resize(nx_); for (int i=0; i<nx_; ++i) { if (vtype[i]=="continuous") { vtype_[i] = GRB_CONTINUOUS; } else if (vtype[i]=="binary") { vtype_[i] = GRB_BINARY; } else if (vtype[i]=="integer") { vtype_[i] = GRB_INTEGER; } else if (vtype[i]=="semicont") { vtype_[i] = GRB_SEMICONT; } else if (vtype[i]=="semiint") { vtype_[i] = GRB_SEMIINT; } else { casadi_error("No such variable type: " + vtype[i]); } } } // Temporary memory alloc_w(nx_, true); // val alloc_iw(nx_, true); // ind alloc_iw(nx_, true); // ind2 alloc_iw(nx_, true); // tr_ind }
void OoqpInterface::init(const Dict& opts) { // Initialize the base classes Conic::init(opts); // Default options print_level_ = 0; mutol_ = 1e-8; artol_ = 1e-8; // Read options for (auto&& op : opts) { if (op.first=="print_level") { print_level_ = op.second; } else if (op.first=="mutol") { mutol_ = op.second; } else if (op.first=="artol") { artol_ = op.second; } } // Allocate memory for problem nQ_ = H_.nnz_upper(); nA_ = nnz_in(CONIC_A); nH_ = nnz_in(CONIC_H); spAT_ = A_.T(); // Allocate work vectors alloc_w(nx_, true); // g alloc_w(nx_, true); // lbx alloc_w(nx_, true); // ubx alloc_w(na_, true); // lba alloc_w(na_, true); // uba alloc_w(nH_, true); // H alloc_w(nA_, true); // A alloc_w(nx_, true); // c_ alloc_w(na_, true); // bA_ alloc_w(nx_, true); // xlow_ alloc_w(nx_, true); // xupp_ alloc_w(na_, true); // clow_ alloc_w(na_, true); // cupp_ alloc_w(nx_, true); // x_ alloc_w(nx_, true); // gamma_ alloc_w(nx_, true); // phi_ alloc_w(na_, true); // y_ alloc_w(na_, true); // z_ alloc_w(na_, true); // lambda_ alloc_w(na_, true); // pi_ alloc_iw(nx_, true); // ixlow_ alloc_iw(nx_, true); // ixupp_ alloc_iw(na_, true); // iclow_ alloc_iw(na_, true); // icupp_ alloc_w(nQ_, true); // dQ_ alloc_w(nA_, true); // dA_ alloc_w(nA_, true); // dC_ alloc_iw(nQ_, true); // irowQ_ alloc_iw(nQ_, true); // jcolQ_ alloc_iw(nA_, true); // irowA_ alloc_iw(nA_, true); // jcolA_ alloc_iw(nA_, true); // irowC_ alloc_iw(nA_, true); // jcolC_ alloc_iw(nx_, true); // x_index_ alloc_iw(na_, true); // c_index_ alloc_w(nx_, true); // p_ alloc_w(nA_, true); // AT alloc_iw(na_); // casadi_trans }