Public Member Functions
Sundance::MoveUnaryMinusOutsideProduct Class Reference

Transform a product by any unary minus operations outside the product

\[ (-x) \times y \rightarrow -(x \times y) \]

\[ x \times (-y) \rightarrow -(x \times y) \]

\[ )-x) \times (-y) \rightarrow x \times y \]

. More...

Inheritance diagram for Sundance::MoveUnaryMinusOutsideProduct:
Sundance::ProductTransformation Sundance::SymbolicTransformation Sundance::ObjectWithClassVerbosity< SymbolicTransformation > Sundance::DefaultObjectWithVerbosity Sundance::ObjectWithVerbosityBase

List of all members.

Public Member Functions

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

Detailed Description

Transform a product by any unary minus operations outside the product

\[ (-x) \times y \rightarrow -(x \times y) \]

\[ x \times (-y) \rightarrow -(x \times y) \]

\[ )-x) \times (-y) \rightarrow x \times y \]

.

Definition at line 182 of file SundanceStdProductTransformations.hpp.


Constructor & Destructor Documentation

Sundance::MoveUnaryMinusOutsideProduct::MoveUnaryMinusOutsideProduct ( ) [inline]

Definition at line 186 of file SundanceStdProductTransformations.hpp.

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

Definition at line 189 of file SundanceStdProductTransformations.hpp.


Member Function Documentation

bool MoveUnaryMinusOutsideProduct::doTransform ( const RCP< ScalarExpr > &  left,
const RCP< ScalarExpr > &  right,
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::ProductTransformation.

Definition at line 228 of file SundanceStdProductTransformations.cpp.

References Sundance::UnaryExpr::arg(), Sundance::SymbolicTransformation::getScalar(), Sundance::Expr::handle(), Sundance::Out::println(), SUNDANCE_OUT, and Sundance::DefaultObjectWithVerbosity::verb().

Site Contact