VCD Poly::all_roots()const{ VCD ret; Poly mute = *this; try{ while (mute.deg()>0){ CD root = mute.root(); ret.push_back(root); mute = mute.bezu_div(root); } }catch(string msg){ stringstream dest; dest << "Poly::all_roots() " << *this << endl << msg; throw dest.str(); } return ret; }