35
35
#include "SundanceEvaluator.hpp"
36
36
#include "SundanceEvaluatableExpr.hpp"
38
#ifndef DOXYGEN_DEVELOPER_ONLY
40
38
namespace SundanceCore
47
using namespace Internal;
48
using namespace TSFExtended;
55
template <class ExprType> class SubtypeEvaluator : public Evaluator
46
template <class ExprType> class SubtypeEvaluator : public Evaluator
50
SubtypeEvaluator(const ExprType* expr,
51
const EvalContext& context)
54
sparsity_(expr_->sparsitySuperset(context))
59
SubtypeEvaluator(const ExprType* expr,
60
const EvalContext& context)
63
sparsity_(expr_->sparsitySuperset(context))
65
verbosity() = Evaluator::classVerbosity();
56
this->setVerbosity(Evaluator::classVerbosity());
69
virtual ~SubtypeEvaluator(){;}
60
virtual ~SubtypeEvaluator(){;}
74
const RefCountPtr<SparsitySuperset>& sparsity() const {return sparsity_;}
78
const ExprType* expr() const {return expr_;}
81
const MultipleDeriv& vectorResultDeriv(int iVec) const
83
return this->sparsity()->deriv(vectorIndices()[iVec]);
87
const MultipleDeriv& constantResultDeriv(int iConst) const
89
return this->sparsity()->deriv(constantIndices()[iConst]);
93
const ExprType* expr_;
95
RefCountPtr<SparsitySuperset> sparsity_;
65
const RefCountPtr<SparsitySuperset>& sparsity() const {return sparsity_;}
69
const ExprType* expr() const {return expr_;}
72
const MultipleDeriv& vectorResultDeriv(int iVec) const
74
return this->sparsity()->deriv(vectorIndices()[iVec]);
78
const MultipleDeriv& constantResultDeriv(int iConst) const
80
return this->sparsity()->deriv(constantIndices()[iConst]);
84
const ExprType* expr_;
86
RefCountPtr<SparsitySuperset> sparsity_;
103
#endif /* DOXYGEN_DEVELOPER_ONLY */