Apollo 10.0
自动驾驶开放平台
apollo::perception::base::Polynomial类 参考

#include <polynomial.h>

apollo::perception::base::Polynomial 的协作图:

Public 成员函数

 Polynomial ()
 
 ~Polynomial ()
 
double & operator[] (const uint32_t &order)
 
double operator() (const double &x)
 
const std::map< uint32_t, double > & getCoeff () const
 

详细描述

在文件 polynomial.h26 行定义.

构造及析构函数说明

◆ Polynomial()

apollo::perception::base::Polynomial::Polynomial ( )

在文件 polynomial.cc22 行定义.

22{ coeff_[0] = 0.0; }

◆ ~Polynomial()

apollo::perception::base::Polynomial::~Polynomial ( )

在文件 polynomial.cc23 行定义.

23{}

成员函数说明

◆ getCoeff()

const std::map< uint32_t, double > & apollo::perception::base::Polynomial::getCoeff ( ) const

在文件 polynomial.cc25 行定义.

25 {
26 return coeff_;
27}

◆ operator()()

double apollo::perception::base::Polynomial::operator() ( const double &  x)

在文件 polynomial.cc34 行定义.

34 {
35 if (!initialized_) {
36 index_gap_.resize(coeff_.size() - 1, 0);
37 auto it = coeff_.begin();
38 auto it_previous = coeff_.begin();
39 ++it;
40 size_t idx = 0;
41 for (; it != coeff_.end(); ++it, ++it_previous) {
42 const uint32_t& order = it->first;
43 const uint32_t& order_pre = it_previous->first;
44 uint32_t gap = order - order_pre;
45 index_gap_[idx] = gap;
46 ++idx;
47 power_cache_[gap] = 0.0;
48 }
49 initialized_ = true;
50 }
51
52 for (auto& item : power_cache_) {
53 item.second = x;
54 for (size_t i = 0; i < item.first - 1; ++i) {
55 item.second *= x;
56 }
57 }
58
59 auto r_it = coeff_.rbegin();
60 double sum = r_it->second;
61 auto it_gap = index_gap_.rbegin();
62 while (it_gap != index_gap_.rend()) {
63 ++r_it;
64 sum = power_cache_[*it_gap] * sum + r_it->second;
65 ++it_gap;
66 }
67
68 return sum;
69}

◆ operator[]()

double & apollo::perception::base::Polynomial::operator[] ( const uint32_t &  order)

在文件 polynomial.cc29 行定义.

29 {
30 initialized_ = false;
31 return coeff_[order];
32}

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