Poly Poly::operator*(const Poly& obj) const { Poly tmp = Poly(this->m_pi); // This for (int i = 0; i < this->getMonoPolyNum(); i++) { for (int j = 0; j < obj.getMonoPolyNum(); j++) { MonoPoly toadd = *(obj.getMonoPolyWithIndex(j)) * *(this->getMonoPolyWithIndex(i)); tmp = tmp + toadd; } } tmp.cleanPoly(); return tmp; }
Poly Poly::operator+(const Poly& obj) const { Poly tmp = Poly(this->m_pi); // This for (int i = 0; i < this->getMonoPolyNum(); i++) tmp.addMonoPoly(this->getMonoPolyWithIndex(i)); // obj for (int i = 0; i < obj.getMonoPolyNum(); i++) { int index; if ((index = tmp.searchSameDimMonoPoly(obj.getMonoPolyWithIndex(i))) == -1) { tmp.addMonoPoly(obj.getMonoPolyWithIndex(i)); } else { tmp.setMonoPolyCoeffWithIndex(index, tmp.getMonoPolyWithIndex(index)->getCoeff() + obj.getMonoPolyWithIndex(i) ->getCoeff()); } } tmp.cleanPoly(); return tmp; }