10#include "../myAssert.h"
12#include "../sgrid/sparseGrid.h"
13#include "../indices/index.h"
30 double* dataTableVector;
35 DWrapSim(
const VectorSparseG& a,
const ExprSparseG<B>& b) : dataTableVector(a.dataTableVector), bo(b) { }
36 void RunValue(
int i,
const IndexDimension& I)
const {
37 dataTableVector[i]=bo.getValue(i, I);
42 ExpressionDescription getDescription()
const {
43 return ExpressionDescription(bo.getDescription());
50template<
class A,
class B>
51class ExprAndSparseG :
public ExprSparseG<ExprAndSparseG<A, B> > {
55 ExprAndSparseG(
const A& a, DWrapSim<B>& b) : a_(a), b_(b) {}
57 double getValue(
int i,
const IndexDimension& I)
const {
59 return a_.getValue(i,I);
62 ExpressionDescription getDescription()
const {
63 return ExpressionDescription(a_.getDescription(),b_.getDescription());
98class DExprLIT :
public ExprSparseG<DExprLIT> {
100 DExprLIT(
const double a_): a(a_) {}
102 double getValue(
int i,
const IndexDimension& I)
const {
return a; }
104 ExpressionDescription getDescription()
const {
return ExpressionDescription(
false); }
118template<
class A,
class B>
119ExprAndSparseG< A, B >
120operator&(
const ExprSparseG<A>& a, DWrapSim<B> b) {
121 return ExprAndSparseG< A, B > (a,b);
150ExprAndSparseG< DExprLIT, B >
151operator&(
double a,
const DWrapSim<B>& b) {
152 return ExprAndSparseG< DExprLIT, B > (DExprLIT(a),b);
168operator== (VectorSparseG& a,
const ExprSparseG<B>& b_) {
169 return DWrapSim<B>(a,b_);
Definition sparseGrid.h:277