Sundance::RemoveUnaryMinusFromSum Class Reference

Simplify sums involving unary minuses

\[ x + (-y) \rightarrow x-y. \]

\[ (-x) + (-y) \rightarrow -(x+y). \]

\[ (-x) + y \rightarrow y-x. \]

. More...

Inheritance diagram for Sundance::RemoveUnaryMinusFromSum:

Sundance::SumTransformation Sundance::SymbolicTransformation Sundance::ObjectWithClassVerbosity< SymbolicTransformation > Playa::ObjectWithVerbosity

List of all members.

Public Member Functions

 RemoveUnaryMinusFromSum ()
virtual ~RemoveUnaryMinusFromSum ()
virtual bool doTransform (const RCP< ScalarExpr > &left, const RCP< ScalarExpr > &right, int sign, RCP< ScalarExpr > &rtn) const
 Test whether the transform is applicable in this case, and if it is, apply it.


Detailed Description

Simplify sums involving unary minuses

\[ x + (-y) \rightarrow x-y. \]

\[ (-x) + (-y) \rightarrow -(x+y). \]

\[ (-x) + y \rightarrow y-x. \]

.

Definition at line 106 of file SundanceStdSumTransformations.hpp.


Constructor & Destructor Documentation

Sundance::RemoveUnaryMinusFromSum::RemoveUnaryMinusFromSum (  )  [inline]

Definition at line 110 of file SundanceStdSumTransformations.hpp.

virtual Sundance::RemoveUnaryMinusFromSum::~RemoveUnaryMinusFromSum (  )  [inline, virtual]

Definition at line 113 of file SundanceStdSumTransformations.hpp.


Member Function Documentation

bool RemoveUnaryMinusFromSum::doTransform ( const RCP< ScalarExpr > &  left,
const RCP< ScalarExpr > &  right,
int  sign,
RCP< ScalarExpr > &  rtn 
) const [virtual]

Test whether the transform is applicable in this case, and if it is, apply it.

The return value is true is the transformation was applied, otherwise false. Returns by non-const reference the transformed expression.

Implements Sundance::SumTransformation.

Definition at line 435 of file SundanceStdSumTransformations.cpp.

References Sundance::UnaryExpr::arg(), Sundance::SymbolicTransformation::chooseSign(), Sundance::SymbolicTransformation::getScalar(), Sundance::Expr::handle(), Playa::Out::println(), removeUnaryMinusTimer(), SUNDANCE_OUT, and Playa::ObjectWithVerbosity::verb().

Site Contact