Skip to content

Commit

Permalink
Rename LinearProgramFunctor to ExponentialFunctor and add inverse var…
Browse files Browse the repository at this point in the history
…iance parameter
  • Loading branch information
vissarion committed Feb 9, 2024
1 parent c9fb177 commit f91d4a9
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions include/ode_solvers/oracle_functors.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ struct IsotropicLinearFunctor {
};


struct LinearProgramFunctor {
struct ExponentialFunctor {

// Sample from linear program c^T x (exponential density)
template <
Expand All @@ -256,8 +256,10 @@ struct LinearProgramFunctor {
NT m; // Strong convexity constant
NT kappa; // Condition number
Point c; // Coefficients of LP objective
NT a; // Inverse variance

parameters(Point c_) : order(2), L(1), m(1), kappa(1), c(c_) {};
parameters(Point c_) : order(2), L(1), m(1), kappa(1), c(c_), a(1.0) {};
parameters(Point c_, NT a_) : order(2), L(1), m(1), kappa(1), c(c_), a(a_) {};

};

Expand All @@ -277,7 +279,7 @@ struct LinearProgramFunctor {
Point operator() (unsigned int const& i, pts const& xs, NT const& t) const {
if (i == params.order - 1) {
Point y(params.c);
return (-1.0) * y;
return (-params.a) * y;
} else {
return xs[i + 1]; // returns derivative
}
Expand All @@ -298,7 +300,7 @@ struct LinearProgramFunctor {

// The index i represents the state vector index
NT operator() (Point const& x) const {
return x.dot(params.c);
return params.a * x.dot(params.c);
}

};
Expand Down

0 comments on commit f91d4a9

Please sign in to comment.