Loading...
Searching...
No Matches
pcl::PolynomialCalculationsT< real > Class Template Reference
Module common

This provides some functionality for polynomials, like finding roots or approximating bivariate polynomials. More...

`#include <pcl/common/polynomial_calculations.h>`

## Classes

struct | Parameters
| Parameters used in this class. More...

## Public Member Functions

void | solveQuarticEquation (real a, real b, real c, real d, real e, std::vector< real > &roots) const
| Solves an equation of the form ax^4 + bx^3 + cx^2 +dx + e = 0 See https://en.wikipedia.org/wiki/Quartic_equation#Summary_of_Ferrari.27s_method.
void | solveCubicEquation (real a, real b, real c, real d, std::vector< real > &roots) const
| Solves an equation of the form ax^3 + bx^2 + cx + d = 0 See https://en.wikipedia.org/wiki/Cubic_equation.
void | solveQuadraticEquation (real a, real b, real c, std::vector< real > &roots) const
| Solves an equation of the form ax^2 + bx + c = 0 See https://en.wikipedia.org/wiki/Quadratic_equation.
void | solveLinearEquation (real a, real b, std::vector< real > &roots) const
| Solves an equation of the form ax + b = 0.
BivariatePolynomialT< real > | bivariatePolynomialApproximation (std::vector< Eigen::Matrix< real, 3, 1 >, Eigen::aligned_allocator< Eigen::Matrix< real, 3, 1 > > > &samplePoints, unsigned int polynomial_degree, bool &error) const
| Get the bivariate polynomial approximation for Z(X,Y) from the given sample points.
bool | bivariatePolynomialApproximation (std::vector< Eigen::Matrix< real, 3, 1 >, Eigen::aligned_allocator< Eigen::Matrix< real, 3, 1 > > > &samplePoints, unsigned int polynomial_degree, BivariatePolynomialT< real > &ret) const
| Same as above, using a reference for the return value.
void | setZeroValue (real new_zero_value)
| Set the minimum value under which values are considered zero.

## Protected Member Functions

bool | isNearlyZero (real d) const
| check if std::abs(d)<zeroValue
bool | sqrtIsNearlyZero (real d) const
| check if sqrt(std::abs(d))<zeroValue

## Protected Attributes

Parameters | parameters_

## Detailed Description

template<typename real>
class pcl::PolynomialCalculationsT< real >

This provides some functionality for polynomials, like finding roots or approximating bivariate polynomials.

Author
  Bastian Steder

Definition at line 49 of file polynomial_calculations.h.

## Member Function Documentation

## bivariatePolynomialApproximation() [1/2]

template<typename real>

bool pcl::PolynomialCalculationsT< real >::bivariatePolynomialApproximation | ( | std::vector< Eigen::Matrix< real, 3, 1 >, Eigen::aligned_allocator< Eigen::Matrix< real, 3, 1 > > > & | samplePoints,
|  | unsigned int | polynomial_degree,
|  | pcl::BivariatePolynomialT< real > & | ret ) const

inline

Same as above, using a reference for the return value.

Definition at line 408 of file polynomial_calculations.hpp.

References pcl::BivariatePolynomialT< real >::getNoOfParametersFromDegree(), pcl::BivariatePolynomialT< real >::parameters, and pcl::BivariatePolynomialT< real >::setDegree().

## bivariatePolynomialApproximation() [2/2]

template<typename real>

pcl::BivariatePolynomialT< real > pcl::PolynomialCalculationsT< real >::bivariatePolynomialApproximation | ( | std::vector< Eigen::Matrix< real, 3, 1 >, Eigen::aligned_allocator< Eigen::Matrix< real, 3, 1 > > > & | samplePoints,
|  | unsigned int | polynomial_degree,
|  | bool & | error ) const

inline

Get the bivariate polynomial approximation for Z(X,Y) from the given sample points.

The parameters a,b,c,... for the polynom are returned. The order is, e.g., for degree 1: ax+by+c and for degree 2: ax²+bxy+cx+dy²+ey+f. error is set to true if the approximation did not work for any reason (not enough points, matrix not invertible, etc.)

Definition at line 397 of file polynomial_calculations.hpp.

References bivariatePolynomialApproximation().

Referenced by bivariatePolynomialApproximation().

## isNearlyZero()

template<typename real>

bool pcl::PolynomialCalculationsT< real >::isNearlyZero | ( | real | d | ) | const

inline protected

check if std::abs(d)<zeroValue

Definition at line 107 of file polynomial_calculations.h.

Referenced by solveCubicEquation(), solveQuadraticEquation(), and solveQuarticEquation().

## setZeroValue()

template<typename real>

void pcl::PolynomialCalculationsT< real >::setZeroValue | ( | real | new_zero_value | ) |

inline

Set the minimum value under which values are considered zero.

Definition at line 101 of file polynomial_calculations.h.

## solveCubicEquation()

template<typename real>

void pcl::PolynomialCalculationsT< real >::solveCubicEquation | ( | real | a,
|  | real | b,
|  | real | c,
|  | real | d,
|  | std::vector< real > & | roots ) const

inline

Solves an equation of the form ax^3 + bx^2 + cx + d = 0 See https://en.wikipedia.org/wiki/Cubic_equation.

Definition at line 145 of file polynomial_calculations.hpp.

References isNearlyZero(), M_PI, and solveQuadraticEquation().

Referenced by solveQuarticEquation().

## solveLinearEquation()

template<typename real>

void pcl::PolynomialCalculationsT< real >::solveLinearEquation | ( | real | a,
|  | real | b,
|  | std::vector< real > & | roots ) const

inline

Solves an equation of the form ax + b = 0.

Definition at line 58 of file polynomial_calculations.hpp.

Referenced by solveQuadraticEquation().

## solveQuadraticEquation()

template<typename real>

void pcl::PolynomialCalculationsT< real >::solveQuadraticEquation | ( | real | a,
|  | real | b,
|  | real | c,
|  | std::vector< real > & | roots ) const

inline

Solves an equation of the form ax^2 + bx + c = 0 See https://en.wikipedia.org/wiki/Quadratic_equation.

Definition at line 90 of file polynomial_calculations.hpp.

References isNearlyZero(), solveLinearEquation(), and sqrtIsNearlyZero().

Referenced by solveCubicEquation(), and solveQuarticEquation().

## solveQuarticEquation()

template<typename real>

void pcl::PolynomialCalculationsT< real >::solveQuarticEquation | ( | real | a,
|  | real | b,
|  | real | c,
|  | real | d,
|  | real | e,
|  | std::vector< real > & | roots ) const

inline

Solves an equation of the form ax^4 + bx^3 + cx^2 +dx + e = 0 See https://en.wikipedia.org/wiki/Quartic_equation#Summary_of_Ferrari.27s_method.

Definition at line 246 of file polynomial_calculations.hpp.

References isNearlyZero(), solveCubicEquation(), solveQuadraticEquation(), and sqrtIsNearlyZero().

## sqrtIsNearlyZero()

template<typename real>

bool pcl::PolynomialCalculationsT< real >::sqrtIsNearlyZero | ( | real | d | ) | const

inline protected

check if sqrt(std::abs(d))<zeroValue

Definition at line 114 of file polynomial_calculations.h.

Referenced by solveQuadraticEquation(), and solveQuarticEquation().

## Member Data Documentation

## parameters_

template<typename real>

Parameters pcl::PolynomialCalculationsT< real >::parameters_

protected

Definition at line 120 of file polynomial_calculations.h.

The documentation for this class was generated from the following files:

- pcl/common/polynomial_calculations.h
- pcl/common/impl/polynomial_calculations.hpp