realroot_doc 0.1.1
monomials< C > Struct Template Reference

#include <univariate.hpp>

List of all members.

Public Types

Public Member Functions

Public Attributes


Detailed Description

template<class C>
struct mmx::univariate::monomials< C >

Array polynomial representation, as a subclass of ::rep1d<C>@.

Definition at line 54 of file univariate.hpp.


Member Typedef Documentation

typedef C coeff_t

Definition at line 62 of file univariate.hpp.

Definition at line 59 of file univariate.hpp.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator

Definition at line 60 of file univariate.hpp.

typedef C* iterator

Definition at line 58 of file univariate.hpp.

typedef std::reverse_iterator<iterator> reverse_iterator

Definition at line 61 of file univariate.hpp.

typedef unsigned int size_type

Definition at line 57 of file univariate.hpp.

typedef C value_type

Definition at line 56 of file univariate.hpp.


Constructor & Destructor Documentation

monomials ( ) [inline]

Definition at line 68 of file univariate.hpp.

: tab_(0), size_(0), degree_(-1) {}
monomials ( const C &  c)

Definition at line 116 of file univariate.hpp.

References monomials< C >::tab_.

                                 : size_(1), degree_(0) {
    tab_ = new C[1];
    tab_[0]=c;
  }
monomials ( const C &  c,
size_type  d,
int  v = 0 
)

Definition at line 121 of file univariate.hpp.

References monomials< C >::tab_.

                                                     : size_(l+1), degree_(l) {
    tab_ = new C[l+1];
    for (size_type i = 0; i < l; i++) tab_[i]=C(0);
    tab_[l]=c;
  }
monomials ( const size_type s,
C *  t 
)

Definition at line 128 of file univariate.hpp.

References mmx::univariate::check_degree(), and monomials< C >::tab_.

                                               : size_(i), degree_(i-1) {
    tab_ = new C[i];
    for(size_type l=0;l<i;l++) tab_[l] = t[l];
    check_degree(*this);
  }
monomials ( const size_type s,
const char *  t 
)

Definition at line 146 of file univariate.hpp.

References mmx::univariate::check_degree().

                                                           {
    std::istringstream ins(nm);
    size_=l;
    tab_ = new C[size_];
    for(size_type i=0; i< size_; i++) ins >>tab_[i];
    degree_=l-1;
    check_degree(*this);
  }
monomials ( C *  b,
C *  e 
)

Definition at line 135 of file univariate.hpp.

References mmx::univariate::check_degree().

                                  {
    size_=0; C* p;
    for(p=b;p!=e;p++,size_++) ;
    tab_ = new C[size_];
    degree_=0;
    for(p=b; p!=e; p++,degree_++) {tab_[degree_]=(*p);}
    check_degree(*this);
  }
monomials ( const monomials< C > &  p)

Definition at line 110 of file univariate.hpp.

References monomials< C >::tab_.

                                            : size_(v.size_), degree_(v.degree_) {
    tab_ = new C[v.size_]; 
    for(size_type i=0;i<v.size_;i++) {tab_[i] = v[i];}
  }
~monomials ( ) [inline]

Definition at line 77 of file univariate.hpp.

References monomials< C >::tab_.

{ delete[] tab_;}

Member Function Documentation

iterator begin ( ) [inline]

Definition at line 79 of file univariate.hpp.

References monomials< C >::tab_.

{return iterator(tab_); }
const_iterator begin ( ) const [inline]

Definition at line 80 of file univariate.hpp.

References monomials< C >::tab_.

{return const_iterator(tab_); }
unsigned degree ( ) const [inline]

Definition at line 95 of file univariate.hpp.

References monomials< C >::degree_.

{ return degree_;}
const_iterator end ( ) const [inline]

Definition at line 82 of file univariate.hpp.

References monomials< C >::degree_, and monomials< C >::tab_.

{return const_iterator(this->tab_+degree_+1); }
iterator end ( ) [inline]

Definition at line 81 of file univariate.hpp.

References monomials< C >::degree_, and monomials< C >::tab_.

{return iterator(this->tab_+degree_+1); }
monomials< C > & operator= ( const monomials< C > &  v)

Definition at line 174 of file univariate.hpp.

                                            {
    if (size_ != v.size_) {
      if (size_ !=0) delete [] tab_;
      tab_ = new C[v.size_];
      size_ = v.size_;
    }
    degree_=v.degree_;
    for(size_type i=0;i<size_;i++) tab_[i] = v[i];
    return *this;
  }
bool operator== ( const C &  c) const

Definition at line 186 of file univariate.hpp.

References mmx::univariate::degree().

                                          {
    if(c==0)
      return (this->degree()<0);
    else
      return (this->degree()==0 && tab_[0]== c);
  }
const C& operator[] ( size_type  i) const [inline]

Definition at line 100 of file univariate.hpp.

References monomials< C >::tab_.

{return tab_[i];}
C& operator[] ( size_type  i) [inline]

Definition at line 99 of file univariate.hpp.

References monomials< C >::tab_.

{return tab_[i];}
reverse_iterator rbegin ( ) [inline]

Definition at line 87 of file univariate.hpp.

References monomials< C >::degree_, and monomials< C >::tab_.

                                    {
      return reverse_iterator(this->tab_+degree_+1); 
    }
const_reverse_iterator rbegin ( ) const [inline]

Definition at line 90 of file univariate.hpp.

References monomials< C >::degree_, and monomials< C >::tab_.

                                          {
      return const_reverse_iterator(this->tab_+degree_+1); 
    }
reverse_iterator rend ( ) [inline]

Definition at line 84 of file univariate.hpp.

References monomials< C >::tab_.

{return reverse_iterator(tab_); }
const_reverse_iterator rend ( ) const [inline]

Definition at line 85 of file univariate.hpp.

References monomials< C >::tab_.

{return reverse_iterator(tab_); }
void resize ( const size_type n)

Definition at line 156 of file univariate.hpp.

References mmx::min().

                                        {
    if(size_!=i){
      if (size_ != 0) {
        C* tmp = tab_;
        tab_ = new C[i];
        for(size_type j=0;j<std::min(i,size_);j++) tab_[j]=tmp[j];
        for(size_type j=std::min(i,size_);j<i;j++) tab_[j]=value_type();
        size_=i;
        delete [] tmp;      
      } else {
        size_=i; tab_= new C[i];
        for(size_type j=0;j<size_;j++) tab_[j]=value_type();
      }
    }
    degree_=i-1;
  }
unsigned size ( void  ) const [inline]

Definition at line 94 of file univariate.hpp.

References monomials< C >::size_.

{ return size_;}

Member Data Documentation

Definition at line 65 of file univariate.hpp.

Referenced by monomials< C >::size().


The documentation for this struct was generated from the following file: