ibex::Expr Class Reference
[Expressions]

Arithmetical expression. More...

#include <IbexExpr.h>

Inheritance diagram for ibex::Expr:

ibex::Apply ibex::BinOpExpr ibex::Constant ibex::DomainOpExpr ibex::ExtendedSymbol ibex::PowerExpr ibex::UnaOpExpr ibex::Symbol ibex::SymbolWithIndex

List of all members.

Public Member Functions

 Expr (Env &env, int depth, int size, const Dim &dim)
virtual void acceptVisitor (Visitor &v) const =0
virtual ~Expr ()
virtual bool is_zero () const
bool scalar () const
const Equalityoperator= (const Expr &right) const
const Equalityoperator= (const INTERVAL &value) const
const Inequalityoperator<= (const Expr &right) const
const Inequalityoperator<= (const INTERVAL &value) const
const Inequalityoperator>= (const Expr &right) const
const Inequalityoperator>= (const INTERVAL &value) const
const Inequalityoperator< (const Expr &right) const
const Inequalityoperator< (const INTERVAL &value) const
const Inequalityoperator> (const Expr &right) const
const Inequalityoperator> (const INTERVAL &value) const

Public Attributes

const int id
const int depth
const int size
const Dim dim
Envenv

Friends

std::ostream & operator<< (std::ostream &, const Expr &)


Detailed Description

Arithmetical expression.

Representation of the abstract syntax tree of any arithmetical expression.

Author:
Gilles Chabert
Date:
March 2007
Example of arithmetical expression: sin(x+y)^2*3.14.

Constructor & Destructor Documentation

ibex::Expr::Expr ( Env env,
int  depth,
int  size,
const Dim dim 
)

Builds an expression of a given depth, size and dimension.

See also:
depth, size, dim.

virtual ibex::Expr::~Expr (  )  [inline, virtual]

Deletes this instance.


Member Function Documentation

virtual void ibex::Expr::acceptVisitor ( Visitor &  v  )  const [pure virtual]

virtual bool ibex::Expr::is_zero (  )  const [inline, virtual]

Return true if this expression is the constant 0.

Reimplemented in ibex::Constant.

bool ibex::Expr::scalar (  )  const [inline]

Return true if this is a scalar expression.

const Equality & ibex::Expr::operator= ( const Expr right  )  const

Create an equality constraint expr=expr.

Reimplemented in ibex::ExtendedSymbol, ibex::SymbolWithIndex, ibex::Symbol, ibex::UnaOpExpr, ibex::BinOpExpr, ibex::PowerExpr, and ibex::Apply.

const Equality & ibex::Expr::operator= ( const INTERVAL value  )  const

Create an equality constraint expr=value.

Reimplemented in ibex::ExtendedSymbol, ibex::SymbolWithIndex, ibex::Symbol, ibex::UnaOpExpr, ibex::BinOpExpr, ibex::PowerExpr, and ibex::Apply.

const Inequality & ibex::Expr::operator<= ( const Expr right  )  const

Create an inequality constraint expr<=expr.

const Inequality & ibex::Expr::operator<= ( const INTERVAL value  )  const

Create an inequality constraint expr<=value.

const Inequality & ibex::Expr::operator>= ( const Expr right  )  const

Create an inequality constraint expr>=expr.

const Inequality & ibex::Expr::operator>= ( const INTERVAL value  )  const

Create an inequality constraint expr>=value.

const Inequality & ibex::Expr::operator< ( const Expr right  )  const

Create an inequality constraint expr<value.

const Inequality & ibex::Expr::operator< ( const INTERVAL value  )  const

Create an inequality constraint expr<value.

const Inequality & ibex::Expr::operator> ( const Expr right  )  const

Create an inequality constraint expr>expr.

const Inequality & ibex::Expr::operator> ( const INTERVAL value  )  const

Create an inequality constraint expr>value.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Expr expr 
) [friend]

Streams out this expression.


Member Data Documentation

const int ibex::Expr::id

Unique number identifying this node.

const int ibex::Expr::depth

Depth (following topological order) of this node in the DAG.

const int ibex::Expr::size

Number of subnodes (including itself) in the DAG (not in the TREE: two subnodes referencing the same object count for 1).

Dimensions

The environment where this expresion is defined


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

Generated on Sun Jun 27 15:52:00 2010 for IBEX by  doxygen 1.5.5