Automatic Differentiation
 
Loading...
Searching...
No Matches
wolfe_line_search.hpp File Reference
#include <stan/math/prim/fun/Eigen.hpp>
#include <stan/math/mix/functor/laplace_likelihood.hpp>
#include <stan/math/rev/meta.hpp>
#include <stan/math/rev/core.hpp>
#include <stan/math/rev/fun.hpp>
#include <stan/math/rev/fun/value_of.hpp>
#include <stan/math/rev/functor.hpp>
#include <stan/math/prim/fun/to_ref.hpp>
#include <stan/math/prim/fun/quad_form_diag.hpp>
#include <stan/math/prim/functor/iter_tuple_nested.hpp>
#include <algorithm>
#include <cmath>
#include <limits>
#include <tuple>
#include <type_traits>

Go to the source code of this file.

Classes

struct  stan::math::laplace_line_search_options
 Options for Wolfe line search during optimization. More...
 
struct  stan::math::internal::WolfeStatus
 Struct to hold the result status of the Wolfe line search. More...
 
struct  stan::math::internal::Eval
 evaluation struct for Wolfe line search More...
 
struct  stan::math::internal::WolfeData
 Data used in current evaluation of wolfe line search at a particular stepsize. More...
 
struct  stan::math::internal::WolfeInfo
 Data object used in wolfe line search. More...
 

Namespaces

namespace  stan
 The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation from C or the boost::math::lgamma implementation.
 
namespace  stan::math
 Matrices and templated mathematical functions.
 
namespace  stan::math::internal
 A comparator that works for any container type that has the brackets operator.
 

Enumerations

enum class  stan::math::internal::WolfeReturn : uint8_t {
  stan::math::internal::Wolfe ,
  stan::math::internal::Armijo ,
  stan::math::internal::ConvergedGradient ,
  stan::math::internal::ConvergedObjective ,
  stan::math::internal::ConvergedObjectiveAndGradient ,
  stan::math::internal::IntervalTooSmall ,
  stan::math::internal::StepTooSmall ,
  stan::math::internal::ReachedMaxStep ,
  stan::math::internal::NumericalIssue ,
  stan::math::internal::Fail ,
  stan::math::internal::Continue
}
 

Functions

template<typename Scalar >
Scalar stan::math::internal::cubic_spline (Scalar x_left, Scalar f_left, Scalar df_left, Scalar x_right, Scalar f_right, Scalar df_right) noexcept
 Selects a safeguarded trial point for maximizing a scalar function on a line.
 
template<typename Eval , typename Options >
auto stan::math::internal::cubic_spline (Eval &&low, Eval &&high, Options &&opt)
 
template<typename Option >
auto stan::math::internal::check_armijo (double obj_next, double obj_init, double alpha_next, double dir0, Option &&opt)
 
template<typename Eval , typename WolfeT , typename Option >
bool stan::math::internal::check_armijo (const Eval &eval, const WolfeT &prev, const Option &opt)
 
template<typename Option >
auto stan::math::internal::check_wolfe_curve (double dir_deriv_next, double dir_deriv_init, Option &&opt)
 
template<typename Eval , typename WolfeT , typename Option >
bool stan::math::internal::check_wolfe (const Eval &eval, const WolfeT &prev, const Option &opt)
 
auto stan::math::internal::wolfe_status_str (WolfeStatus s)
 Helper function for pretty printing.
 
template<typename Update , typename Proposal , typename Curr , typename Prev , typename Eval , typename P , typename Backoff >
auto stan::math::internal::retry_evaluate (Update &&update, Proposal &&proposal, Curr &&curr, Prev &&prev, Eval &eval, P &&p, Backoff &&backoff)
 Retry evaluation of a step until it passes a validity check.
 
template<typename Info , typename UpdateFun , typename Options , typename Stream >
WolfeStatus stan::math::internal::wolfe_line_search (Info &wolfe_info, UpdateFun &&update_fun, Options &&opt, Stream *msgs)
 Strong Wolfe line search for maximization.