Class xlifepp::PolynomialsBasisT#

template<typename K = real_t>
class PolynomialsBasisT : public std::list<std::vector<PolynomialT<real_t>>>#

Inheritence diagram for xlifepp::PolynomialsBasisT:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="std::list< std::vector< PolynomialT< real_t > > >" tooltip="std::list< std::vector< PolynomialT< real_t > > >"] "3" [label="std::list< T >" tooltip="std::list< T >"] "1" [label="xlifepp::PolynomialsBasisT< K >" tooltip="xlifepp::PolynomialsBasisT< K >" fillcolor="#BFBFBF"] "2" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::PolynomialsBasisT:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="std::list< std::vector< PolynomialT< real_t > > >" tooltip="std::list< std::vector< PolynomialT< real_t > > >"] "3" [label="std::list< T >" tooltip="std::list< T >"] "1" [label="xlifepp::PolynomialsBasisT< K >" tooltip="xlifepp::PolynomialsBasisT< K >" fillcolor="#BFBFBF"] "2" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

deals with a set of vectors of Polynomials

Public Functions

PolynomialsBasisT(const PolynomialBasisT<K>&, const PolynomialBasisT<K>&, const PolynomialBasisT<K>&, const string_t &na = "")#

construct P1xP2xP3

PolynomialsBasisT(const PolynomialBasisT<K>&, const PolynomialBasisT<K>&, const string_t &na = "")#

construct P1xP2

PolynomialsBasisT(const PolynomialBasisT<K>&, dimen_t, const string_t &na = "")#

construct PxPxP

inline PolynomialsBasisT(dimen_t d = 0, dimen_t v = 0, const string_t &na = "")#

basic constructor

PolynomialsBasisT(PolynomialSpace, dimen_t, dimen_t)#

construct special spaces

void add(const PolynomialsBasisT&)#

add basis to current basis

inline void add(const PolynomialT<K> &p1)#

add 1d vector of Polynomials to current basis

inline void add(const PolynomialT<K> &p1, const PolynomialT<K> &p2)#

add 2d vector of Polynomials to current basis

inline void add(const PolynomialT<K> &p1, const PolynomialT<K> &p2, const PolynomialT<K> &p3)#

add 3d vector of Polynomials to current basis

inline void add(const std::vector<PolynomialT<K>> &ps)#

add vector of Polynomials to current basis

void buildDk(dimen_t)#

construct Dk = P(k-1)^n + PH_k-1*x

void buildDQ2k(dimen_t)#

construct 2D: DQ2k= Pk^n + span( curl x^(k+1)y, curl y^(k+1)x ) 3D: DQ2k= Pk^n + span( curl (yz(wy-wz), xz(wz-wx), xy(wx-wy)) )

void buildDQ3k(dimen_t)#

construct DQ3k = Qk-1,k,k x Qk,k-1,k x Qk,k,k-1

void buildDQk(dimen_t)#

construct DQk = Qk,k-1,k-1 x Qk-1,k,k-1 x Qk-1,k-1,k

void buildRk(dimen_t)#

construct Rk = P(k-1)^n + Sk

void buildSHk(dimen_t)#

construct SHk = PHk such that x.p=0

void buildTree()#

construct tree representation of polynomials

inline void clean()#

remove monomials with coefficients < epsilon defined in Polynomials

inline void clean(real_t asZero)#

remove monomials with coefficients < asZero

inline dimen_t degree() const#

maximal degree

inline std::vector<std::vector<K>> eval(const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3) using monomials representation

inline std::vector<std::vector<K>> &eval(std::vector<std::vector<K>> &res, const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3) using monomials representation

inline std::vector<std::vector<K>> evalTree(const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3) using tree representation

inline std::vector<std::vector<K>> &evalTree(std::vector<std::vector<K>> &res, const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3) using tree epresentation

inline std::vector<std::vector<K>> operator()(const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3)

inline std::vector<std::vector<K>> &operator()(std::vector<std::vector<K>> &res, const K &x1, const K &x2 = K(1), const K &x3 = K(1)) const#

evaluate at x=(x1,x2,x3)

inline PolynomialBasisT<K> operator[](number_t i) const#

< return all the i-th components as a PolynomialBasis (i starts from 0)

inline void push_back(const std::vector<PolynomialT<K>> &ps)#

add vector Polynomial to current basis

inline void swapVar(dimen_t v1, dimen_t v2, dimen_t v3)#

swap variables x1->xv1, x2->xv2, x3->xv3

Public Members

dimen_t dimVar#

dimension of Polynomials (number of variables)

dimen_t dimVec#

dimension of vectors of Polynomials

string_t name#

basis name