Apollo 11.0
自动驾驶开放平台
apollo::planning::PolynomialXd类 参考

#include <polynomial_xd.h>

apollo::planning::PolynomialXd 的协作图:

Public 成员函数

 PolynomialXd ()=default
 
 PolynomialXd (const std::uint32_t order)
 
 PolynomialXd (const std::vector< double > &params)
 
double operator() (const double value) const
 
double operator[] (const std::uint32_t index) const
 
void SetParams (const std::vector< double > &params)
 
std::uint32_t order () const
 
const std::vector< double > & params () const
 

静态 Public 成员函数

static PolynomialXd DerivedFrom (const PolynomialXd &base)
 
static PolynomialXd IntegratedFrom (const PolynomialXd &base, const double intercept=0.0)
 

详细描述

在文件 polynomial_xd.h 第 29 行定义.

构造及析构函数说明

◆ PolynomialXd() [1/3]

apollo::planning::PolynomialXd::PolynomialXd ( )
default

◆ PolynomialXd() [2/3]

apollo::planning::PolynomialXd::PolynomialXd ( const std::uint32_t  order)
explicit

在文件 polynomial_xd.cc 第 28 行定义.

29 : params_(order + 1, 0.0) {
30 CHECK_GE(order, 0U);
31}
std::uint32_t order() const

◆ PolynomialXd() [3/3]

apollo::planning::PolynomialXd::PolynomialXd ( const std::vector< double > &  params)
explicit

在文件 polynomial_xd.cc 第 33 行定义.

34 : params_(params) {
35 ACHECK(!params.empty());
36}
const std::vector< double > & params() const
#define ACHECK(cond)
Definition log.h:80

成员函数说明

◆ DerivedFrom()

PolynomialXd apollo::planning::PolynomialXd::DerivedFrom ( const PolynomialXd &  base)
static

在文件 polynomial_xd.cc 第 49 行定义.

49 {
50 std::vector<double> params;
51 if (base.order() <= 0) {
52 params.clear();
53 } else {
54 params.resize(base.params().size() - 1);
55 for (std::uint32_t i = 1; i < base.order() + 1; ++i) {
56 params[i - 1] = base[i] * i;
57 }
58 }
59 return PolynomialXd(params);
60}

◆ IntegratedFrom()

PolynomialXd apollo::planning::PolynomialXd::IntegratedFrom ( const PolynomialXd &  base,
const double  intercept = 0.0 
)
static

在文件 polynomial_xd.cc 第 62 行定义.

63 {
64 std::vector<double> params;
65 params.resize(base.params().size() + 1);
66 params[0] = intercept;
67 for (std::uint32_t i = 0; i < base.params().size(); ++i) {
68 params[i + 1] = base[i] / (i + 1);
69 }
70 return PolynomialXd(params);
71}

◆ operator()()

double apollo::planning::PolynomialXd::operator() ( const double  value) const

在文件 polynomial_xd.cc 第 73 行定义.

73 {
74 double result = 0.0;
75 for (auto rit = params_.rbegin(); rit != params_.rend(); ++rit) {
76 result *= value;
77 result += (*rit);
78 }
79 return result;
80}

◆ operator[]()

double apollo::planning::PolynomialXd::operator[] ( const std::uint32_t  index) const

在文件 polynomial_xd.cc 第 82 行定义.

82 {
83 if (index >= params_.size()) {
84 return 0.0;
85 } else {
86 return params_[index];
87 }
88}

◆ order()

std::uint32_t apollo::planning::PolynomialXd::order ( ) const

在文件 polynomial_xd.cc 第 38 行定义.

38 {
39 return static_cast<std::uint32_t>(params_.size()) - 1;
40}

◆ params()

const std::vector< double > & apollo::planning::PolynomialXd::params ( ) const

在文件 polynomial_xd.cc 第 47 行定义.

47{ return params_; }

◆ SetParams()

void apollo::planning::PolynomialXd::SetParams ( const std::vector< double > &  params)

在文件 polynomial_xd.cc 第 42 行定义.

42 {
43 ACHECK(!params.empty());
44 params_ = params;
45}

该类的文档由以下文件生成: