Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Membres des namespaces | Composants | Déclarations

Référence de la classe Modelib::Expr

Classe representant les expressions linéaires. Plus de détails...

#include <Expr.h>

Liste de tous les membres

Membres publics

 Expr ()
 Expr (const NumVar &numVar)
 Expr (float)
 Expr (double)
 Expr (int)
 Expr (unsigned)
 Expr (const Num &num)
 Expr (const Num &num, const NumVar &numVar)
 Expr (const Num &num, const NumVar &numVar, const LagrangianParam &mult)
 Expr (const Expr &_expr)
Exproperator= (const Expr &_expr)
Exproperator+= (const Expr &)
Exproperator-= (const Expr &)
Exproperator *= (const Num &)
ExprASS (const Num &num, const NumVar &numVar)
ExprASS (const Num &num, const NumVar &numVar, const LagrangianParam &mult)
unsigned Size ()
bool IsNum ()
bool IsVar ()
float GetConstant (bool avecLagrangianParam=true) const
float Evalue (bool avecLagrangianParam=true) const
 ~Expr ()

Membres protégés

Exproperator+= (const ExprNode &_node)
void Simplify (bool AvecLagrangianParam=false, bool SansConstantes=false)

Attributs Protégés

bool isSimplified
bool isParametric
bool sansConstantes

Attributs Privés

std::list< ExprNodenodeList

Amis (friends)

class Model
std::ostream & operator<< (std::ostream &flux, const Expr &expr)
std::ostream & operator<< (std::ostream &o, const Model &m)


Description détaillée

Classe representant les expressions linéaires.

Elle va etre utilisée pour décire la fonction objectif, les containtes et les bornes.

Définition à la ligne 62 du fichier Expr.h.


Documentation des contructeurs et destructeurs

Modelib::Expr::Expr  )  [inline]
 

Définition à la ligne 85 du fichier Expr.h.

Modelib::Expr::Expr const NumVar numVar  ) 
 

Constructeurs à partir d'une seule variable

Paramètres:
numVar La variable qui constituera l'expression

Définition à la ligne 67 du fichier Expr.cpp.

Références Modelib::NumVar::GetType(), et nodeList.

Voici le graphique d'appel pour cette fonction:

Modelib::Expr::Expr float  f  ) 
 

Constructeurs à partir d'une constante réelle

Paramètres:
f La constante réelle qui constituera l'expression

Définition à la ligne 77 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr double  f  ) 
 

Constructeurs à partir d'une constante réelle

Paramètres:
double La constante réelle qui constituera l'expression

Définition à la ligne 87 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr int  i  ) 
 

Constructeurs à partir d'une constante entière

Paramètres:
i La constante entière qui constituera l'expression

Définition à la ligne 97 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr unsigned  i  ) 
 

Constructeurs à partir d'une constante entière non signée

Paramètres:
i La constante entière qui constituera l'expression

Définition à la ligne 107 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr const Num num  ) 
 

Constructeurs à partir d'une constante

Paramètres:
num La constante qui constituera l'expression

Définition à la ligne 117 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr const Num num,
const NumVar numVar
 

Constructeurs à partir d'une constante et d'une variable
Le produit constante qui constituera l'expression

Paramètres:
num La constante
numVar La variable

Définition à la ligne 129 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr const Num num,
const NumVar numVar,
const LagrangianParam mult
 

Constructeurs à partir d'une constante et de deux variable
Le produit constante qui constituera l'expression

Paramètres:
num La constante
numVar La variable
numVar La variable optionnelle

Définition à la ligne 142 du fichier Expr.cpp.

Références nodeList.

Modelib::Expr::Expr const Expr _expr  )  [inline]
 

Constructeur de copie

Définition à la ligne 95 du fichier Expr.h.

Modelib::Expr::~Expr  )  [inline]
 

Définition à la ligne 130 du fichier Expr.h.


Documentation des méthodes

Expr & Modelib::Expr::ASS const Num num,
const NumVar numVar,
const LagrangianParam mult
 

ASS: ajout sans simplification

Paramètres:
num 
numVar 
Renvoie:
L'Expr {expr=expr+num*numVar} non simplifiée

Définition à la ligne 168 du fichier Expr.cpp.

Références isParametric, isSimplified, et nodeList.

Expr & Modelib::Expr::ASS const Num num,
const NumVar numVar
 

ASS: ajout sans simplification

Paramètres:
num 
numVar 
Renvoie:
L'Expr {expr=expr+num*numVar} non simplifiée

Définition à la ligne 156 du fichier Expr.cpp.

Références isSimplified, et nodeList.

Référencé par Modelib::Model::GetRelaxedConstraintExpr(), et Modelib::FichierProbleme::operator>>().

float Modelib::Expr::Evalue bool  avecLagrangianParam = true  )  const
 

Permet de récuperer la valeur de l'expression

Paramètres:
avecLagrangianParam permet de tenir compte de la présence du multiplicateur de Lagrange
Renvoie:
la valeur de l'expression

Définition à la ligne 372 du fichier Expr.cpp.

Références nodeList.

float Modelib::Expr::GetConstant bool  avecLagrangianParam = true  )  const
 

Permet de récuperer la partie constante de l'expression

Paramètres:
avecLagrangianParam permet de tenir compte de la présence du multiplicateur de Lagrange
Renvoie:
la constante de l'expression

Définition à la ligne 348 du fichier Expr.cpp.

Références isSimplified, et nodeList.

Référencé par Modelib::Constraint::GetExpr(), Modelib::Constraint::GetRelaxedExpr(), Modelib::Model::Solve(), et Modelib::Model::SurchargeFluxRelaxed().

bool Modelib::Expr::IsNum  ) 
 

Permet de tester si l'expression est constituée seulement d'une constante Fonction utilisé dans pour dans Constrain::CheckIfIsBound()

