| 453 | }; |
| 454 | |
| 455 | class Poly: public PolyBase<POLY_VARIANT_RING, Poly, MyErrorHandler>{ |
| 456 | private: |
| 457 | typedef PolyBase<POLY_VARIANT_RING, Poly,MyErrorHandler> Base; |
| 458 | friend class Vector; |
| 459 | friend class PolyBase<POLY_VARIANT_MODUL,Vector,MyErrorHandler>; |
| 460 | public: |
| 461 | |
| 462 | Poly(ring r=currRing):Base ((poly)NULL,r,0){ |
| 463 | } |
| 464 | Poly(int n, ring r=currRing):Base(*(new PolyImpl(n,r))){ |
| 465 | |
| 466 | } |
| 467 | Poly(const char* c, ring r=currRing):Base(c,r){ |
| 468 | |
| 469 | } |
| 470 | Poly(const Base& p):Base(p){ |
| 471 | } |
| 472 | |
| 473 | Poly(const Number& n):Base(*(new PolyImpl(n))){ |
| 474 | |
| 475 | } |
| 476 | Poly(poly p, ring r):Base(p,r){ |
| 477 | |
| 478 | } |
| 479 | Poly(poly p, ring r, int):Base(p,r,0){ |
| 480 | } |
| 481 | Poly(const std::vector<int>& v, ring r=currRing):Base(*(new PolyImpl((poly) NULL,r))){ |
| 482 | unsigned int i; |
| 483 | int s=v.size(); |
| 484 | poly p=p_ISet(1,r); |
| 485 | for(i=0;i<v.size();i++){ |
| 486 | pSetExp(p,i+1,v[i]); |
| 487 | } |
| 488 | pSetm(p); |
| 489 | ptr.reset(new PolyImpl(p,r)); |
| 490 | } |
| 491 | /* Poly& operator+=(const Number& n){ |
| 492 | Poly p2(n); |
| 493 | ((PolyBase<POLY_VARIANT_RING, Poly>&) (*this))+=p2; |
| 494 | return *this; |
| 495 | }*/ |
| 496 | Poly& operator+=(const Poly& p ){ |
| 497 | |
| 498 | ((Base&)*this)+=p; |
| 499 | return *this; |
| 500 | } |
| 501 | Poly& operator+=(const Base& p ){ |
| 502 | |
| 503 | ((Base&)*this)+=p; |
| 504 | return *this; |
| 505 | } |
| 506 | friend inline bool operator==(const Poly& p1, const Poly& p2); |
| 507 | |
| 508 | }; |
| 509 | class Vector: public PolyBase<POLY_VARIANT_MODUL, Vector, MyErrorHandler>{ |
| 510 | private: |
| 511 | typedef PolyBase<POLY_VARIANT_MODUL, Vector, MyErrorHandler> Base; |
no outgoing calls
no test coverage detected