ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/math/Polynomial.hpp
(Generate patch)

Comparing trunk/src/math/Polynomial.hpp (file contents):
Revision 749 by tim, Wed Nov 16 23:10:02 2005 UTC vs.
Revision 1230 by cpuglis, Fri Mar 7 19:37:14 2008 UTC

# Line 53 | Line 53
53   #include <list>
54   #include <map>
55   #include <utility>
56 <
56 > #include "config.h"
57   namespace oopse {
58  
59    template<typename ElemType> ElemType pow(ElemType x, int N) {
# Line 189 | Line 189 | namespace oopse {
189        return polyPairMap_.size();
190      }
191  
192 +    PolynomialType& operator = (const PolynomialType& p) {
193 +
194 +      if (this != &p)  // protect against invalid self-assignment
195 +      {
196 +        typename Polynomial<ElemType>::const_iterator i;
197 +
198 +        polyPairMap_.clear();  // clear out the old map
199 +      
200 +        for (i =  p.begin(); i != p.end(); ++i) {
201 +          this->setCoefficient(i->first, i->second);
202 +        }
203 +      }
204 +      // by convention, always return *this
205 +      return *this;
206 +    }
207 +
208      PolynomialType& operator += (const PolynomialType& p) {
209          typename Polynomial<ElemType>::const_iterator i;
210  
# Line 204 | Line 220 | namespace oopse {
220          for (i =  p.begin(); i  != p.end(); ++i) {
221            this->addCoefficient(i->first, -i->second);
222          }        
223 +        return *this;
224      }
225  
226      PolynomialType& operator *= (const PolynomialType& p) {
# Line 245 | Line 262 | namespace oopse {
262      return p;
263    }
264  
265 +  template<typename ElemType>
266 +  Polynomial<ElemType> operator *(const Polynomial<ElemType>& p, const ElemType v) {
267 +    typename Polynomial<ElemType>::const_iterator i;
268 +    Polynomial<ElemType> result;
269 +    
270 +    for (i = p.begin(); i !=p.end(); ++i) {
271 +        result.addCoefficient( i->first , i->second * v);
272 +    }
273 +
274 +    return result;
275 +  }
276 +
277 +  template<typename ElemType>
278 +  Polynomial<ElemType> operator *( const ElemType v, const Polynomial<ElemType>& p) {
279 +    typename Polynomial<ElemType>::const_iterator i;
280 +    Polynomial<ElemType> result;
281 +    
282 +    for (i = p.begin(); i !=p.end(); ++i) {
283 +        result.addCoefficient( i->first , i->second * v);
284 +    }
285 +
286 +    return result;
287 +  }
288 +  
289    /**
290     * Generates and returns the sum of two given Polynomials.
291     * @param p1 the first polynomial
# Line 286 | Line 327 | namespace oopse {
327  
328    /**
329     * Tests if two polynomial have the same exponents
330 <   * @return true if these all of the exponents in these Polynomial are identical
330 >   * @return true if all of the exponents in these Polynomial are identical
331     * @param p1 the first polynomial
332     * @param p2 the second polynomial
333     * @note this function does not compare the coefficient
# Line 310 | Line 351 | namespace oopse {
351      return true;
352    }
353  
354 <  typedef Polynomial<double> DoublePolynomial;
354 >  typedef Polynomial<RealType> DoublePolynomial;
355  
356   } //end namespace oopse
357   #endif //MATH_POLYNOMIAL_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines