OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
TpsMonomial.cpp
Go to the documentation of this file.
1 // ------------------------------------------------------------------------
2 // $RCSfile: TpsMonomial.cpp,v $
3 // ------------------------------------------------------------------------
4 // $Revision: 1.1.1.1 $
5 // ------------------------------------------------------------------------
6 // Copyright: see Copyright.readme
7 // ------------------------------------------------------------------------
8 //
9 // Class: TpsMonomial
10 // Index set for a Tps monomial.
11 //
12 // ------------------------------------------------------------------------
13 // Class category: Algebra
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:32:32 $
17 // $Author: fci $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "Algebra/TpsMonomial.h"
22 #include "Algebra/TpsData.h"
23 
24 
25 // Class TpsMonomial
26 // ------------------------------------------------------------------------
27 
29  array()
30 {}
31 
32 
34  array(rhs.array)
35 {}
36 
37 
39  array(nVar, int(0))
40 {}
41 
42 
43 TpsMonomial::TpsMonomial(int nVar, int var):
44  array(nVar, int(0)) {
45  array[var] = 1;
46 }
47 
48 
50 {}
51 
52 
54  array = rhs.array;
55  return *this;
56 }
57 
58 
59 int &TpsMonomial::operator[](int index) {
60  return array[index];
61 }
62 
63 
64 int TpsMonomial::operator[](int index) const {
65  return array[index];
66 }
67 
68 
70  int n = rhs.getVariables();
71  TpsMonomial z(*this);
72  for(int i = 0; i < n; i++) z.array[i] += rhs.array[i];
73  return z;
74 }
75 
76 
77 int TpsMonomial::getIndex() const {
79  return data->indexMonomial(*this);
80 }
81 
82 
83 int TpsMonomial::getOrder() const {
84  int order = 0;
85 
86  for(int i = 0; i < array.size(); i++) {
87  order += array[i];
88  }
89 
90  return order;
91 }
92 
93 
95  return array.size();
96 }
Array1D< int > array
Definition: TpsMonomial.h:78
Bookkeeping class for Tps&lt;T&gt;.
Definition: TpsData.h:35
int & operator[](int index)
Get exponent.
Definition: TpsMonomial.cpp:59
int indexMonomial(const TpsMonomial &) const
Definition: TpsData.cpp:53
int getOrder() const
Get order.
Definition: TpsMonomial.cpp:83
const TpsMonomial & operator=(const TpsMonomial &)
Definition: TpsMonomial.cpp:53
int size() const
Get array size.
Definition: Array1D.h:228
static TpsData * getTpsData(int nOrd, int nVar)
Definition: TpsData.cpp:43
TpsMonomial operator*(const TpsMonomial &rhs) const
Product.
Definition: TpsMonomial.cpp:69
Exponent array for Tps&lt;T&gt;.
Definition: TpsMonomial.h:31
int getIndex() const
Convert.
Definition: TpsMonomial.cpp:77
int getVariables() const
Get variables.
Definition: TpsMonomial.cpp:94