Changeset 82f499 in git for kernel/Poly.h


Ignore:
Timestamp:
Aug 17, 2005, 12:12:11 PM (19 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
bd78fe5e2fedb6e73b477dc7f5f60ec3cb150e4b
Parents:
c1e4cd403513c2cfaac94cde3319fe5d54a930de
Message:
*bricken: better structure


git-svn-id: file:///usr/local/Singular/svn/trunk@8518 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Poly.h

    rc1e4cd r82f499  
    1 //$Id: Poly.h,v 1.13 2005-08-17 09:42:15 bricken Exp $
     1//$Id: Poly.h,v 1.14 2005-08-17 10:12:11 bricken Exp $
    22
    33
     
    2626class PolyImpl{
    2727  friend class PolyBase<POLY_VARIANT_RING,Poly>;
     28  friend class PolyBase<POLY_VARIANT_MODUL,Vector>;
    2829  //friend class PolyBase<POLY_VARIANT_MODUL>;
    2930  friend class Poly;
     31  friend class Vector;
    3032  //friend class Number;
    3133 protected:
     
    477479
    478480};
     481class Vector: public PolyBase<POLY_VARIANT_MODUL, Vector>{
     482 
     483 public:
     484
     485  Vector(ring r=currRing):PolyBase<POLY_VARIANT_MODUL, Vector> ((poly)NULL,r,0){
     486  }
     487  Vector(int n, ring r=currRing):PolyBase<POLY_VARIANT_MODUL, Vector>(*(new PolyImpl(n,r))){
     488   
     489  }
     490  Vector(const char* c, ring r=currRing):PolyBase<POLY_VARIANT_MODUL, Vector>(c,r){
     491
     492  }
     493  Vector(const PolyBase<POLY_VARIANT_MODUL, Vector>& p):PolyBase<POLY_VARIANT_MODUL, Vector>(p){
     494  }
     495 
     496  Vector(const Number& n):PolyBase<POLY_VARIANT_MODUL, Vector>(*(new PolyImpl(n))){
     497   
     498  }
     499  Vector(poly p, ring r):PolyBase<POLY_VARIANT_MODUL, Vector>(p,r){
     500   
     501  }
     502  Vector(poly p, ring r, int):PolyBase<POLY_VARIANT_MODUL, Vector>(p,r,0){
     503  }
     504  Vector(std::vector<int> v, ring r=currRing):PolyBase<POLY_VARIANT_MODUL, Vector>(*(new PolyImpl((poly) NULL,r))){
     505    unsigned int i;
     506    int s=v.size();
     507    poly p=p_ISet(1,r);
     508    for(i=0;i<v.size();i++){
     509      pSetExp(p,i+1,v[i]);
     510    }
     511    pSetm(p);
     512    ptr.reset(new PolyImpl(p,r));
     513  }
     514  /*  Poly& operator+=(const Number& n){
     515  Poly p2(n);
     516  ((PolyBase<POLY_VARIANT_MODUL, Poly>&) (*this))+=p2;
     517  return *this;
     518  }*/
     519  Vector& operator+=(const Vector& p ){
     520
     521    ((PolyBase<POLY_VARIANT_MODUL, Vector>&)*this)+=p;
     522    return *this;
     523  }
     524  Vector& operator+=(const PolyBase<POLY_VARIANT_MODUL, Vector>& p ){
     525
     526    ((PolyBase<POLY_VARIANT_MODUL, Vector>&)*this)+=p;
     527    return *this;
     528  }
     529
     530};
    479531
    480532//typedef Poly PolyBase<POLY_VARIANT_RING>::create_type;
     
    500552}
    501553
    502 Poly operator+(const Poly& p1, const Poly& p2){
    503   Poly f(p1);
    504   f+=p2;
     554Poly operator+(const Poly& p1, const Number& n){
     555 Poly f(p1);
     556  f+=n;
    505557  return f;
     558  }
     559template <poly_variant variant, class create_type>
     560  typename PolyBase<variant,create_type>::create_type
     561  operator+
     562  (const PolyBase<variant,create_type>& b1,
     563   const PolyBase<variant,create_type>& b2)
     564{
     565  typename PolyBase<variant, create_type>::create_type erg(b1);
     566  erg+=b2;
     567  return erg;
    506568}
    507569
Note: See TracChangeset for help on using the changeset viewer.