1 #ifndef __STAN__MCMC__DUALAVERAGE_H__
2 #define __STAN__MCMC__DUALAVERAGE_H__
53 void update(
const std::vector<double>& g, std::vector<double>&
xk) {
55 xk.resize(
_gbar.size());
56 double avgeta = 1.0 / (
_k + 10);
57 double xbar_avgeta =
pow(
_k, -0.75);
59 for (
size_t i = 0; i <
_gbar.size(); ++i) {
60 _gbar[i] = avgeta * g[i] + (1 - avgeta) *
_gbar[i];
65 _xbar[i] = xbar_avgeta * xk[i] + (1 - xbar_avgeta) *
_xbar[i];
75 inline void setx0(
const std::vector<double>&
x0) {
76 _x0.assign(x0.begin(), x0.end());
102 inline void xk(std::vector<double>&
xk) {
111 inline void x0(std::vector<double>&
x0) {
112 x0.assign(
_x0.begin(),
_x0.end());
119 inline int k() {
return _k; }