ENH: improve stability in polynomialEqns
- replaces floating-point equal comparisons in `linearEqn`, `quadraticEqn`, and `cubicEqn`, - ensures `quadraticEqn` and `cubicEqn` can return `complex` roots, - reorders if-branches in `quadraticEqn` and `cubicEqn` to avoid zero-equal comparison, - adds Kahan's cancellation-avoiding algorithm into `quadraticEqn` and `cubicEqn` for the numerically-sensitive discriminant computation, - adds/improves `polynomialEqns` tests: * adds Test-linearEqn.C * adds Test-quadraticEqn.C * improves Test-cubicEqn.C
Showing
- applications/test/polynomialEqns/cubicEqn/Make/files 0 additions, 0 deletionsapplications/test/polynomialEqns/cubicEqn/Make/files
- applications/test/polynomialEqns/cubicEqn/Make/options 0 additions, 0 deletionsapplications/test/polynomialEqns/cubicEqn/Make/options
- applications/test/polynomialEqns/cubicEqn/Test-cubicEqn.C 339 additions, 0 deletionsapplications/test/polynomialEqns/cubicEqn/Test-cubicEqn.C
- applications/test/polynomialEqns/linearEqn/Make/files 3 additions, 0 deletionsapplications/test/polynomialEqns/linearEqn/Make/files
- applications/test/polynomialEqns/linearEqn/Make/options 3 additions, 0 deletionsapplications/test/polynomialEqns/linearEqn/Make/options
- applications/test/polynomialEqns/linearEqn/Test-linearEqn.C 270 additions, 0 deletionsapplications/test/polynomialEqns/linearEqn/Test-linearEqn.C
- applications/test/polynomialEqns/quadraticEqn/Make/files 3 additions, 0 deletionsapplications/test/polynomialEqns/quadraticEqn/Make/files
- applications/test/polynomialEqns/quadraticEqn/Make/options 3 additions, 0 deletionsapplications/test/polynomialEqns/quadraticEqn/Make/options
- applications/test/polynomialEqns/quadraticEqn/Test-quadraticEqn.C 321 additions, 0 deletions...ions/test/polynomialEqns/quadraticEqn/Test-quadraticEqn.C
- src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C 53 additions, 80 deletionssrc/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C
- src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H 84 additions, 14 deletionssrc/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H
- src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H 22 additions, 10 deletionssrc/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H
- src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H 4 additions, 13 deletions...OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H
- src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C 22 additions, 37 deletions...OAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C
- src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H 54 additions, 12 deletions...OAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H
Please register or sign in to comment