realroot_doc 0.1.1
monomials< C > Struct Template Reference

#include <tensor_monomials.hpp>

Inheritance diagram for monomials< C >:
bernstein< C >

List of all members.

Public Types

Public Member Functions

Public Attributes

Static Public Attributes


Detailed Description

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

Definition at line 18 of file tensor_monomials.hpp.


Member Typedef Documentation

typedef C coeff_t

Definition at line 20 of file tensor_monomials.hpp.

typedef const C* const_iterator

Reimplemented in bernstein< C >.

Definition at line 25 of file tensor_monomials.hpp.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator

Definition at line 27 of file tensor_monomials.hpp.

typedef C* iterator

Reimplemented in bernstein< C >.

Definition at line 23 of file tensor_monomials.hpp.

typedef std::reverse_iterator<iterator> reverse_iterator

Definition at line 26 of file tensor_monomials.hpp.

typedef vector_type::size_type size_type

Reimplemented in bernstein< C >.

Definition at line 28 of file tensor_monomials.hpp.

Reimplemented in bernstein< C >.

Definition at line 29 of file tensor_monomials.hpp.

typedef std::vector<C> vector_type

Reimplemented in bernstein< C >.

Definition at line 21 of file tensor_monomials.hpp.


Constructor & Destructor Documentation

monomials ( ) [inline]

Definition at line 23 of file tensor_monomials_fcts.hpp.

                              {
    //   int szs = 1; new (this) monomials (1, &szs); data[0] = (C)0; 
    int *szs = new int, *vrs= new int;
    szs[0] = 1;
    vrs[0] = 0;
    env = eenv(1, szs, vrs);
    data = vector_type (env.sz(),(C)0);
    data[0] = (C)0; 
  }
monomials ( const C &  x) [inline]

Definition at line 74 of file tensor_monomials_fcts.hpp.

  { int szs = 1; new (this) monomials (1, &szs); data[0] = x; }
monomials ( const C &  c,
int  d,
unsigned  v 
) [inline]

Definition at line 56 of file tensor_monomials_fcts.hpp.

References assert.

  {
    assert(d>=0);
    int *szs = new int, *vrs= new int;
    szs[0] = d+1;
    vrs[0] = v;
    env = eenv(1, szs, vrs);
    data = vector_type (env.sz(),(C)0);
    data[env.sz()-1]= c;
  }
monomials ( int  v,
int  d 
) [inline]

Definition at line 45 of file tensor_monomials_fcts.hpp.

  {
    int *szs = new int, *vrs= new int;
    szs[0] = d+1;
    vrs[0] = v;
    env = eenv(1, szs, vrs);
    data = vector_type (env.sz(),(C)0);
    data[env.sz()-1]= 1;
  }
monomials ( const sparse::monomial_seq< X, O > &  imp)

Definition at line 381 of file tensor_monomials_fcts.hpp.

References mmx::tensor::mpolfill().

  {
    env= eenv(imp);
    data= vector_type(env.sz (), (C)0);
    //    const int *vr = this->vrs ();
    //    const int *st = this->str ();
    //    const int  nvr = this->nvr();
    //    C *data = this->begin ();
    mpolfill(this->begin(),imp,env);
  };
monomials ( const eenv e) [inline]

Definition at line 33 of file tensor_monomials_fcts.hpp.

  {
    env = e;
    data = vector_type (e.sz());
  };
monomials ( const eenv e,
const C &  c 
) [inline]

Definition at line 39 of file tensor_monomials_fcts.hpp.

  {
    env = e;
    data = vector_type (e.sz(),c);
  };
monomials ( int  nvr,
const int *  szs,
const int *  vrs = 0 
) [inline]

Definition at line 68 of file tensor_monomials_fcts.hpp.

  {
    env = eenv(nvr, szs, vrs);
    data = vector_type (env.sz(),(C)0);
  };

Member Function Documentation

const_iterator begin ( ) const [inline]

Definition at line 50 of file tensor_monomials.hpp.

References monomials< C >::data.

{ return &(data[0]); };
const_iterator end ( ) const [inline]

