Point Cloud Library (PCL)  1.14.0-dev
List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes
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>

+ Collaboration diagram for pcl::PolynomialCalculationsT< real >:

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. 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 https://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 https://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 std::abs(d)<zeroValue More...
 
bool sqrtIsNearlyZero (real d) const
 check if sqrt(std::abs(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.

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

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

◆ isNearlyZero()

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

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

References pcl::PolynomialCalculationsT< real >::parameters_, and pcl::PolynomialCalculationsT< real >::Parameters::setZeroValue().

◆ solveCubicEquation()

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

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

References pcl::PolynomialCalculationsT< real >::isNearlyZero().

Referenced by pcl::PolynomialCalculationsT< real >::solveQuadraticEquation().

◆ solveQuadraticEquation()

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

◆ 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

◆ sqrtIsNearlyZero()

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

Member Data Documentation

◆ parameters_

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

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