7
7
#include "Teuchos_TimeMonitor.hpp"
10
#ifndef DOXYGEN_DEVELOPER_ONLY
12
10
namespace SundanceCore
19
class ProductEvaluator : public BinaryEvaluator<ProductExpr>
23
ProductEvaluator(const ProductExpr* expr,
24
const EvalContext& context);
28
virtual ~ProductEvaluator(){;}
31
virtual void internalEval(const EvalManager& mgr,
32
Array<double>& constantResults,
33
Array<RefCountPtr<EvalVector> >& vectorResults) const ;
37
TEUCHOS_TIMER(evalTimer, "product evaluation");
41
enum ProductParity {VecVec, VecConst, ConstVec};
44
Array<Array<int> > resultIndex_;
45
Array<Array<int> > resultIsConstant_;
47
Array<Array<int> > hasWorkspace_;
48
Array<Array<int> > workspaceIsLeft_;
49
Array<Array<int> > workspaceIndex_;
50
Array<Array<int> > workspaceCoeffIndex_;
51
Array<Array<int> > workspaceCoeffIsConstant_;
53
Array<Array<Array<Array<int> > > > ccTerms_;
54
Array<Array<Array<Array<int> > > > cvTerms_;
55
Array<Array<Array<Array<int> > > > vcTerms_;
56
Array<Array<Array<Array<int> > > > vvTerms_;
58
Array<Array<Array<int> > > startingVectors_;
59
Array<Array<ProductParity> > startingParities_;
15
class ProductEvaluator : public BinaryEvaluator<ProductExpr>
19
ProductEvaluator(const ProductExpr* expr,
20
const EvalContext& context);
24
virtual ~ProductEvaluator(){;}
27
virtual void internalEval(const EvalManager& mgr,
28
Array<double>& constantResults,
29
Array<RefCountPtr<EvalVector> >& vectorResults) const ;
33
TEUCHOS_TIMER(evalTimer, "product evaluation");
37
enum ProductParity {VecVec, VecConst, ConstVec};
40
Array<Array<int> > resultIndex_;
41
Array<Array<int> > resultIsConstant_;
43
Array<Array<int> > hasWorkspace_;
44
Array<Array<int> > workspaceIsLeft_;
45
Array<Array<int> > workspaceIndex_;
46
Array<Array<int> > workspaceCoeffIndex_;
47
Array<Array<int> > workspaceCoeffIsConstant_;
49
Array<Array<Array<Array<int> > > > ccTerms_;
50
Array<Array<Array<Array<int> > > > cvTerms_;
51
Array<Array<Array<Array<int> > > > vcTerms_;
52
Array<Array<Array<Array<int> > > > vvTerms_;
54
Array<Array<Array<int> > > startingVectors_;
55
Array<Array<ProductParity> > startingParities_;
71
#endif /* DOXYGEN_DEVELOPER_ONLY */