| 35 |  | * | 
| 36 |  | * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). | 
| 37 |  | * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). | 
| 38 | < | * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). | 
| 38 | > | * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). | 
| 39 |  | * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010). | 
| 40 |  | * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). | 
| 41 |  | */ | 
| 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); | 
| 273 |  | * Returns the first derivative of this polynomial. | 
| 274 |  | * @return the first derivative of this polynomial | 
| 275 |  | */ | 
| 276 | < | PolynomialType & getDerivative() { | 
| 277 | < | Polynomial<Real> p; | 
| 276 | > | PolynomialType* getDerivative() { | 
| 277 | > | Polynomial<Real>* p = new Polynomial<Real>(); | 
| 278 |  |  | 
| 279 |  | typename Polynomial<Real>::const_iterator i; | 
| 280 |  | ExponentType exponent; | 
| 283 |  | for (i =  this->begin(); i  != this->end(); ++i) { | 
| 284 |  | exponent = i->first; | 
| 285 |  | coefficient = i->second; | 
| 286 | < | p.setCoefficient(exponent-1, coefficient * exponent); | 
| 286 | > | p->setCoefficient(exponent-1, coefficient * exponent); | 
| 287 |  | } | 
| 288 |  |  | 
| 289 |  | return p; | 
| 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)); | 
| 361 |  | roots.push_back(-fTmp * fC1);  // 1 real root | 
| 362 |  | } | 
| 363 |  | } | 
| 364 | < | return roots; | 
| 364 | > | return roots; | 
| 365 |  | case 3: { | 
| 366 |  | Real fC3 = getCoefficient(3); | 
| 367 |  | Real fC2 = getCoefficient(2); | 
| 428 |  | } | 
| 429 |  | } | 
| 430 |  | return roots; | 
| 431 | – |  | 
| 431 |  | case 4: { | 
| 432 |  | Real fC4 = getCoefficient(4); | 
| 433 |  | Real fC3 = getCoefficient(3); | 
| 513 |  | } | 
| 514 |  | } | 
| 515 |  | return roots; | 
| 517 | – |  | 
| 516 |  | default: { | 
| 517 |  | DynamicRectMatrix<Real> companion = CreateCompanion(); | 
| 518 |  | JAMA::Eigenvalue<Real> eig(companion); | 
| 526 |  | } | 
| 527 |  | } | 
| 528 |  | return roots; | 
| 529 | < |  | 
| 532 | < | } | 
| 529 | > | } | 
| 530 |  | } | 
| 531 |  |  | 
| 532 |  | private: | 
| 622 |  | * @return the first derivative of this polynomial | 
| 623 |  | */ | 
| 624 |  | template<typename Real> | 
| 625 | < | Polynomial<Real> getDerivative(const Polynomial<Real>& p1) { | 
| 626 | < | Polynomial<Real> p; | 
| 625 | > | Polynomial<Real> * getDerivative(const Polynomial<Real>& p1) { | 
| 626 | > | Polynomial<Real> * p = new Polynomial<Real>(); | 
| 627 |  |  | 
| 628 |  | typename Polynomial<Real>::const_iterator i; | 
| 629 |  | int exponent; | 
| 632 |  | for (i =  p1.begin(); i  != p1.end(); ++i) { | 
| 633 |  | exponent = i->first; | 
| 634 |  | coefficient = i->second; | 
| 635 | < | p.setCoefficient(exponent-1, coefficient * exponent); | 
| 635 | > | p->setCoefficient(exponent-1, coefficient * exponent); | 
| 636 |  | } | 
| 637 |  |  | 
| 638 |  | return p; |