Modelib: Modelib::Expr class Reference

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)
Expr & | operator= (const Expr &_expr)
Expr & | operator+= (const Expr &)
Expr & | operator-= (const Expr &)
Expr & | operator *= (const Num &)
Expr & | ASS (const Num &num, const NumVar &numVar)
Expr & | ASS (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
Expr & | operator+= (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< ExprNode > | nodeList
## 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.

- Elle est constitué d'une liste de classe "ExprNode".
- L'operateur operator+=(const ExprNode & _node) permet la construction iterative de ces expressions.
- Une expressions peut être construite à partir de Num et de NumVar et peut être définir par l'ajout d'une expressions à elle avec différents opérateurs
- Elle est déclaré friend avec la classe Model car elle n'a volontairement pas de geters, de seters ou d'iterateurs sur la liste d'ExprNode qui est privée. La classe Model est ainsi la seule qui peut modifié sa strcuture interne. Pour les même raisons l'opérateur de flux << à besoin d'être déclarer friend.
- Les expressions étant simplifiées a chaque fois, il serait peut-être bon de rajouter une fonction qui permet de construire une fonction sans la simplifier

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 :

- /Expr.h
- /Expr.cpp