SyFi  0.3
SyFi::Simplex Class Reference

#include <Polygon.h>

Inheritance diagram for SyFi::Simplex:
SyFi::Polygon SyFi::Polygon

List of all members.

Public Member Functions

 Simplex (GiNaC::lst vertices, const std::string &subscript="")
 Simplex (const Simplex &simplex)
virtual ~Simplex ()
virtual unsigned int no_space_dim () const
virtual GiNaC::ex repr (Repr_format format=SUBS_PERFORMED) const
virtual const std::string str () const
virtual GiNaC::ex integrate (GiNaC::ex f, Repr_format format=SUBS_PERFORMED)
Simplex sub_simplex (unsigned int i)
virtual Simplexcopy () const
def __init__
def repr
def integrate
def sub_simplex
def copy

Static Public Attributes

tuple thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

Static Private Attributes

 __repr__ = _swig_repr
 __swig_destroy__ = _SyFi.delete_Simplex

Detailed Description

Proxy of C++ SyFi::Simplex class

Definition at line 241 of file Polygon.h.


Constructor & Destructor Documentation

SyFi::Simplex::Simplex ( GiNaC::lst  vertices,
const std::string &  subscript = "" 
)

Referenced by copy(), and sub_simplex().

SyFi::Simplex::Simplex ( const Simplex simplex)

Definition at line 1271 of file Polygon.cpp.

                                              :
        Polygon(simplex)
        {
        }
virtual SyFi::Simplex::~Simplex ( ) [inline, virtual]

Definition at line 246 of file Polygon.h.

{}
def SyFi::Simplex::__init__ (   self,
  args 
)
__init__(SyFi::Simplex self, GiNaC::lst vertices, std::string const & subscript="") -> Simplex
__init__(SyFi::Simplex self, GiNaC::lst vertices) -> Simplex
__init__(SyFi::Simplex self, Simplex simplex) -> Simplex

Definition at line 1938 of file SyFi.py.

01938 
01939     def __init__(self, *args): 
01940         """
01941         __init__(SyFi::Simplex self, GiNaC::lst vertices, std::string const & subscript="") -> Simplex
01942         __init__(SyFi::Simplex self, GiNaC::lst vertices) -> Simplex
01943         __init__(SyFi::Simplex self, Simplex simplex) -> Simplex
01944         """
        _SyFi.Simplex_swiginit(self,_SyFi.new_Simplex(*args))

Member Function Documentation

Simplex * SyFi::Simplex::copy ( ) const [virtual]

Implements SyFi::Polygon.

Definition at line 1385 of file Polygon.cpp.

References Simplex().

Referenced by copy().

        {
                return new Simplex(*this);
        }
def SyFi::Simplex::copy (   self)
copy(Simplex self) -> Simplex

Reimplemented from SyFi::Polygon.

Definition at line 1964 of file SyFi.py.

References copy(), and SyFi.new_instancemethod.

01964 
01965     def copy(self):
01966         """copy(Simplex self) -> Simplex"""
01967         return _SyFi.Simplex_copy(self)
01968 
01969 Simplex.repr = new_instancemethod(_SyFi.Simplex_repr,None,Simplex)
01970 Simplex.integrate = new_instancemethod(_SyFi.Simplex_integrate,None,Simplex)
01971 Simplex.sub_simplex = new_instancemethod(_SyFi.Simplex_sub_simplex,None,Simplex)
Simplex.copy = new_instancemethod(_SyFi.Simplex_copy,None,Simplex)
virtual GiNaC::ex SyFi::Simplex::integrate ( GiNaC::ex  f,
Repr_format  format = SUBS_PERFORMED 
) [virtual]

Implements SyFi::Polygon.

Referenced by integrate(), and main().

def SyFi::Simplex::integrate (   self,
  args 
)
integrate(Simplex self, GiNaC::ex f, SyFi::Repr_format format=SUBS_PERFORMED) -> GiNaC::ex
integrate(Simplex self, GiNaC::ex f) -> GiNaC::ex

Reimplemented from SyFi::Polygon.

Definition at line 1953 of file SyFi.py.

References integrate().

01953 
01954     def integrate(self, *args):
01955         """
01956         integrate(Simplex self, GiNaC::ex f, SyFi::Repr_format format=SUBS_PERFORMED) -> GiNaC::ex
01957         integrate(Simplex self, GiNaC::ex f) -> GiNaC::ex
01958         """
01959         return _SyFi.Simplex_integrate(self, *args)

unsigned int SyFi::Simplex::no_space_dim ( ) const [virtual]

Implements SyFi::Polygon.

Definition at line 1276 of file Polygon.cpp.

        {
                return p[0].nops()-1;
        }
ex SyFi::Simplex::repr ( Repr_format  format = SUBS_PERFORMED) const [virtual]

