本文整理汇总了C++中DoubleVector::back方法的典型用法代码示例。如果您正苦于以下问题:C++ DoubleVector::back方法的具体用法?C++ DoubleVector::back怎么用?C++ DoubleVector::back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DoubleVector
的用法示例。
在下文中一共展示了DoubleVector::back方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: predict
double predict(size_t steps) {
if (points_.empty()) {
return 0;
}
if (points_.size() != nPoints_ - 1 + nDim_) {
return points_.back();
}
for (size_t i = 0; i < nDim_; ++i) {
for (size_t j = 0; j < nPoints_; ++j) {
x_(i, j) = points_[i + j];
}
}
auto c = x_ * x_.transpose() / nPoints_;
SelfAdjointEigenSolver<MatrixXd> esC(c);
auto v = esC.eigenvectors();
// LOG(INFO) << OUTLN(esC.eigenvalues());
// LOG(INFO) << OUTLN(v);
for (size_t i = 0; i < nDim_ - 1; ++i) {
for (size_t j = 0; j < nEigen_; ++j) {
vStar_(i, j) = v(i, nDim_ - 1 - j);
}
}
for (size_t i = 0; i < nEigen_; ++i) {
vTau_(0, i) = v(nDim_ - 1, nDim_ - 1 - i);
}
auto predictionM = (vTau_ * vStar_.transpose()) / (1.0 - (vTau_ * vTau_.transpose())(0, 0));
// cout << OUTLN(predictionM) << OUTLN(predictionM.sum());
DoubleVector computed;
auto getPoint = [&](size_t index) {
if (index < points_.size()) {
return points_[index];
}
return computed[index - points_.size()];
};
for (size_t iStep = 0; iStep < steps; ++iStep) {
for (size_t i = 0; i < nDim_ - 1; ++i) {
q_(i, 0) = getPoint((nPoints_ - 1 + nDim_) + i - (nDim_ - 1) + iStep);
}
computed.emplace_back((predictionM * q_)(0, 0));
}
return computed.back();
}