1 #ifndef __STAN__MODEL__PROB_GRAD_AD_HPP__
2 #define __STAN__MODEL__PROB_GRAD_AD_HPP__
23 std::vector<std::pair<int,int> >& param_ranges_i)
32 std::vector<int>& params_i,
33 std::ostream* output_stream = 0) = 0;
36 std::vector<int>& params_i,
37 std::vector<double>& gradient,
38 std::ostream* output_stream = 0) {
42 ad_params_r[i] = var_i;
45 double val = adLogProb.
val();
46 adLogProb.
grad(ad_params_r,gradient);
50 virtual double log_prob(std::vector<double>& params_r,
51 std::vector<int>& params_i,
52 std::ostream* output_stream = 0) {
53 std::vector<agrad::var> ad_params_r;
56 ad_params_r.push_back(var_i);
59 double val = adLogProb.
val();
Independent (input) and dependent (output) variables for gradients.
void grad(std::vector< var > &x, std::vector< double > &g)
Compute the gradient of this (dependent) variable with respect to the specified vector of (independen...
double val() const
Return the value of this variable.
prob_grad_ad(size_t num_params_r)
virtual agrad::var log_prob(std::vector< agrad::var > ¶ms_r, std::vector< int > ¶ms_i, std::ostream *output_stream=0)=0
virtual double log_prob(std::vector< double > ¶ms_r, std::vector< int > ¶ms_i, std::ostream *output_stream=0)
prob_grad_ad(size_t num_params_r, std::vector< std::pair< int, int > > ¶m_ranges_i)
virtual double grad_log_prob(std::vector< double > ¶ms_r, std::vector< int > ¶ms_i, std::vector< double > &gradient, std::ostream *output_stream=0)
The prob_grad class represents densities with fixed numbers of discrete and scalar parameters and the...
virtual size_t num_params_r()
static void recover_memory()
Recover memory used for all variables for reuse.
Probability, optimization and sampling library.