Implements SyFi::Polygon.

Definition at line 1281 of file Polygon.cpp.

References SyFi::get_symbolic_vector(), cleanlogs::lines, SyFi::Polygon::no_vertices(), SyFi::nsd, SyFi::Polygon::vertex(), and SyFi::x.

Referenced by _wrap_Simplex_repr__SWIG_1(), main(), and repr().

        {
                unsigned int nsd = vertex(0).nops();
                unsigned int no_lines = no_vertices()-1;

                ex r = get_symbolic_vector(nsd, "r");
                ex x = get_symbolic_vector(nsd, "x");
                ex ri;
                lst lines;
                for (unsigned int i=0; i< no_vertices()-1; i++)
                {
                        ri = r.op(i);
                        lst line_i_repr;
                        for (unsigned int d=0; d< nsd; d++)
                        {
                                line_i_repr.append(x.op(d) == (vertex(i+1).op(d) - vertex(0).op(d))*ri + vertex(0).op(d));
                        }
                        line_i_repr.append(lst(ri, 0, 1));

                        lines.append(line_i_repr);
                }

                lst ret;
                for (unsigned int i=0; i < nsd; i++)
                {
                        ri = r.op(i);
                        GiNaC::ex xi_expr;
                        GiNaC::ex rhs  = lines.op(0).op(i).rhs().coeff(ri,0);
                        for (unsigned int l=0; l < no_lines; l++)
                        {
                                //        xi_expr2 == xi_expr.lhs() == xi_expr.rhs()  + lines.op(l).op(i).rhs().coeff(ri,1)*ri;
                                rhs += lines.op(l).op(i).rhs().coeff(ri,1)*ri;

                        }
                        xi_expr = x.op(i) == rhs;
                        ret.append(xi_expr);
                }

                GiNaC::ex limit=1;
                for (unsigned int i=0; i< no_lines; i++)
                {
                        ri = r.op(i);
                        ret.append(lst(ri, 0, limit));
                        limit -= ri;
                }

                return ret;
        }
def SyFi::Simplex::repr (   self,
  args 
)
repr(Simplex self, SyFi::Repr_format format=SUBS_PERFORMED) -> GiNaC::ex
repr(Simplex self) -> GiNaC::ex

Reimplemented from SyFi::Polygon.

Definition at line 1946 of file SyFi.py.

References repr().

01946 
01947     def repr(self, *args):
01948         """
01949         repr(Simplex self, SyFi::Repr_format format=SUBS_PERFORMED) -> GiNaC::ex
01950         repr(Simplex self) -> GiNaC::ex
01951         """
01952         return _SyFi.Simplex_repr(self, *args)

const string SyFi::Simplex::str ( ) const [virtual]

Implements SyFi::Polygon.

Definition at line 1330 of file Polygon.cpp.

Referenced by main().

        {
                std::ostringstream s;
                /*
                s <<"Simplex(";
                for (int i=0; i<p.size()-1; i++) {
                  s << p[i]<<",";
                }
                s << p[p.size()-1]<<")";
                */
                s <<"Simplex";
                return s.str();
        }
Simplex SyFi::Simplex::sub_simplex ( unsigned int  i)

Definition at line 1368 of file Polygon.cpp.

References SyFi::istr(), Simplex(), SyFi::Polygon::subscript, and test_syfi::debug::v.

Referenced by main(), and sub_simplex().

        {
                if ( i < 0 || i >= p.size())
                {
                        throw std::out_of_range("Can only create subsimplices between 0 and the number of vertices-1.");
                }
                lst v;
                for (unsigned int k=0; k< p.size(); k++)
                {
                        if ( k != i)
                        {
                                v.append(p[k]);
                        }
                }
                return Simplex(v, istr(subscript, i));
        }
def SyFi::Simplex::sub_simplex (   self,
  args 
)
sub_simplex(Simplex self, unsigned int i) -> Simplex

Definition at line 1960 of file SyFi.py.

References sub_simplex().

01960 
01961     def sub_simplex(self, *args):
01962         """sub_simplex(Simplex self, unsigned int i) -> Simplex"""
01963         return _SyFi.Simplex_sub_simplex(self, *args)


Member Data Documentation

SyFi::Simplex::__repr__ = _swig_repr [static, private]

Reimplemented from SyFi::Polygon.

Definition at line 1937 of file SyFi.py.

SyFi::Simplex::__swig_destroy__ = _SyFi.delete_Simplex [static, private]

Reimplemented from SyFi::Polygon.

Definition at line 1945 of file SyFi.py.

tuple SyFi::Simplex::thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') [static]

Reimplemented from SyFi::Polygon.

Definition at line 1936 of file SyFi.py.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines