14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/utils/Array.h"
17#include "arcane/utils/Iostream.h"
19#include "arcane/expr/Expression.h"
20#include "arcane/expr/ExpressionImpl.h"
21#include "arcane/expr/ExpressionResult.h"
22#include "arcane/expr/BinaryExpressionImpl.h"
23#include "arcane/expr/UnaryExpressionImpl.h"
24#include "arcane/expr/LitteralExpressionImpl.h"
25#include "arcane/expr/WhereExpressionImpl.h"
46 m_expression->addRef();
54 m_expression->addRef();
59: m_expression(expr.m_expression)
62 m_expression->addRef();
72 m_expression->removeRef();
80 m_expression->removeRef();
86 m_expression->assign(expr.m_expression);
92 m_expression->assign(expr.m_expression, indices);
99 m_expression->assign(expr.m_expression);
105 m_expression->apply(result);
111 m_expression->dumpIf(test_expr.m_expression, exprs);
117 UniqueArray<Expression> exprs;
118 m_expression->dumpIf(test_expr.m_expression, exprs);
133 return new UnaryExpressionImpl(m_expression,
134 UnaryExpressionImpl::UnarySubstract);
140 return new UnaryExpressionImpl(m_expression,
141 UnaryExpressionImpl::Inverse);
150 return new UnaryExpressionImpl(m_expression,
151 UnaryExpressionImpl::Acos);
157 return new UnaryExpressionImpl(m_expression,
158 UnaryExpressionImpl::Asin);
164 return new UnaryExpressionImpl(m_expression,
165 UnaryExpressionImpl::Atan);
171 return new UnaryExpressionImpl(m_expression,
172 UnaryExpressionImpl::Ceil);
178 return new UnaryExpressionImpl(m_expression,
179 UnaryExpressionImpl::Cos);
185 return new UnaryExpressionImpl(m_expression,
186 UnaryExpressionImpl::Cosh);
192 return new UnaryExpressionImpl(m_expression,
193 UnaryExpressionImpl::Exp);
199 return new UnaryExpressionImpl(m_expression,
200 UnaryExpressionImpl::Fabs);
206 return new UnaryExpressionImpl(m_expression,
207 UnaryExpressionImpl::Floor);
213 return new UnaryExpressionImpl(m_expression,
214 UnaryExpressionImpl::Log);
220 return new UnaryExpressionImpl(m_expression,
221 UnaryExpressionImpl::Log10);
227 return new UnaryExpressionImpl(m_expression,
228 UnaryExpressionImpl::Sin);
234 return new UnaryExpressionImpl(m_expression,
235 UnaryExpressionImpl::Sinh);
241 return new UnaryExpressionImpl(m_expression,
242 UnaryExpressionImpl::Sqrt);
248 return new UnaryExpressionImpl(m_expression,
249 UnaryExpressionImpl::Tan);
255 return new UnaryExpressionImpl(m_expression,
256 UnaryExpressionImpl::Tanh);
265 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
266 BinaryExpressionImpl::Add);
272 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
273 BinaryExpressionImpl::Substract);
279 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
280 BinaryExpressionImpl::Multiply);
286 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
287 BinaryExpressionImpl::Divide);
293 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
294 BinaryExpressionImpl::Equal);
300 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
301 BinaryExpressionImpl::LessThan);
307 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
308 BinaryExpressionImpl::GreaterThan);
314 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
315 BinaryExpressionImpl::LessOrEqualThan);
321 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
322 BinaryExpressionImpl::GreaterOrEqualThan);
327 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
328 BinaryExpressionImpl::And);
333 return new BinaryExpressionImpl(m_expression, ex1.m_expression,
334 BinaryExpressionImpl::Or);
343 return new BinaryExpressionImpl(m_expression,
345 BinaryExpressionImpl::Minimum);
351 return new BinaryExpressionImpl(m_expression,
353 BinaryExpressionImpl::Maximum);
359 return new BinaryExpressionImpl(m_expression,
361 BinaryExpressionImpl::Pow);
370 return new WhereExpressionImpl(m_expression,
381 return new LitteralExpressionImpl(v);
390 m_expression->setTrace(v);
393unsigned long Expression::
396 return m_expression->vectorSize();
Base class for 1D data vectors.
Polymorphic base type of an expression.
Reference to an expression.
Expression()
Default constructor.
Interface for the different implementations of an expression.
Implementation of a literal expression containing a scalar.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
double Real
Type representing a real number.