35
35
#include "SundanceSumTransformation.hpp"
36
36
#include "Teuchos_Array.hpp"
38
#ifndef DOXYGEN_DEVELOPER_ONLY
40
38
namespace SundanceCore
42
using namespace SundanceUtils;
43
using namespace Teuchos;
51
* SumTransformationSequence is a sequence of transformations
52
* to be applied to a sum, producing a transformed expression.
54
class SumTransformationSequence : public SumTransformation,
55
public Array<RefCountPtr<SumTransformation> >
59
SumTransformationSequence();
62
virtual ~SumTransformationSequence(){;}
65
* Test whether the transform is applicable in this case,
66
* and if it is, apply it. The return value is true is the
67
* transformation was applied, otherwise false.
68
* Returns by non-const reference
69
* the transformed expression.
71
* For SumTransformationSequence, this is implemented by
72
* trying to apply all transformations in sequence. If one
73
* succeeds, we exit immediately with true.
75
virtual bool doTransform(const RefCountPtr<ScalarExpr>& left,
76
const RefCountPtr<ScalarExpr>& right,
77
int sign, RefCountPtr<ScalarExpr>& rtn) const ;
40
using namespace SundanceUtils;
41
using namespace Teuchos;
47
* SumTransformationSequence is a sequence of transformations
48
* to be applied to a sum, producing a transformed expression.
50
class SumTransformationSequence : public SumTransformation,
51
public Array<RefCountPtr<SumTransformation> >
55
SumTransformationSequence();
58
virtual ~SumTransformationSequence(){;}
61
* Test whether the transform is applicable in this case,
62
* and if it is, apply it. The return value is true is the
63
* transformation was applied, otherwise false.
64
* Returns by non-const reference
65
* the transformed expression.
67
* For SumTransformationSequence, this is implemented by
68
* trying to apply all transformations in sequence. If one
69
* succeeds, we exit immediately with true.
71
virtual bool doTransform(const RefCountPtr<ScalarExpr>& left,
72
const RefCountPtr<ScalarExpr>& right,
73
int sign, RefCountPtr<ScalarExpr>& rtn) const ;
84
#endif /* DOXYGEN_DEVELOPER_ONLY */