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

Comparing branches/development/src/math/Polynomial.hpp (file contents):
Revision 1773 by gezelter, Tue Aug 7 18:26:40 2012 UTC vs.
Revision 1827 by gezelter, Wed Jan 9 19:49:07 2013 UTC

# Line 159 | Line 159 | namespace OpenMD {
159       * this Polynomial.
160       * @return the coefficient associated with the given power for
161       * this Polynomial
162 <     * @exponent exponent of any term in this Polynomial
162 >     * @param exponent exponent of any term in this Polynomial
163       */
164      Real getCoefficient(ExponentType exponent) {
165        iterator i = polyPairMap_.find(exponent);
# Line 338 | Line 338 | namespace OpenMD {
338          roots.push_back( -fC0 / fC1);
339          return roots;
340        }
341        break;      
341        case 2: {
342          Real fC2 = getCoefficient(2);
343          Real fC1 = getCoefficient(1);
# Line 347 | Line 346 | namespace OpenMD {
346          if (abs(fDiscr) <= fEpsilon) {
347            fDiscr = (Real)0.0;
348          }
349 <      
349 >        
350          if (fDiscr < (Real)0.0) {  // complex roots only
351            return roots;
352          }
353 <      
353 >        
354          Real fTmp = ((Real)0.5)/fC2;
355 <      
355 >        
356          if (fDiscr > (Real)0.0) { // 2 real roots
357            fDiscr = sqrt(fDiscr);
358            roots.push_back(fTmp*(-fC1 - fDiscr));
# Line 362 | Line 361 | namespace OpenMD {
361            roots.push_back(-fTmp * fC1);  // 1 real root
362          }
363        }
364 <        return roots;
366 <        break;
367 <      
364 >        return roots;      
365        case 3: {
366          Real fC3 = getCoefficient(3);
367          Real fC2 = getCoefficient(2);
# Line 431 | Line 428 | namespace OpenMD {
428          }
429        }
430          return roots;
434        break;
431        case 4: {
432          Real fC4 = getCoefficient(4);
433          Real fC3 = getCoefficient(3);
# Line 517 | Line 513 | namespace OpenMD {
513          }
514        }
515          return roots;
520        break;
516        default: {
517          DynamicRectMatrix<Real> companion = CreateCompanion();
518          JAMA::Eigenvalue<Real> eig(companion);
# Line 531 | Line 526 | namespace OpenMD {
526          }      
527        }
528          return roots;
534        break;
529        }
530  
531        return roots; // should be empty if you got here
532      }
533 <  
533 >    
534    private:
535          
536      PolynomialPairMap polyPairMap_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines