MRPT  2.0.4
Find polynomial roots (`#include

## Detailed Description

Collaboration diagram for Find polynomial roots (`#include:


This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.

## Functions

int mrpt::math::solve_poly3 (double *x, double a, double b, double c) noexcept
Solves cubic equation x^3 + a*x^2 + b*x + c = 0. More...

int mrpt::math::solve_poly4 (double *x, double a, double b, double c, double d) noexcept
Solves quartic equation x^4 + a*x^3 + b*x^2 + c*x + d = 0 by Dekart-Euler method. More...

int mrpt::math::solve_poly5 (double *x, double a, double b, double c, double d, double e) noexcept
Solves equation x^5 + a*x^4 + b*x^3 + c*x^2 + d*x + e = 0. More...

int mrpt::math::solve_poly4Bi (double *x, double b, double d) noexcept
Solve equation x^4 + b*x^2 + d = 0. More...

int mrpt::math::solve_poly4De (double *x, double b, double c, double d) noexcept
Solve equation x^4 + b*x^2 + c*x + d = 0. More...

int mrpt::math::solve_poly2 (double a, double b, double c, double &r1, double &r2) noexcept
Solves equation a*x^2 + b*x + c = 0. More...

## ◆ solve_poly2()

 int mrpt::math::solve_poly2 ( double a, double b, double c, double & r1, double & r2 )
noexcept

Solves equation a*x^2 + b*x + c = 0.

Returns the number of real roots: either 0 or 2; or 1 if a=0 (in this case the root is in r1). r1, r2 are the roots. (r1<=r2)

Note
Based on poly34.h, by Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html - khash2 (at) gmail.com

Definition at line 394 of file poly_roots.cpp.

References eps.

Here is the caller graph for this function:

## ◆ solve_poly3()

 int mrpt::math::solve_poly3 ( double * x, double a, double b, double c )
noexcept

Solves cubic equation x^3 + a*x^2 + b*x + c = 0.

Returns the number of real roots N<=3. The roots are returned in the first entries of x, i.e. x[0] if N=1, x[0] and x[1] if N=2, etc.

Parameters
 x array of size 3
Note
Based on poly34.h, by Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html - khash2 (at) gmail.com

Definition at line 29 of file poly_roots.cpp.

References mrpt::obs::gnss::a2, eps, and TwoPi.

Referenced by SolveP4De(), TEST(), and mrpt::nav::CPTG_Holo_Blend::updateTPObstacleSingle().

Here is the caller graph for this function:

## ◆ solve_poly4()

 int mrpt::math::solve_poly4 ( double * x, double a, double b, double c, double d )
noexcept

Solves quartic equation x^4 + a*x^3 + b*x^2 + c*x + d = 0 by Dekart-Euler method.

Returns the number of real roots N<=4:

• return 4: 4 real roots x[0], x[1], x[2], x[3], possible multiple roots
• return 2: 2 real roots x[0], x[1] and complex x[2]+-i*x[3],
• return 0: two pair of complex roots: x[0]+-i*x[1], x[2]+-i*x[3],

The roots are returned in the first entries of x, i.e. x[0] if N=1, x[0] and x[1] if N=2, etc.

Parameters
 x array of size 4
Note
Based on poly34.h, by Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html - khash2 (at) gmail.com

Definition at line 247 of file poly_roots.cpp.

References mrpt::obs::gnss::b1, N4Step(), and SolveP4De().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ solve_poly4Bi()

 int mrpt::math::solve_poly4Bi ( double * x, double b, double d )
noexcept

Solve equation x^4 + b*x^2 + d = 0.

## ◆ solve_poly4De()

 int mrpt::math::solve_poly4De ( double * x, double b, double c, double d )
noexcept

Solve equation x^4 + b*x^2 + c*x + d = 0.

## ◆ solve_poly5()

 int mrpt::math::solve_poly5 ( double * x, double a, double b, double c, double d, double e )
noexcept

Solves equation x^5 + a*x^4 + b*x^3 + c*x^2 + d*x + e = 0.

Returns the number of real roots N<=5. The roots are returned in the first entries of x, i.e. x[0] if N=1, x[0] and x[1] if N=2, etc.

Parameters
 x array of size 5
Note
Based on poly34.h, by Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html - khash2 (at) gmail.com

Definition at line 381 of file poly_roots.cpp.

Here is the call graph for this function:

 Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 44b1e7295 Fri Jun 5 12:35:25 2020 +0200 at vie jun 5 12:45:10 CEST 2020