Definition at line 51 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::esz().

{ return &(data[esz()]); };
C* end ( ) [inline]

Definition at line 48 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::esz().

Referenced by mmx::tensor::cfdump(), mmx::tensor::clear(), and mmx::tensor::eval().

{ return &(data[0])+esz(); };
const C entry ( std::vector< int >  deg) [inline]

Definition at line 480 of file tensor_monomials_fcts.hpp.

    {
        int * vvrs = vrs();
        int * sstr = str();
        int * sszs = szs() ;

        int i,pos=0;
        for (i = 0; i < nvr() ; ++i)
        {
            std::cout<<"entry:" <<deg[i] << std::endl;
            if (deg[i] >= sszs[ vvrs[i] ] || deg[i]<0 ) return C(0); 
            pos += deg[i]*sstr[ vvrs[i] ];
        }
        return data[pos];
    }
bool hasvar ( int &  lv,
int  gv 
) const
int nbvar ( ) const [inline]

Definition at line 73 of file tensor_monomials.hpp.

References monomials< C >::env, and eenv::nvr().

Referenced by mmx::tensor::degree().

{ return env.nvr(); };
bool operator== ( const C &  c) const [inline]

Reimplemented in bernstein< C >.

Definition at line 85 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::esz().

                                        { 
      return esz() == 1 && data[0] == c; }
bool operator== ( const monomials< C > &  mpl) const

Definition at line 105 of file tensor_monomials_fcts.hpp.

References eenv::equal(), and eenv::oaddress().

  {
    if (!eenv::equal (env, mpl.env))
      return false;
    unsigned *oadd = new unsigned[esz ()];
    eenv::oaddress (env, oadd, mpl.env, 0, 0);
    for (int i = 0; i < esz (); i++)
      if (data[i] != mpl[oadd[i]])
        {
          delete[]oadd;
          return false;
        };
    delete[]oadd;
    return true;
  };
const C& operator[] ( int  i) const [inline]

Reimplemented in bernstein< C >.

Definition at line 82 of file tensor_monomials.hpp.

References monomials< C >::data.

{ return data[i]; };
C& operator[] ( int  i) [inline]

Reimplemented in bernstein< C >.

Definition at line 83 of file tensor_monomials.hpp.

References monomials< C >::data.

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

Definition at line 54 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::esz().

                   {
      return reverse_iterator(&(data[0])+esz()); 
    }
const_reverse_iterator rbegin ( ) const [inline]

Definition at line 58 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::esz().

                   {
      return const_reverse_iterator(&(data[0])+esz()); 
    }
reverse_iterator rend ( ) [inline]

Definition at line 62 of file tensor_monomials.hpp.

References monomials< C >::data.

                   {
      return reverse_iterator(&(data[0])); 
    }
const_reverse_iterator rend ( ) const [inline]

Definition at line 66 of file tensor_monomials.hpp.

References monomials< C >::data.

                   {
      return const_reverse_iterator(&(data[0])); 
    }
void resize ( int  l) [inline]

Definition at line 46 of file tensor_monomials.hpp.

{};
const int* str ( ) const [inline]

Definition at line 80 of file tensor_monomials.hpp.

References monomials< C >::env, and eenv::str().

{ return env.str(); };
void swap ( monomials< C > &  a) [inline]

Definition at line 88 of file tensor_monomials.hpp.

References monomials< C >::data, and monomials< C >::env.

Referenced by mmx::tensor::clear(), mmx::tensor::extend(), mmx::tensor::mul(), and mmx::tensor::realloc().

{ std::swap(env,a.env); data.swap(a.data); };    
const int* szs ( ) const [inline]

Definition at line 78 of file tensor_monomials.hpp.

References monomials< C >::env, and eenv::szs().

{ return env.szs(); };
const int* vrs ( ) const [inline]

Definition at line 79 of file tensor_monomials.hpp.

References monomials< C >::env, and eenv::vrs().

{ return env.vrs(); };

Member Data Documentation

binomials<C> binoms [static]

Definition at line 30 of file tensor_monomials.hpp.


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