Renvoie:
vrai si l'expression se reduit à une constante

Définition à la ligne 325 du fichier Expr.cpp.

Références nodeList, et Size().

Voici le graphique d'appel pour cette fonction:

bool Modelib::Expr::IsVar  ) 
 

Permet de tester si l'expression est constituée seulement d'une variable Fonction utilisé dans pour dans Constrain::CheckIfIsBound()

Renvoie:
vrai si l'expression se reduit à une variable

Définition à la ligne 337 du fichier Expr.cpp.

Références nodeList, et Size().

Voici le graphique d'appel pour cette fonction:

Expr & Modelib::Expr::operator *= const Num a  ) 
 

Multiplie une expression par une constante

Paramètres:
a 
Renvoie:
L'Expr {expr=a*this} non simplifiée

Définition à la ligne 226 du fichier Expr.cpp.

Références Modelib::Num::GetValue(), isSimplified, et nodeList.

Voici le graphique d'appel pour cette fonction:

Expr & Modelib::Expr::operator+= const Expr _expr  ) 
 

Additionne une expression avec l'expression this

Paramètres:
_expr 
Renvoie:
L'Expr {expr=expr+_expr} non simplifiée

Définition à la ligne 183 du fichier Expr.cpp.

Références isSimplified, et nodeList.

Expr& Modelib::Expr::operator+= const ExprNode _node  )  [inline, protected]
 

Opérateur d'ajout de node

Paramètres:
_node un noeud de l'expression du type ExprNode
Renvoie:
une reférence pour pouvoir enchainer les opéraeurs +=

Définition à la ligne 70 du fichier Expr.h.

Références isSimplified, et nodeList.

Expr & Modelib::Expr::operator-= const Expr _expr  ) 
 

Soustrait une expression avec l'expression this

Paramètres:
_expr 
Renvoie:
L'Expr {expr=expr-_expr} non isSimplified

Définition à la ligne 203 du fichier Expr.cpp.

Références isSimplified, et nodeList.

Expr& Modelib::Expr::operator= const Expr _expr  )  [inline]
 

Opérateur de recopie

Définition à la ligne 98 du fichier Expr.h.

Références isParametric, isSimplified, nodeList, et sansConstantes.

void Modelib::Expr::Simplify bool  avecLagrangianParam = false,
bool  sansConstante = false
[protected]
 

Fonction Simplify met l'expr sous la forme a1*x1+...+an*xn tel que les xi n'apparaissent qu'une fois si ai est non nul.

Paramètres:
avecLagrangianParam permet de tenir compte des multiplicateurs de Lagrange
sansConstante permet de ne pas tenir compte des constantes

Définition à la ligne 248 du fichier Expr.cpp.

Références Modelib::NumVar::GetModel(), Modelib::LagrangianParam::GetModel(), Modelib::NumVar::GetType(), Modelib::LagrangianParam::GetValue(), isSimplified, et nodeList.

Référencé par Modelib::Model::Add(), Modelib::Model::Maximize(), Modelib::Model::Minimize(), Modelib::operator<<(), et Modelib::Model::UnrelaxModel().

Voici le graphique d'appel pour cette fonction:

unsigned Modelib::Expr::Size  )  [inline]
 

Permet de connaitre la taille d'une expression

Renvoie:
Le nombre de bloc élementaire composant l'expression

Définition à la ligne 121 du fichier Expr.h.

Références nodeList.

Référencé par Modelib::Model::GetRelaxedConstraintExpr(), IsNum(), IsVar(), et Modelib::Model::OutDimensions().


Documentation des fonctions amies et associées

friend class Model [friend]
 

Définition à la ligne 83 du fichier Expr.h.

std::ostream& operator<< std::ostream &  o,
const Model m
[friend]
 

Surcharge de l'operateur de flux

Paramètres:
flux le flux à surcharger
m le modele à afficher
Renvoie:
Le flux surchargé

Définition à la ligne 1046 du fichier Model.cpp.

std::ostream& operator<< std::ostream &  flux,
const Expr expr
[friend]
 

Operateur de surcharge de flux << On simplifie la fonction avant affichage

Paramètres:
flux Flux à surcharger
expr L'Expr à afficher
Renvoie:
le flux surchargé


Documentation des données imbriquées

bool Modelib::Expr::isParametric [protected]
 

Définition à la ligne 80 du fichier Expr.h.

Référencé par ASS(), Modelib::Model::GetRelaxedConstraintExpr(), Modelib::operator<<(), operator=(), Modelib::Model::RelaxConstraint(), et Modelib::Model::UnrelaxModel().

bool Modelib::Expr::isSimplified [protected]
 

Définition à la ligne 79 du fichier Expr.h.

Référencé par ASS(), GetConstant(), operator *=(), operator+=(), operator-=(), Modelib::operator<<(), operator=(), et Simplify().

std::list<ExprNode> Modelib::Expr::nodeList [private]
 

Définition à la ligne 64 du fichier Expr.h.

Référencé par Modelib::Model::Add(), Modelib::Model::AddExpr(), Modelib::Model::AddToConstraint(), ASS(), Evalue(), Expr(), GetConstant(), Modelib::Model::GetDual(), IsNum(), IsVar(), operator *=(), operator+=(), operator-=(), Modelib::operator<<(), operator=(), Simplify(), Size(), et Modelib::Model::SurchargeMPSFlux().

bool Modelib::Expr::sansConstantes [protected]
 

Définition à la ligne 81 du fichier Expr.h.

Référencé par Modelib::operator<<(), operator=(), Modelib::Model::RelaxConstraint(), et Modelib::Model::UnrelaxModel().


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Sun Oct 2 18:53:02 2005 pour Modelib par doxygen 1.3.6