Point Cloud Library (PCL)  1.9.1-dev
pcl::PolynomialCalculationsT< real > Class Template Reference

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

PolynomialCalculationsT ()

~PolynomialCalculationsT ()

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 http://en.wikipedia.org/wiki/Quartic_equation#Summary_of_Ferrari.27s_method. More...

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 http://en.wikipedia.org/wiki/Cubic_equation. More...

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 http://en.wikipedia.org/wiki/Quadratic_equation. More...

void solveLinearEquation (real a, real b, std::vector< real > &roots) const
Solves an equation of the form ax + b = 0. More...

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. More...

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. More...

void setZeroValue (real new_zero_value)
Set the minimum value under which values are considered zero. More...

## Protected Member Functions

bool isNearlyZero (real d) const
check if fabs(d)<zeroValue More...

bool sqrtIsNearlyZero (real d) const
check if sqrt(fabs(d))<zeroValue More...

## 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.

Definition at line 49 of file polynomial_calculations.h.

## Constructor & Destructor Documentation

template<typename real >
 pcl::PolynomialCalculationsT< real >::PolynomialCalculationsT ( )

Definition at line 44 of file polynomial_calculations.hpp.

template<typename real >
 pcl::PolynomialCalculationsT< real >::~PolynomialCalculationsT ( )

Definition at line 51 of file polynomial_calculations.hpp.

## Member Function Documentation

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 414 of file polynomial_calculations.hpp.

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 426 of file polynomial_calculations.hpp.

template<typename real >
 bool pcl::PolynomialCalculationsT< real >::isNearlyZero ( real d ) const
inlineprotected

check if fabs(d)<zeroValue

Definition at line 111 of file polynomial_calculations.h.

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 105 of file polynomial_calculations.h.

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 http://en.wikipedia.org/wiki/Cubic_equation.

Definition at line 158 of file polynomial_calculations.hpp.

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 69 of file polynomial_calculations.hpp.

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 http://en.wikipedia.org/wiki/Quadratic_equation.

Definition at line 102 of file polynomial_calculations.hpp.

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 http://en.wikipedia.org/wiki/Quartic_equation#Summary_of_Ferrari.27s_method.

Definition at line 260 of file polynomial_calculations.hpp.

template<typename real >
 bool pcl::PolynomialCalculationsT< real >::sqrtIsNearlyZero ( real d ) const
inlineprotected

check if sqrt(fabs(d))<zeroValue

Definition at line 118 of file polynomial_calculations.h.

## Member Data Documentation

template<typename real >
 Parameters pcl::PolynomialCalculationsT< real >::parameters_
protected

Definition at line 124 of file polynomial_calculations.h.

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