OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
ATable.cpp
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2// $RCSfile: ATable.cpp,v $
3// ------------------------------------------------------------------------
4// $Revision: 1.3 $
5// ------------------------------------------------------------------------
6// Copyright: see Copyright.readme
7// ------------------------------------------------------------------------
8//
9// Class: ATable
10// Expression class. Generates a list of values from a TABLE() function.
11//
12// ------------------------------------------------------------------------
13//
14// $Date: 2002/01/22 15:16:02 $
15// $Author: jsberg $
16//
17// ------------------------------------------------------------------------
18
19#include "Expressions/ATable.h"
20
21#include <iostream>
22
23// Class ATable
24// ------------------------------------------------------------------------
25
26namespace Expressions {
27
29 : OArray<double>(rhs),
30 itsExpr(rhs.itsExpr),
31 itsBegin(rhs.itsBegin),
32 itsEnd(rhs.itsEnd),
33 itsStep(rhs.itsEnd) {}
34
35 ATable::ATable(int n1, int n2, int n3)
36 : OArray<double>(), itsExpr(), itsBegin(n1), itsEnd(n2), itsStep(n3) {}
37
39
40 OArray<double>* ATable::clone() const { return new ATable(*this); }
41
43
44 std::vector<double> ATable::evaluate() const {
45 std::vector<double> result(itsEnd, 0.0);
46
48 result[itsHash - 1] = itsExpr->evaluate();
49 }
50
51 return result;
52 }
53
54 double ATable::getHash() const { return itsHash; }
55
56 void ATable::print(std::ostream& os, int) const {
57 os << "TABLE(" << itsBegin << ':' << itsEnd << ':' << itsStep << ',';
58 itsExpr->print(os);
59 os << ')';
60 return;
61 }
62
63} // namespace Expressions
An array expression generated from a TABLE() function.
Definition ATable.h:37
virtual OArray< double > * clone() const
Make clone.
Definition ATable.cpp:40
void defineExpression(PtrToScalar< double >)
Store the generating expression.
Definition ATable.cpp:42
virtual std::vector< double > evaluate() const
Evaluate.
Definition ATable.cpp:44
virtual void print(std::ostream &os, int precedence=99) const
Print expression.
Definition ATable.cpp:56
PtrToScalar< double > itsExpr
Definition ATable.h:69
double getHash() const
Return the current value of '#'.
Definition ATable.cpp:54
A pointer to a scalar expression.
virtual T evaluate() const =0
Evaluate.
virtual void print(std::ostream &, int precedence=99) const =0
Print expression.
Representation objects and parsers for attribute expressions.