Classes | Public Member Functions | Protected Member Functions | Protected Attributes

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>

Collaboration diagram for pcl::PolynomialCalculationsT< real >:
Collaboration graph
[legend]

List of all members.

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.
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.
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.
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 > > &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 > > &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)
 check if fabs(d)<zeroValue
bool sqrtIsNearlyZero (real d)
 check if sqrt(fabs(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 51 of file polynomial_calculations.h.


Constructor & Destructor Documentation

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

Definition at line 4 of file polynomial_calculations.hpp.

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

Definition at line 11 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 > > &  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 374 of file polynomial_calculations.hpp.

template<typename real >
bool pcl::PolynomialCalculationsT< real >::bivariatePolynomialApproximation ( std::vector< 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 386 of file polynomial_calculations.hpp.

template<typename real >
bool pcl::PolynomialCalculationsT< real >::isNearlyZero ( real  d  )  [inline, protected]

check if fabs(d)<zeroValue

Definition at line 112 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 106 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 118 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 29 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 62 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 220 of file polynomial_calculations.hpp.

template<typename real >
bool pcl::PolynomialCalculationsT< real >::sqrtIsNearlyZero ( real  d  )  [inline, protected]

check if sqrt(fabs(d))<zeroValue

Definition at line 116 of file polynomial_calculations.h.


Member Data Documentation

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

Definition at line 119 of file polynomial_calculations.h.


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