OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimTerm.cpp
Go to the documentation of this file.
1 
9 #include <ossim/base/ossimTerm.h>
10 
11 
12 #include <iostream>
13 
14 
28  return new ossimPolynomial(this->copy(), rhs->copy());
29 }
38  return new ossimProd(this->copy(), rhs->copy());
39 }
40 
41 
42 
56  return new ossimMonom(coef*exp, var->derivative(variable), exp-1);
57 }
58 
59 
66  return new ossimMonom(coef, var->copy(), exp);
67 }
68 
69 
70 
85 }
86 
87 
94  return new ossimPolynomial(lTerm->copy(), rTerm->copy());
95 }
96 
97 
98 
113 }
114 
115 
122  return new ossimProd(lTerm->copy(), rTerm->copy());
123 }
124 
125 
126 
140  if(var == variable) return new ossimVar(var);
141 return new ossimConst(0);
142 }
143 
144 
151  return new ossimVar(var);
152 }
153 
154 
155 
168 ossimTerm* ossimConst::derivative(const ossim_uint32& /* variable */ ) const
169 {
170  return new ossimConst(0);
171 }
172 
173 
180  return new ossimConst(val);
181 }
An abstract class to containing a multivariable function.
Definition: ossimTerm.h:35
ossimTerm * operator*(ossimTerm *rhs) const
Returns a copy of the two terms in a product.
Definition: ossimTerm.cpp:37
ossimTerm * operator+(ossimTerm *rhs) const
Returns a copy of the two terms in a polynomial.
Definition: ossimTerm.cpp:27
virtual ossimTerm * derivative(const ossim_uint32 &variable) const =0
Calculates the derivative of the term.
ossimVar(const ossim_uint32 &variable)
Public Constructor.
Definition: ossimTerm.h:318
ossimTerm * copy() const
Creates a copy of the product.
Definition: ossimTerm.cpp:121
A polynomial class to hold a product as a term.
Definition: ossimTerm.h:244
ossim_float64 exp
Definition: ossimTerm.h:170
ossimTerm * lTerm
Definition: ossimTerm.h:234
ossim_uint32 var
Definition: ossimTerm.h:363
ossim_float64 coef
Definition: ossimTerm.h:168
ossimTerm * derivative(const ossim_uint32 &variable) const
Calculates the derivative for a product.
Definition: ossimTerm.cpp:111
unsigned int ossim_uint32
ossimTerm * var
Definition: ossimTerm.h:169
A polynomial class to hold a polynomial as a term.
Definition: ossimTerm.h:179
ossimTerm * lTerm
Definition: ossimTerm.h:299
ossim_float64 val
Definition: ossimTerm.h:427
A constant class to hold a constant as a term.
Definition: ossimTerm.h:372
ossimMonom(const ossim_float64 &coeffient, ossimTerm *variable, const ossim_float64 &exponential)
Public Constructor.
Definition: ossimTerm.h:123
ossimTerm * copy() const
Creates a copy of the constant.
Definition: ossimTerm.cpp:179
ossimPolynomial(ossimTerm *leftTerm, ossimTerm *rightTerm)
Public Constructor.
Definition: ossimTerm.h:189
ossimTerm * derivative(const ossim_uint32 &variable) const
Calculates the derivative for a polynomial.
Definition: ossimTerm.cpp:83
ossimTerm * rTerm
Definition: ossimTerm.h:300
ossimTerm * derivative(const ossim_uint32 &variable) const
Calculates the derivative for a constant.
Definition: ossimTerm.cpp:168
ossimConst(const ossim_float64 &value)
Public Constructor.
Definition: ossimTerm.h:382
virtual ossimTerm * copy() const =0
Returns a pointer to a copy of the term.
ossimProd(ossimTerm *leftTerm, ossimTerm *rightTerm)
Public Constructor.
Definition: ossimTerm.h:254
ossimTerm * copy() const
Creates a copy of the variable.
Definition: ossimTerm.cpp:150
ossimTerm * copy() const
Creates a copy of the polynomial.
Definition: ossimTerm.cpp:93
ossimTerm * copy() const
Creates a copy of the monomial.
Definition: ossimTerm.cpp:65
ossimTerm * rTerm
Definition: ossimTerm.h:235
ossimTerm * derivative(const ossim_uint32 &variable) const
Calculates the derivative for a variable.
Definition: ossimTerm.cpp:139
ossimTerm * derivative(const ossim_uint32 &variable) const
Calculates the derivative for a monomial.
Definition: ossimTerm.cpp:55