Function operator/(var_& v, Quadratic q){ int vid = v.get_idx(); if (q.get_nb_vars()==1 && q._cst==0) { if (q._lin_vars.count(vid)==1){ if(q._quad_vars.size()==0) { return Function(q._coefs[vid]); } return 1/(q._coefs[vid] + q.get_q_coeff(vid, vid)*v); } // if (q._quad_vars.count(vid)==1) { return 1/(q.get_q_coeff(vid, vid)*v); // } } return Function(v)/= q; };
Function::Function(var_& v):Function(){ _ftype = lin_; _quad += v; _vars.insert(pair<int, var_*>(v.get_idx(),&v)); };