12#ifndef ARCANE_EXPR_BINARYEXPRESSIONIMPL_H
13#define ARCANE_EXPR_BINARYEXPRESSIONIMPL_H
17#include "arcane/expr/ExpressionImpl.h"
18#include "arcane/expr/Expression.h"
19#include "arcane/expr/ExpressionResult.h"
20#include "arcane/expr/BadOperandException.h"
64 eOperationType operation);
71 String operationName()
const {
return operationName(m_operation); }
72 static String operationName(eOperationType type);
77 eOperationType m_operation;
110 if (a->type() !=
b->type())
113 Integer size =
res->size();
114 if (size != a->size() || size !=
b->size())
118 res->allocate(a->type());
136#define DEFAULT_BINARY_OP(classname,expression) \
138class classname : public DefaultBinaryOperator<T> \
141 virtual void evaluate(ExpressionResult* res, \
144 { DefaultBinaryOperator<T>::evaluate(res,a,b); } \
145 virtual void evaluate(ArrayView<T> res, \
149 Integer size=res.size(); \
150 for (Integer i=0 ; i<size ; ++i) \
183 if (a->type() !=
b->type())
186 Integer size =
res->size();
187 if (size != a->size() || size !=
b->size())
191 res->allocate(ArrayVariant::TBool);
209#define BOOL_BINARY_OP(classname,expression) \
211class classname : public BoolBinaryOperator<T> \
214 virtual void evaluate(ExpressionResult* res, \
217 { BoolBinaryOperator<T>::evaluate(res,a,b); }\
218 virtual void evaluate(ArrayView<bool> res, \
222 Integer size=res.size(); \
223 for (Integer i=0 ; i<size ; ++i) \
Type de base polymorphe pour les tableaux (dimension 1).
Exception sur les opérandes des opérations des expressions.
Implementation d'une expression binaire.
virtual Integer vectorSize() const
Nombre d'éléments du vecteur.
Operateur binaire generique pour les expressions.
Classe de base de l'implémentation d'une expression.
Type de base polymorphe d'une expression.
Interface pour les différentes implémentations d'une expression.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.