![]() |
Stan
2.5.0
probability, sampling & optimization
|
Function gradients via reverse-mode automatic differentiation. More...
Classes | |
| struct | fvar |
| class | partials_vari |
| struct | OperandsAndPartials |
| A variable implementation that stores operands and derivatives with respect to the variable. More... | |
| class | chainable |
| Abstract base class for variable implementations that handles memory management and applying the chain rule. More... | |
| class | op_ddv_vari |
| class | op_dv_vari |
| class | op_dvd_vari |
| class | op_dvv_vari |
| class | op_matrix_vari |
| class | precomp_v_vari |
| class | precomputed_gradients_vari |
| This is a var implementation class that takes precomputed gradient values. More... | |
| class | op_v_vari |
| class | op_vd_vari |
| class | op_vdd_vari |
| class | op_vdv_vari |
| class | op_vector_vari |
| class | op_vv_vari |
| class | op_vvd_vari |
| class | op_vvv_vari |
| class | LDLT_alloc |
| This object stores the actual (double typed) LDLT factorization of an Eigen::Matrix<var> along with pointers to its vari's which allow the *_ldlt functions to save memory. More... | |
| class | stored_gradient_vari |
| A var implementation that stores the daughter variable implementation pointers and the partial derivative with respect to the result explicitly in arrays constructed on the auto-diff memory stack. More... | |
| class | var |
| Independent (input) and dependent (output) variables for gradients. More... | |
| class | chainable_alloc |
| A chainable_alloc is an object which is constructed and destructed normally but the memory lifespan is managed along with the arena allocator for the gradient calculation. More... | |
| class | vari |
| The variable implementation base class. More... | |
Typedefs | |
| typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > ::Index | size_type |
| typedef Eigen::Matrix< fvar < double >, Eigen::Dynamic, Eigen::Dynamic > | matrix_fd |
| typedef Eigen::Matrix< fvar < var >, Eigen::Dynamic, Eigen::Dynamic > | matrix_fv |
| typedef Eigen::Matrix< fvar < fvar< double > >, Eigen::Dynamic, Eigen::Dynamic > | matrix_ffd |
| typedef Eigen::Matrix< fvar < fvar< var > >, Eigen::Dynamic, Eigen::Dynamic > | matrix_ffv |
| typedef Eigen::Matrix< fvar < double >, Eigen::Dynamic, 1 > | vector_fd |
| typedef Eigen::Matrix< fvar < var >, Eigen::Dynamic, 1 > | vector_fv |
| typedef Eigen::Matrix< fvar < fvar< double > >, Eigen::Dynamic, 1 > | vector_ffd |
| typedef Eigen::Matrix< fvar < fvar< var > >, Eigen::Dynamic, 1 > | vector_ffv |
| typedef Eigen::Matrix< fvar < double >, 1, Eigen::Dynamic > | row_vector_fd |
| typedef Eigen::Matrix< fvar < var >, 1, Eigen::Dynamic > | row_vector_fv |
| typedef Eigen::Matrix< fvar < fvar< double > >, 1, Eigen::Dynamic > | row_vector_ffd |
| typedef Eigen::Matrix< fvar < fvar< var > >, 1, Eigen::Dynamic > | row_vector_ffv |
| typedef Eigen::Matrix< var, Eigen::Dynamic, Eigen::Dynamic > | matrix_v |
The type of a matrix holding stan::agrad::var values. More... | |
| typedef Eigen::Matrix< var, Eigen::Dynamic, 1 > | vector_v |
The type of a (column) vector holding stan::agrad::var values. More... | |
| typedef Eigen::Matrix< var, 1, Eigen::Dynamic > | row_vector_v |
The type of a row vector holding stan::agrad::var values. More... | |
Functions | |
| template<typename T , typename F > | |
| void | derivative (const F &f, const T &x, T &fx, T &dfx_dx) |
| Return the derivative of the specified univariate function at the specified argument. More... | |
| template<typename T , typename F > | |
| void | partial_derivative (const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, int n, T &fx, T &dfx_dxn) |
| Return the partial derivative of the specified multiivariate function at the specified argument. More... | |
| template<typename F > | |
| void | gradient (const F &f, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &x, double &fx, Eigen::Matrix< double, Eigen::Dynamic, 1 > &grad_fx) |
| Calculate the value and the gradient of the specified function at the specified argument. More... | |
| template<typename T , typename F > | |
| void | gradient (const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, T &fx, Eigen::Matrix< T, Eigen::Dynamic, 1 > &grad_fx) |
| template<typename F > | |
| void | jacobian (const F &f, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &x, Eigen::Matrix< double, Eigen::Dynamic, 1 > &fx, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > &J) |
| template<typename T , typename F > | |
| void | jacobian (const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &fx, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &J) |
| template<typename F > | |
| void | hessian (const F &f, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &x, double &fx, Eigen::Matrix< double, Eigen::Dynamic, 1 > &grad, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > &H) |
| template<typename T , typename F > | |
| void | hessian (const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, T &fx, Eigen::Matrix< T, Eigen::Dynamic, 1 > &grad, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &H) |
| template<typename T1 , typename T2 , typename F > | |
| void | gradient_dot_vector (const F &f, const Eigen::Matrix< T1, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< T2, Eigen::Dynamic, 1 > &v, T1 &fx, T1 &grad_fx_dot_v) |
| template<typename F > | |
| void | hessian_times_vector (const F &f, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &v, double &fx, Eigen::Matrix< double, Eigen::Dynamic, 1 > &Hv) |
| template<typename T , typename F > | |
| void | hessian_times_vector (const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &v, T &fx, Eigen::Matrix< T, Eigen::Dynamic, 1 > &Hv) |
| template<typename F > | |
| void | grad_tr_mat_times_hessian (const F &f, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > &M, Eigen::Matrix< double, Eigen::Dynamic, 1 > &grad_tr_MH) |
| template<typename T > | |
| fvar< T > | abs (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | acos (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | acosh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | asin (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | asinh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | atan (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | atan2 (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | atan2 (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | atan2 (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | atanh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | bessel_first_kind (int v, const fvar< T > &z) |
| template<typename T > | |
| fvar< T > | bessel_second_kind (int v, const fvar< T > &z) |
| template<typename T > | |
| fvar< T > | binary_log_loss (const int y, const fvar< T > &y_hat) |
| template<typename T > | |
| fvar< T > | binomial_coefficient_log (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | binomial_coefficient_log (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | binomial_coefficient_log (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | cbrt (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | ceil (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | cos (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | cosh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | digamma (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | erf (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | erfc (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | exp (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | exp2 (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | expm1 (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | fabs (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | falling_factorial (const fvar< T > &x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | falling_factorial (const fvar< T > &x, const double n) |
| template<typename T > | |
| fvar< T > | falling_factorial (const double x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | fdim (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fdim (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | fdim (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | floor (const fvar< T > &x) |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const fvar< T1 > &x1, const fvar< T2 > &x2, const fvar< T3 > &x3) |
| The fused multiply-add operation (C99). More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const T1 &x1, const fvar< T2 > &x2, const fvar< T3 > &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const fvar< T1 > &x1, const T2 &x2, const fvar< T3 > &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const fvar< T1 > &x1, const fvar< T2 > &x2, const T3 &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const T1 &x1, const T2 &x2, const fvar< T3 > &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const fvar< T1 > &x1, const T2 &x2, const T3 &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T1 , typename T2 , typename T3 > | |
| fvar< typename stan::return_type< T1, T2, T3 > ::type > | fma (const T1 &x1, const fvar< T2 > &x2, const T3 &x3) |
| See all-var input signature for details on the function and derivatives. More... | |
| template<typename T > | |
| fvar< T > | fmax (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fmax (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fmax (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | fmin (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fmin (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fmin (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | fmod (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | fmod (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | fmod (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | gamma_p (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | gamma_p (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | gamma_p (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | gamma_q (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | gamma_q (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | gamma_q (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | hypot (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | hypot (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | hypot (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | inv (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | inv_cloglog (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | inv_logit (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | inv_sqrt (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | inv_square (const fvar< T > &x) |
| template<typename T > | |
| int | is_inf (const fvar< T > &x) |
| Returns 1 if the input's value is infinite and 0 otherwise. More... | |
| template<typename T > | |
| int | is_nan (const fvar< T > &x) |
| Returns 1 if the input's value is NaN and 0 otherwise. More... | |
| template<typename T > | |
| fvar< T > | lbeta (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | lbeta (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | lbeta (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | lgamma (const fvar< T > &x) |
| template<typename T > | |
| fvar< typename stan::return_type< T, int > ::type > | lmgamma (int x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | log (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log10 (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log1m (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log1m_exp (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log1m_inv_logit (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log1p (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log1p_exp (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log2 (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log_diff_exp (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T1 , typename T2 > | |
| fvar< T2 > | log_diff_exp (const T1 &x1, const fvar< T2 > &x2) |
| template<typename T1 , typename T2 > | |
| fvar< T1 > | log_diff_exp (const fvar< T1 > &x1, const T2 &x2) |
| template<typename T > | |
| fvar< T > | log_falling_factorial (const fvar< T > &x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | log_falling_factorial (const double x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | log_falling_factorial (const fvar< T > &x, const double n) |
| template<typename T > | |
| fvar< T > | log_inv_logit (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | log_rising_factorial (const fvar< T > &x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | log_rising_factorial (const fvar< T > &x, const double n) |
| template<typename T > | |
| fvar< T > | log_rising_factorial (const double x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | log_sum_exp (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | log_sum_exp (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | log_sum_exp (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | log_sum_exp (const std::vector< fvar< T > > &v) |
| template<typename T > | |
| fvar< T > | logit (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | modified_bessel_first_kind (int v, const fvar< T > &z) |
| template<typename T > | |
| fvar< T > | modified_bessel_second_kind (int v, const fvar< T > &z) |
| template<typename T > | |
| fvar< T > | multiply_log (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | multiply_log (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | multiply_log (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | owens_t (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | owens_t (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | owens_t (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | Phi (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | pow (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | pow (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | pow (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| double | primitive_value (const fvar< T > &v) |
| Return the primitive value of the specified forward-mode autodiff variable. More... | |
| template<typename T > | |
| fvar< T > | rising_factorial (const fvar< T > &x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | rising_factorial (const fvar< T > &x, const double n) |
| template<typename T > | |
| fvar< T > | rising_factorial (const double x, const fvar< T > &n) |
| template<typename T > | |
| fvar< T > | round (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | sin (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | sinh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | sqrt (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | square (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | tan (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | tanh (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | tgamma (const fvar< T > &x) |
| template<typename T > | |
| fvar< T > | trunc (const fvar< T > &x) |
| template<typename T > | |
| T | value_of (const fvar< T > &v) |
| Return the value of the specified variable. More... | |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, 1, C1 > | columns_dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, 1, C1 > | columns_dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< double, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, 1, C1 > | columns_dot_product (const Eigen::Matrix< double, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, 1, C > | columns_dot_self (const Eigen::Matrix< fvar< T >, R, C > &x) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, C, C > | crossprod (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T , int R, int C> | |
| fvar< T > | determinant (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T1 , typename T2 > | |
| stan::return_type< T1, T2 >::type | divide (const T1 &v, const T2 &c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | divide (const Eigen::Matrix< fvar< T >, R, C > &v, const fvar< T > &c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | divide (const Eigen::Matrix< fvar< T >, R, C > &v, const double c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | divide (const Eigen::Matrix< double, R, C > &v, const fvar< T > &c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | operator/ (const Eigen::Matrix< fvar< T >, R, C > &v, const fvar< T > &c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | operator/ (const Eigen::Matrix< fvar< T >, R, C > &v, const double c) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | operator/ (const Eigen::Matrix< double, R, C > &v, const fvar< T > &c) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< double, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< double, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2, size_type &length) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< double, R2, C2 > &v2, size_type &length) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| fvar< T > | dot_product (const Eigen::Matrix< double, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2, size_type &length) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< fvar< T > > &v1, const std::vector< fvar< T > > &v2) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< double > &v1, const std::vector< fvar< T > > &v2) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< fvar< T > > &v1, const std::vector< double > &v2) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< fvar< T > > &v1, const std::vector< fvar< T > > &v2, size_type &length) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< double > &v1, const std::vector< fvar< T > > &v2, size_type &length) |
| template<typename T > | |
| fvar< T > | dot_product (const std::vector< fvar< T > > &v1, const std::vector< double > &v2, size_type &length) |
| template<typename T , int R, int C> | |
| fvar< T > | dot_self (const Eigen::Matrix< fvar< T >, R, C > &v) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | inverse (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T , int R, int C> | |
| fvar< T > | log_determinant (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T > | |
| Eigen::Matrix< fvar< T > , Eigen::Dynamic, 1 > | log_softmax (const Eigen::Matrix< fvar< T >, Eigen::Dynamic, 1 > &alpha) |
| template<typename T , int R, int C> | |
| fvar< T > | log_sum_exp (const Eigen::Matrix< fvar< T >, R, C > &v) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_left (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_left (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_left (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2, typename T2 > | |
| Eigen::Matrix< fvar< T2 >, R1, C2 > | mdivide_left_ldlt (const stan::math::LDLT_factor< double, R1, C1 > &A, const Eigen::Matrix< fvar< T2 >, R2, C2 > &b) |
| Returns the solution of the system Ax=b given an LDLT_factor of A. More... | |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | mdivide_left_tri_low (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | mdivide_left_tri_low (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | mdivide_left_tri_low (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_right (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_right (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_right (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | mdivide_right_tri_low (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_right_tri_low (const Eigen::Matrix< fvar< T >, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | mdivide_right_tri_low (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< fvar< T >, R2, C2 > &b) |
| template<typename T , int R1, int C1> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | multiply (const Eigen::Matrix< fvar< T >, R1, C1 > &m, const fvar< T > &c) |
| template<typename T , int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R2, C2 > | multiply (const Eigen::Matrix< fvar< T >, R2, C2 > &m, const double c) |
| template<typename T , int R1, int C1> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | multiply (const Eigen::Matrix< double, R1, C1 > &m, const fvar< T > &c) |
| template<typename T , int R1, int C1> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | multiply (const fvar< T > &c, const Eigen::Matrix< fvar< T >, R1, C1 > &m) |
| template<typename T , int R1, int C1> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | multiply (const double c, const Eigen::Matrix< fvar< T >, R1, C1 > &m) |
| template<typename T , int R1, int C1> | |
| Eigen::Matrix< fvar< T >, R1, C1 > | multiply (const fvar< T > &c, const Eigen::Matrix< double, R1, C1 > &m) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | multiply (const Eigen::Matrix< fvar< T >, R1, C1 > &m1, const Eigen::Matrix< fvar< T >, R2, C2 > &m2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | multiply (const Eigen::Matrix< fvar< T >, R1, C1 > &m1, const Eigen::Matrix< double, R2, C2 > &m2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, C2 > | multiply (const Eigen::Matrix< double, R1, C1 > &m1, const Eigen::Matrix< fvar< T >, R2, C2 > &m2) |
| template<typename T , int C1, int R2> | |
| fvar< T > | multiply (const Eigen::Matrix< fvar< T >, 1, C1 > &rv, const Eigen::Matrix< fvar< T >, R2, 1 > &v) |
| template<typename T , int C1, int R2> | |
| fvar< T > | multiply (const Eigen::Matrix< fvar< T >, 1, C1 > &rv, const Eigen::Matrix< double, R2, 1 > &v) |
| template<typename T , int C1, int R2> | |
| fvar< T > | multiply (const Eigen::Matrix< double, 1, C1 > &rv, const Eigen::Matrix< fvar< T >, R2, 1 > &v) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, R > | multiply_lower_tri_self_transpose (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T > | |
| Eigen::Matrix< fvar< T > , Eigen::Dynamic, Eigen::Dynamic > | qr_Q (const Eigen::Matrix< fvar< T >, Eigen::Dynamic, Eigen::Dynamic > &m) |
| template<typename T > | |
| Eigen::Matrix< fvar< T > , Eigen::Dynamic, Eigen::Dynamic > | qr_R (const Eigen::Matrix< fvar< T >, Eigen::Dynamic, Eigen::Dynamic > &m) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, 1 > | rows_dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, 1 > | rows_dot_product (const Eigen::Matrix< double, R1, C1 > &v1, const Eigen::Matrix< fvar< T >, R2, C2 > &v2) |
| template<typename T , int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< fvar< T >, R1, 1 > | rows_dot_product (const Eigen::Matrix< fvar< T >, R1, C1 > &v1, const Eigen::Matrix< double, R2, C2 > &v2) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, 1 > | rows_dot_self (const Eigen::Matrix< fvar< T >, R, C > &x) |
| template<typename T > | |
| Eigen::Matrix< fvar< T > , Eigen::Dynamic, 1 > | softmax (const Eigen::Matrix< fvar< T >, Eigen::Dynamic, 1 > &alpha) |
| template<typename T > | |
| std::vector< fvar< T > > | sort_asc (std::vector< fvar< T > > xs) |
| template<typename T > | |
| std::vector< fvar< T > > | sort_desc (std::vector< fvar< T > > xs) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | sort_asc (Eigen::Matrix< fvar< T >, R, C > xs) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | sort_desc (Eigen::Matrix< fvar< T >, R, C > xs) |
| template<typename T , int R, int C> | |
| fvar< T > | sum (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, R > | tcrossprod (const Eigen::Matrix< fvar< T >, R, C > &m) |
| template<typename T > | |
| fvar< T > | to_fvar (const T &x) |
| template<typename T > | |
| fvar< T > | to_fvar (const fvar< T > &x) |
| matrix_fd | to_fvar (const stan::math::matrix_d &m) |
| matrix_fd | to_fvar (const matrix_fd &m) |
| matrix_fv | to_fvar (const matrix_fv &m) |
| matrix_ffd | to_fvar (const matrix_ffd &m) |
| matrix_ffv | to_fvar (const matrix_ffv &m) |
| vector_fd | to_fvar (const stan::math::vector_d &v) |
| vector_fd | to_fvar (const vector_fd &v) |
| vector_fv | to_fvar (const vector_fv &v) |
| vector_ffd | to_fvar (const vector_ffd &v) |
| vector_ffv | to_fvar (const vector_ffv &v) |
| row_vector_fd | to_fvar (const stan::math::row_vector_d &rv) |
| row_vector_fd | to_fvar (const row_vector_fd &rv) |
| row_vector_fv | to_fvar (const row_vector_fv &rv) |
| row_vector_ffd | to_fvar (const row_vector_ffd &rv) |
| row_vector_ffv | to_fvar (const row_vector_ffv &rv) |
| template<typename T , int R, int C> | |
| Eigen::Matrix< fvar< T >, R, C > | to_fvar (const Eigen::Matrix< T, R, C > &val, const Eigen::Matrix< T, R, C > &deriv) |
| template<int RD, int CD, int RA, int CA, int RB, int CB, typename T > | |
| fvar< T > | trace_gen_quad_form (const Eigen::Matrix< fvar< T >, RD, CD > &D, const Eigen::Matrix< fvar< T >, RA, CA > &A, const Eigen::Matrix< fvar< T >, RB, CB > &B) |
| template<int RA, int CA, int RB, int CB, typename T > | |
| stan::agrad::fvar< T > | trace_quad_form (const Eigen::Matrix< stan::agrad::fvar< T >, RA, CA > &A, const Eigen::Matrix< stan::agrad::fvar< T >, RB, CB > &B) |
| template<typename T > | |
| fvar< T > | operator+ (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator+ (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator+ (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | operator/ (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator/ (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | operator/ (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| bool | operator== (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator== (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator== (double x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator> (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator> (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator> (double x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator>= (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator>= (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator>= (double x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator< (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator< (double x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator< (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator<= (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator<= (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator<= (double x, const fvar< T > &y) |
| template<typename T > | |
| fvar< T > | operator* (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator* (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator* (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| bool | operator!= (const fvar< T > &x, const fvar< T > &y) |
| template<typename T > | |
| bool | operator!= (const fvar< T > &x, double y) |
| template<typename T > | |
| bool | operator!= (double x, const fvar< T > &y) |
| template<typename T > | |
| fvar< T > | operator- (const fvar< T > &x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator- (const double x1, const fvar< T > &x2) |
| template<typename T > | |
| fvar< T > | operator- (const fvar< T > &x1, const double x2) |
| template<typename T > | |
| fvar< T > | operator- (const fvar< T > &x) |
| double | calculate_chain (const double &x, const double &val) |
| static void | set_zero_all_adjoints () |
| Reset all adjoint values in the stack to zero. More... | |
| static void | grad (chainable *vi) |
| Compute the gradient for all variables starting from the specified root variable implementation. More... | |
| template<typename T_result , class Policy > | |
| bool | check_pos_definite (const char *function, const Eigen::Matrix< var, Eigen::Dynamic, Eigen::Dynamic > &y, const char *name, T_result *result, const Policy &) |
| var | abs (const var &a) |
| Return the absolute value of the variable (std). More... | |
| var | acos (const var &a) |
| Return the principal value of the arc cosine of a variable, in radians (cmath). More... | |
| var | acosh (const stan::agrad::var &a) |
| The inverse hyperbolic cosine function for variables (C99). More... | |
| int | as_bool (const agrad::var &v) |
| Return 1 if the argument is unequal to zero and 0 otherwise. More... | |
| var | asin (const var &a) |
| Return the principal value of the arc sine, in radians, of the specified variable (cmath). More... | |
| var | asinh (const stan::agrad::var &a) |
| The inverse hyperbolic sine function for variables (C99). More... | |
| var | atan (const var &a) |
| Return the principal value of the arc tangent, in radians, of the specified variable (cmath). More... | |
| var | atan2 (const var &a, const var &b) |
| Return the principal value of the arc tangent, in radians, of the first variable divided by the second (cmath). More... | |
| var | atan2 (const var &a, const double b) |
| Return the principal value of the arc tangent, in radians, of the first variable divided by the second scalar (cmath). More... | |
| var | atan2 (const double a, const var &b) |
| Return the principal value of the arc tangent, in radians, of the first scalar divided by the second variable (cmath). More... | |
| var | atanh (const stan::agrad::var &a) |
| The inverse hyperbolic tangent function for variables (C99). More... | |
| var | bessel_first_kind (const int &v, const var &a) |
| var | bessel_second_kind (const int &v, const var &a) |
| var | binary_log_loss (const int y, const stan::agrad::var &y_hat) |
| The log loss function for variables (stan). More... | |
| var | cbrt (const stan::agrad::var &a) |
| Returns the cube root of the specified variable (C99). More... | |
| var | ceil (const var &a) |
| Return the ceiling of the specified variable (cmath). More... | |
| var | cos (const var &a) |
| Return the cosine of a radian-scaled variable (cmath). More... | |
| var | cosh (const var &a) |
| Return the hyperbolic cosine of the specified variable (cmath). More... | |
| var | digamma (const stan::agrad::var &a) |
| var | erf (const stan::agrad::var &a) |
| The error function for variables (C99). More... | |
| var | erfc (const stan::agrad::var &a) |
| The complementary error function for variables (C99). More... | |
| var | exp (const var &a) |
| Return the exponentiation of the specified variable (cmath). More... | |
| var | exp2 (const stan::agrad::var &a) |
| Exponentiation base 2 function for variables (C99). More... | |
| var | expm1 (const stan::agrad::var &a) |
| The exponentiation of the specified variable minus 1 (C99). More... | |
| var | fabs (const var &a) |
| Return the absolute value of the variable (cmath). More... | |
| var | falling_factorial (const var &a, const double &b) |
| var | falling_factorial (const var &a, const var &b) |
| var | falling_factorial (const double &a, const var &b) |
| var | fdim (const stan::agrad::var &a, const stan::agrad::var &b) |
| Return the positive difference between the first variable's the value and the second's (C99). More... | |
| var | fdim (const double &a, const stan::agrad::var &b) |
| Return the positive difference between the first value and the value of the second variable (C99). More... | |
| var | fdim (const stan::agrad::var &a, const double &b) |
| Return the positive difference between the first variable's value and the second value (C99). More... | |
| var | floor (const var &a) |
| Return the floor of the specified variable (cmath). More... | |
| var | fma (const stan::agrad::var &a, const stan::agrad::var &b, const stan::agrad::var &c) |
| The fused multiply-add function for three variables (C99). More... | |
| var | fma (const stan::agrad::var &a, const stan::agrad::var &b, const double &c) |
| The fused multiply-add function for two variables and a value (C99). More... | |
| var | fma (const stan::agrad::var &a, const double &b, const stan::agrad::var &c) |
| The fused multiply-add function for a variable, value, and variable (C99). More... | |
| var | fma (const stan::agrad::var &a, const double &b, const double &c) |
| The fused multiply-add function for a variable and two values (C99). More... | |
| var | fma (const double &a, const stan::agrad::var &b, const double &c) |
| The fused multiply-add function for a value, variable, and value (C99). More... | |
| var | fma (const double &a, const double &b, const stan::agrad::var &c) |
| The fused multiply-add function for two values and a variable, and value (C99). More... | |
| var | fma (const double &a, const stan::agrad::var &b, const stan::agrad::var &c) |
| The fused multiply-add function for a value and two variables (C99). More... | |
| var | fmax (const stan::agrad::var &a, const stan::agrad::var &b) |
| Returns the maximum of the two variable arguments (C99). More... | |
| var | fmax (const stan::agrad::var &a, const double &b) |
| Returns the maximum of the variable and scalar, promoting the scalar to a variable if it is larger (C99). More... | |
| var | fmax (const double &a, const stan::agrad::var &b) |
| Returns the maximum of a scalar and variable, promoting the scalar to a variable if it is larger (C99). More... | |
| var | fmin (const stan::agrad::var &a, const stan::agrad::var &b) |
| Returns the minimum of the two variable arguments (C99). More... | |
| var | fmin (const stan::agrad::var &a, const double &b) |
| Returns the minimum of the variable and scalar, promoting the scalar to a variable if it is larger (C99). More... | |
| var | fmin (const double &a, const stan::agrad::var &b) |
| Returns the minimum of a scalar and variable, promoting the scalar to a variable if it is larger (C99). More... | |
| var | fmod (const var &a, const var &b) |
| Return the floating point remainder after dividing the first variable by the second (cmath). More... | |
| var | fmod (const var &a, const double b) |
| Return the floating point remainder after dividing the the first variable by the second scalar (cmath). More... | |
| var | fmod (const double a, const var &b) |
| Return the floating point remainder after dividing the first scalar by the second variable (cmath). More... | |
| var | gamma_p (const stan::agrad::var &a, const stan::agrad::var &b) |
| var | gamma_p (const stan::agrad::var &a, const double &b) |
| var | gamma_p (const double &a, const stan::agrad::var &b) |
| var | gamma_q (const stan::agrad::var &a, const stan::agrad::var &b) |
| var | gamma_q (const stan::agrad::var &a, const double &b) |
| var | gamma_q (const double &a, const stan::agrad::var &b) |
| var | hypot (const stan::agrad::var &a, const stan::agrad::var &b) |
| Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99). More... | |
| var | hypot (const stan::agrad::var &a, const double &b) |
| Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99). More... | |
| var | hypot (const double &a, const stan::agrad::var &b) |
| Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99). More... | |
| var | ibeta (const var &a, const var &b, const var &x) |
| The normalized incomplete beta function of a, b, and x. More... | |
| var | if_else (bool c, const var &y_true, const var &y_false) |
| If the specified condition is true, return the first variable, otherwise return the second variable. More... | |
| var | if_else (bool c, double y_true, const var &y_false) |
| If the specified condition is true, return a new variable constructed from the first scalar, otherwise return the second variable. More... | |
| var | if_else (bool c, const var &y_true, const double y_false) |
| If the specified condition is true, return the first variable, otherwise return a new variable constructed from the second scalar. More... | |
| var | inv (const var &a) |
| |
| var | inv_cloglog (const stan::agrad::var &a) |
| Return the inverse complementary log-log function applied specified variable (stan). More... | |
| var | inv_logit (const stan::agrad::var &a) |
| The inverse logit function for variables (stan). More... | |
| var | inv_sqrt (const var &a) |
| |
| var | inv_square (const var &a) |
| |
| int | is_inf (const var &v) |
| Returns 1 if the input's value is infinite and 0 otherwise. More... | |
| int | is_nan (const var &v) |
| Returns 1 if the input's value is NaN and 0 otherwise. More... | |
| bool | is_uninitialized (var x) |
Returns true if the specified variable is uninitialized. More... | |
| var | lgamma (const stan::agrad::var &a) |
| The log gamma function for variables (C99). More... | |
| var | lmgamma (int a, const stan::agrad::var &b) |
| var | log (const var &a) |
| Return the natural log of the specified variable (cmath). More... | |
| var | log10 (const var &a) |
| Return the base 10 log of the specified variable (cmath). More... | |
| var | log1m (const stan::agrad::var &a) |
| The log (1 - x) function for variables. More... | |
| var | log1m_exp (const stan::agrad::var &a) |
| Return the log of 1 minus the exponential of the specified variable. More... | |
| var | log1p (const stan::agrad::var &a) |
| The log (1 + x) function for variables (C99). More... | |
| var | log1p_exp (const stan::agrad::var &a) |
| Return the log of 1 plus the exponential of the specified variable. More... | |
| var | log2 (const stan::agrad::var &a) |
| Returns the base 2 logarithm of the specified variable (C99). More... | |
| var | log_diff_exp (const stan::agrad::var &a, const stan::agrad::var &b) |
| Returns the log sum of exponentials. More... | |
| var | log_diff_exp (const stan::agrad::var &a, const double &b) |
| Returns the log sum of exponentials. More... | |
| var | log_diff_exp (const double &a, const stan::agrad::var &b) |
| Returns the log sum of exponentials. More... | |
| var | log_falling_factorial (const var &a, const double &b) |
| var | log_falling_factorial (const var &a, const var &b) |
| var | log_falling_factorial (const double &a, const var &b) |
| var | log_rising_factorial (const var &a, const double &b) |
| var | log_rising_factorial (const var &a, const var &b) |
| var | log_rising_factorial (const double &a, const var &b) |
| var | log_sum_exp (const stan::agrad::var &a, const stan::agrad::var &b) |
| Returns the log sum of exponentials. More... | |
| var | log_sum_exp (const stan::agrad::var &a, const double &b) |
| Returns the log sum of exponentials. More... | |
| var | log_sum_exp (const double &a, const stan::agrad::var &b) |
| Returns the log sum of exponentials. More... | |
| var | log_sum_exp (const std::vector< var > &x) |
| Returns the log sum of exponentials. More... | |
| var | modified_bessel_first_kind (const int &v, const var &a) |
| var | modified_bessel_second_kind (const int &v, const var &a) |
| var | multiply_log (const var &a, const var &b) |
| Return the value of a*log(b). More... | |
| var | multiply_log (const var &a, const double b) |
| Return the value of a*log(b). More... | |
| var | multiply_log (const double a, const var &b) |
| Return the value of a*log(b). More... | |
| var | owens_t (const var &h, const var &a) |
| The Owen's T function of h and a. More... | |
| var | owens_t (const var &h, const double &a) |
| The Owen's T function of h and a. More... | |
| var | owens_t (const double &h, const var &a) |
| The Owen's T function of h and a. More... | |
| var | Phi (const stan::agrad::var &a) |
| The unit normal cumulative density function for variables (stan). More... | |
| var | Phi_approx (const stan::agrad::var &a) |
| Approximation of the unit normal CDF for variables (stan). More... | |
| var | pow (const var &base, const var &exponent) |
| Return the base raised to the power of the exponent (cmath). More... | |
| var | pow (const var &base, const double exponent) |
| Return the base variable raised to the power of the exponent scalar (cmath). More... | |
| var | pow (const double base, const var &exponent) |
| Return the base scalar raised to the power of the exponent variable (cmath). More... | |
| double | primitive_value (const agrad::var &v) |
| Return the primitive double value for the specified auto-diff variable. More... | |
| var | rising_factorial (const var &a, const double &b) |
| var | rising_factorial (const var &a, const var &b) |
| var | rising_factorial (const double &a, const var &b) |
| var | round (const stan::agrad::var &a) |
| Returns the rounded form of the specified variable (C99). More... | |
| var | sin (const var &a) |
| Return the sine of a radian-scaled variable (cmath). More... | |
| var | sinh (const var &a) |
| Return the hyperbolic sine of the specified variable (cmath). More... | |
| var | sqrt (const var &a) |
| Return the square root of the specified variable (cmath). More... | |
| var | square (const var &x) |
| Return the square of the input variable. More... | |
| var | step (const stan::agrad::var &a) |
| Return the step, or heaviside, function applied to the specified variable (stan). More... | |
| var | tan (const var &a) |
| Return the tangent of a radian-scaled variable (cmath). More... | |
| var | tanh (const var &a) |
| Return the hyperbolic tangent of the specified variable (cmath). More... | |
| var | tgamma (const stan::agrad::var &a) |
| Return the Gamma function applied to the specified variable (C99). More... | |
| var | trunc (const stan::agrad::var &a) |
| Returns the truncatation of the specified variable (C99). More... | |
| double | value_of (const agrad::var &v) |
| Return the value of the specified variable. More... | |
| var | precomputed_gradients (const double value, const std::vector< var > &vars, const std::vector< double > &gradients) |
| This function is provided for Stan users that want to compute gradients without using Stan's auto-diff. More... | |
| matrix_v | crossprod (const matrix_v &M) |
| Returns the result of pre-multiplying a matrix by its own transpose. More... | |
| template<int R, int C> | |
| var | determinant (const Eigen::Matrix< var, R, C > &m) |
| double | divide (double x, double y) |
| Return the division of the first scalar by the second scalar. More... | |
| template<typename T1 , typename T2 > | |
| var | divide (const T1 &v, const T2 &c) |
| template<typename T1 , typename T2 , int R, int C> | |
| Eigen::Matrix< var, R, C > | divide (const Eigen::Matrix< T1, R, C > &v, const T2 &c) |
| Return the division of the specified column vector by the specified scalar. More... | |
| template<typename T1 , int R1, int C1, typename T2 , int R2, int C2> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, var >::type | dot_product (const Eigen::Matrix< T1, R1, C1 > &v1, const Eigen::Matrix< T2, R2, C2 > &v2) |
| Returns the dot product. More... | |
| template<typename T1 , typename T2 > | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, var >::type | dot_product (const T1 *v1, const T2 *v2, size_t length) |
| Returns the dot product. More... | |
| template<typename T1 , typename T2 > | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, var >::type | dot_product (const std::vector< T1 > &v1, const std::vector< T2 > &v2) |
| Returns the dot product. More... | |
| template<typename T1 , int R1, int C1, typename T2 , int R2, int C2> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, Eigen::Matrix < var, 1, C1 > >::type | columns_dot_product (const Eigen::Matrix< T1, R1, C1 > &v1, const Eigen::Matrix< T2, R2, C2 > &v2) |
| template<typename T1 , int R1, int C1, typename T2 , int R2, int C2> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, Eigen::Matrix < var, R1, 1 > >::type | rows_dot_product (const Eigen::Matrix< T1, R1, C1 > &v1, const Eigen::Matrix< T2, R2, C2 > &v2) |
| template<int R, int C> | |
| var | dot_self (const Eigen::Matrix< var, R, C > &v) |
| Returns the dot product of a vector with itself. More... | |
| template<int R, int C> | |
| Eigen::Matrix< var, 1, C > | columns_dot_self (const Eigen::Matrix< var, R, C > &x) |
| Returns the dot product of each column of a matrix with itself. More... | |
| void | grad (var &v, Eigen::Matrix< var, Eigen::Dynamic, 1 > &x, Eigen::VectorXd &g) |
| Propagate chain rule to calculate gradients starting from the specified variable. More... | |
| void | initialize_variable (var &variable, const var &value) |
| Initialize variable to value. More... | |
| template<int R, int C> | |
| void | initialize_variable (Eigen::Matrix< var, R, C > &matrix, const var &value) |
| Initialize every cell in the matrix to the specified value. More... | |
| template<typename T > | |
| void | initialize_variable (std::vector< T > &variables, const var &value) |
| Initialize the variables in the standard vector recursively. More... | |
| template<int R, int C> | |
| var | log_determinant (const Eigen::Matrix< var, R, C > &m) |
| template<int R, int C> | |
| var | log_determinant_ldlt (stan::math::LDLT_factor< var, R, C > &A) |
| template<int R, int C> | |
| var | log_determinant_spd (const Eigen::Matrix< var, R, C > &m) |
| Eigen::Matrix< var, Eigen::Dynamic, 1 > | log_softmax (const Eigen::Matrix< var, Eigen::Dynamic, 1 > &alpha) |
| Return the softmax of the specified Eigen vector. More... | |
| template<int R, int C> | |
| var | log_sum_exp (const Eigen::Matrix< var, R, C > &x) |
| Returns the log sum of exponentials. More... | |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_ldlt (const stan::math::LDLT_factor< var, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| Returns the solution of the system Ax=b given an LDLT_factor of A. More... | |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_ldlt (const stan::math::LDLT_factor< var, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| Returns the solution of the system Ax=b given an LDLT_factor of A. More... | |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_ldlt (const stan::math::LDLT_factor< double, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| Returns the solution of the system Ax=b given an LDLT_factor of A. More... | |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_spd (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_spd (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_spd (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int TriView, int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_tri (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int TriView, int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_tri (const Eigen::Matrix< double, R1, C1 > &A, const Eigen::Matrix< var, R2, C2 > &b) |
| template<int TriView, int R1, int C1, int R2, int C2> | |
| Eigen::Matrix< var, R1, C2 > | mdivide_left_tri (const Eigen::Matrix< var, R1, C1 > &A, const Eigen::Matrix< double, R2, C2 > &b) |
| template<typename T1 , typename T2 > | |
| boost::enable_if_c < (boost::is_scalar< T1 > ::value||boost::is_same< T1, var >::value)&&(boost::is_scalar < T2 >::value||boost::is_same < T2, var >::value), typename boost::math::tools::promote_args < T1, T2 >::type >::type | multiply (const T1 &v, const T2 &c) |
| Return the product of two scalars. More... | |
| template<typename T1 , typename T2 , int R2, int C2> | |
| Eigen::Matrix< var, R2, C2 > | multiply (const T1 &c, const Eigen::Matrix< T2, R2, C2 > &m) |
| Return the product of scalar and matrix. More... | |
| template<typename T1 , int R1, int C1, typename T2 > | |
| Eigen::Matrix< var, R1, C1 > | multiply (const Eigen::Matrix< T1, R1, C1 > &m, const T2 &c) |
| Return the product of scalar and matrix. More... | |
| template<typename T1 , int R1, int C1, typename T2 , int R2, int C2> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, Eigen::Matrix < var, R1, C2 > >::type | multiply (const Eigen::Matrix< T1, R1, C1 > &m1, const Eigen::Matrix< T2, R2, C2 > &m2) |
| Return the product of the specified matrices. More... | |
| template<typename T1 , int C1, typename T2 , int R2> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value, var >::type | multiply (const Eigen::Matrix< T1, 1, C1 > &rv, const Eigen::Matrix< T2, R2, 1 > &v) |
| Return the scalar product of the specified row vector and specified column vector. More... | |
| matrix_v | multiply_lower_tri_self_transpose (const matrix_v &L) |
| template<typename TA , int RA, int CA, typename TB , int RB, int CB> | |
| boost::enable_if_c < boost::is_same< TA, var > ::value||boost::is_same< TB, var >::value, Eigen::Matrix < var, CB, CB > >::type | quad_form (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, CB > &B) |
| template<typename TA , int RA, int CA, typename TB , int RB> | |
| boost::enable_if_c < boost::is_same< TA, var > ::value||boost::is_same< TB, var >::value, var >::type | quad_form (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, 1 > &B) |
| template<typename TA , int RA, int CA, typename TB , int RB, int CB> | |
| boost::enable_if_c < boost::is_same< TA, var > ::value||boost::is_same< TB, var >::value, Eigen::Matrix < var, CB, CB > >::type | quad_form_sym (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, CB > &B) |
| template<typename TA , int RA, int CA, typename TB , int RB> | |
| boost::enable_if_c < boost::is_same< TA, var > ::value||boost::is_same< TB, var >::value, var >::type | quad_form_sym (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, 1 > &B) |
| var | sd (const std::vector< var > &v) |
| Return the sample standard deviation of the specified standard vector. More... | |
| template<int R, int C> | |
| var | sd (const Eigen::Matrix< var, R, C > &m) |
| Eigen::Matrix< var, Eigen::Dynamic, 1 > | softmax (const Eigen::Matrix< var, Eigen::Dynamic, 1 > &alpha) |
| Return the softmax of the specified Eigen vector. More... | |
| std::vector< var > | sort_asc (std::vector< var > xs) |
| Return the specified standard vector in ascending order with gradients kept. More... | |
| std::vector< var > | sort_desc (std::vector< var > xs) |
| Return the specified standard vector in descending order with gradients kept. More... | |
| template<int R, int C> | |
| Eigen::Matrix< var, R, C > | sort_asc (Eigen::Matrix< var, R, C > xs) |
| Return the specified eigen vector in ascending order with gradients kept. More... | |
| template<int R, int C> | |
| Eigen::Matrix< var, R, C > | sort_desc (Eigen::Matrix< var, R, C > xs) |
| Return the specified eigen vector in descending order with gradients kept. More... | |
| template<int R1, int C1, int R2, int C2> | |
| var | squared_distance (const Eigen::Matrix< var, R1, C1 > &v1, const Eigen::Matrix< var, R2, C2 > &v2) |
| template<int R1, int C1, int R2, int C2> | |
| var | squared_distance (const Eigen::Matrix< var, R1, C1 > &v1, const Eigen::Matrix< double, R2, C2 > &v2) |
| template<int R1, int C1, int R2, int C2> | |
| var | squared_distance (const Eigen::Matrix< double, R1, C1 > &v1, const Eigen::Matrix< var, R2, C2 > &v2) |
| void | stan_print (std::ostream *o, const var &x) |
| template<int R, int C> | |
| var | sum (const Eigen::Matrix< var, R, C > &m) |
| Returns the sum of the coefficients of the specified matrix, column vector or row vector. More... | |
| matrix_v | tcrossprod (const matrix_v &M) |
| Returns the result of post-multiplying a matrix by its own transpose. More... | |
| var | to_var (const double &x) |
| Converts argument to an automatic differentiation variable. More... | |
| var | to_var (const var &x) |
| Converts argument to an automatic differentiation variable. More... | |
| matrix_v | to_var (const stan::math::matrix_d &m) |
| Converts argument to an automatic differentiation variable. More... | |
| matrix_v | to_var (const matrix_v &m) |
| Converts argument to an automatic differentiation variable. More... | |
| vector_v | to_var (const stan::math::vector_d &v) |
| Converts argument to an automatic differentiation variable. More... | |
| vector_v | to_var (const vector_v &v) |
| Converts argument to an automatic differentiation variable. More... | |
| row_vector_v | to_var (const stan::math::row_vector_d &rv) |
| Converts argument to an automatic differentiation variable. More... | |
| row_vector_v | to_var (const row_vector_v &rv) |
| Converts argument to an automatic differentiation variable. More... | |
| template<typename T1 , int R1, int C1, typename T2 , int R2, int C2, typename T3 , int R3, int C3> | |
| boost::enable_if_c < boost::is_same< T1, var > ::value||boost::is_same< T2, var >::value||boost::is_same < T3, var >::value, var > ::type | trace_gen_inv_quad_form_ldlt (const Eigen::Matrix< T1, R1, C1 > &D, const stan::math::LDLT_factor< T2, R2, C2 > &A, const Eigen::Matrix< T3, R3, C3 > &B) |
| Compute the trace of an inverse quadratic form. More... | |
| template<typename TD , int RD, int CD, typename TA , int RA, int CA, typename TB , int RB, int CB> | |
| boost::enable_if_c < boost::is_same< TD, var > ::value||boost::is_same< TA, var >::value||boost::is_same < TB, var >::value, var > ::type | trace_gen_quad_form (const Eigen::Matrix< TD, RD, CD > &D, const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, CB > &B) |
| template<typename T2 , int R2, int C2, typename T3 , int R3, int C3> | |
| boost::enable_if_c < boost::is_same< T2, var > ::value||boost::is_same< T3, var >::value, var >::type | trace_inv_quad_form_ldlt (const stan::math::LDLT_factor< T2, R2, C2 > &A, const Eigen::Matrix< T3, R3, C3 > &B) |
| Compute the trace of an inverse quadratic form. More... | |
| template<typename TA , int RA, int CA, typename TB , int RB, int CB> | |
| boost::enable_if_c < boost::is_same< TA, var > ::value||boost::is_same< TB, var >::value, var >::type | trace_quad_form (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< TB, RB, CB > &B) |
| template<int R, int C> | |
| const Eigen::Matrix< double, R, C > & | value_of (const Eigen::Matrix< double, R, C > &M) |
| Convert a matrix to a matrix of doubles. More... | |
| template<int R, int C> | |
| Eigen::Matrix< double, R, C > | value_of (const Eigen::Matrix< var, R, C > &M) |
| Convert a matrix to a matrix of doubles. More... | |
| var | variance (const std::vector< var > &v) |
| Return the sample variance of the specified standard vector. More... | |
| template<int R, int C> | |
| var | variance (const Eigen::Matrix< var, R, C > &m) |
| var | operator+ (const var &a, const var &b) |
| Addition operator for variables (C++). More... | |
| var | operator+ (const var &a, const double b) |
| Addition operator for variable and scalar (C++). More... | |
| var | operator+ (const double a, const var &b) |
| Addition operator for scalar and variable (C++). More... | |
| var | operator/ (const var &a, const var &b) |
| Division operator for two variables (C++). More... | |
| var | operator/ (const var &a, const double b) |
| Division operator for dividing a variable by a scalar (C++). More... | |
| var | operator/ (const double a, const var &b) |
| Division operator for dividing a scalar by a variable (C++). More... | |
| bool | operator== (const var &a, const var &b) |
| Equality operator comparing two variables' values (C++). More... | |
| bool | operator== (const var &a, const double b) |
| Equality operator comparing a variable's value and a double (C++). More... | |
| bool | operator== (const double a, const var &b) |
| Equality operator comparing a scalar and a variable's value (C++). More... | |
| bool | operator> (const var &a, const var &b) |
| Greater than operator comparing variables' values (C++). More... | |
| bool | operator> (const var &a, const double b) |
| Greater than operator comparing variable's value and double (C++). More... | |
| bool | operator> (const double a, const var &b) |
| Greater than operator comparing a double and a variable's value (C++). More... | |
| bool | operator>= (const var &a, const var &b) |
| Greater than or equal operator comparing two variables' values (C++). More... | |
| bool | operator>= (const var &a, const double b) |
| Greater than or equal operator comparing variable's value and double (C++). More... | |
| bool | operator>= (const double a, const var &b) |
| Greater than or equal operator comparing double and variable's value (C++). More... | |
| bool | operator< (const var &a, const var &b) |
| Less than operator comparing variables' values (C++). More... | |
| bool | operator< (const var &a, const double b) |
| Less than operator comparing variable's value and a double (C++). More... | |
| bool | operator< (const double a, const var &b) |
| Less than operator comparing a double and variable's value (C++). More... | |
| bool | operator<= (const var &a, const var &b) |
| Less than or equal operator comparing two variables' values (C++). More... | |
| bool | operator<= (const var &a, const double b) |
| Less than or equal operator comparing a variable's value and a scalar (C++). More... | |
| bool | operator<= (const double a, const var &b) |
| Less than or equal operator comparing a double and variable's value (C++). More... | |
| var | operator* (const var &a, const var &b) |
| Multiplication operator for two variables (C++). More... | |
| var | operator* (const var &a, const double b) |
| Multiplication operator for a variable and a scalar (C++). More... | |
| var | operator* (const double a, const var &b) |
| Multiplication operator for a scalar and a variable (C++). More... | |
| bool | operator!= (const var &a, const var &b) |
| Inequality operator comparing two variables' values (C++). More... | |
| bool | operator!= (const var &a, const double b) |
| Inequality operator comparing a variable's value and a double (C++). More... | |
| bool | operator!= (const double a, const var &b) |
| Inequality operator comparing a double and a variable's value (C++). More... | |
| var | operator- (const var &a, const var &b) |
| Subtraction operator for variables (C++). More... | |
| var | operator- (const var &a, const double b) |
| Subtraction operator for variable and scalar (C++). More... | |
| var | operator- (const double a, const var &b) |
| Subtraction operator for scalar and variable (C++). More... | |
| var & | operator-- (var &a) |
| Prefix decrement operator for variables (C++). More... | |
| var | operator-- (var &a, int) |
| Postfix decrement operator for variables (C++). More... | |
| var & | operator++ (var &a) |
| Prefix increment operator for variables (C++). More... | |
| var | operator++ (var &a, int) |
| Postfix increment operator for variables (C++). More... | |
| var | operator- (const var &a) |
| Unary negation operator for variables (C++). More... | |
| bool | operator! (const var &a) |
| Prefix logical negation for the value of variables (C++). More... | |
| var | operator+ (const var &a) |
| Unary plus operator for variables (C++). More... | |
| void | print_stack (std::ostream &o) |
| Prints the auto-dif variable stack. More... | |
| static void | grad (chainable *vi) |
| static bool | empty_nested () |
| Return true if there is no nested autodiff being executed. More... | |
| static void | recover_memory () |
| Recover memory used for all variables for reuse. More... | |
| static void | recover_memory_nested () |
| Recover only the memory used for the top nested call. More... | |
| static void | start_nested () |
Record the current position so that recover_memory_nested() can find it. More... | |
| static size_t | nested_size () |
Variables | |
| std::vector< chainable * > | var_stack_ |
| std::vector< chainable * > | var_nochain_stack_ |
| std::vector< chainable_alloc * > | var_alloc_stack_ |
| memory::stack_alloc | memalloc_ |
| std::vector< size_t > | nested_var_stack_sizes_ |
| std::vector< size_t > | nested_var_nochain_stack_sizes_ |
| std::vector< size_t > | nested_var_alloc_stack_starts_ |
Function gradients via reverse-mode automatic differentiation.
| typedef Eigen::Matrix<fvar<double>,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::matrix_fd |
Definition at line 18 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<double> >,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::matrix_ffd |
Definition at line 26 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<var> >,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::matrix_ffv |
Definition at line 30 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<var>,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::matrix_fv |
Definition at line 22 of file typedefs.hpp.
| typedef Eigen::Matrix<var,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::matrix_v |
The type of a matrix holding stan::agrad::var values.
Definition at line 21 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<double>,1,Eigen::Dynamic> stan::agrad::row_vector_fd |
Definition at line 50 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<double> >,1,Eigen::Dynamic> stan::agrad::row_vector_ffd |
Definition at line 58 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<var> >,1,Eigen::Dynamic> stan::agrad::row_vector_ffv |
Definition at line 62 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<var>,1,Eigen::Dynamic> stan::agrad::row_vector_fv |
Definition at line 54 of file typedefs.hpp.
| typedef Eigen::Matrix<var,1,Eigen::Dynamic> stan::agrad::row_vector_v |
The type of a row vector holding stan::agrad::var values.
Definition at line 37 of file typedefs.hpp.
| typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic >::Index stan::agrad::size_type |
Definition at line 14 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<double>,Eigen::Dynamic,1> stan::agrad::vector_fd |
Definition at line 34 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<double> >,Eigen::Dynamic,1> stan::agrad::vector_ffd |
Definition at line 42 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<fvar<var> >,Eigen::Dynamic,1> stan::agrad::vector_ffv |
Definition at line 46 of file typedefs.hpp.
| typedef Eigen::Matrix<fvar<var>,Eigen::Dynamic,1> stan::agrad::vector_fv |
Definition at line 38 of file typedefs.hpp.
| typedef Eigen::Matrix<var,Eigen::Dynamic,1> stan::agrad::vector_v |
The type of a (column) vector holding stan::agrad::var values.
Definition at line 29 of file typedefs.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
The inverse hyperbolic cosine function for variables (C99).
For non-variable function, see boost::math::acosh().
The derivative is defined by
.
| a | The variable. |
|
inline |
Return 1 if the argument is unequal to zero and 0 otherwise.
| v | Value. |
Definition at line 15 of file as_bool.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
The inverse hyperbolic sine function for variables (C99).
For non-variable function, see boost::math::asinh().
The derivative is defined by
.
| a | The variable. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return the principal value of the arc tangent, in radians, of the first variable divided by the second (cmath).
The partial derivatives are defined by
, and
.
| a | Numerator variable. |
| b | Denominator variable. |
|
inline |
Return the principal value of the arc tangent, in radians, of the first variable divided by the second scalar (cmath).
The derivative with respect to the variable is
.
| a | Numerator variable. |
| b | Denominator scalar. |
|
inline |
Return the principal value of the arc tangent, in radians, of the first scalar divided by the second variable (cmath).
The derivative with respect to the variable is
.
| a | Numerator scalar. |
| b | Denominator variable. |
|
inline |
|
inline |
The inverse hyperbolic tangent function for variables (C99).
For non-variable function, see boost::math::atanh().
The derivative is defined by
.
| a | The variable. |
|
inline |
Definition at line 15 of file bessel_first_kind.hpp.
|
inline |
Definition at line 27 of file bessel_first_kind.hpp.
|
inline |
Definition at line 15 of file bessel_second_kind.hpp.
|
inline |
Definition at line 27 of file bessel_second_kind.hpp.
|
inline |
Definition at line 15 of file binary_log_loss.hpp.
|
inline |
The log loss function for variables (stan).
See stan::math::binary_log_loss() for the double-based version.
The derivative with respect to the variable
is
, and
.
| y | Reference value. |
| y_hat | Response variable. |
Definition at line 69 of file binary_log_loss.hpp.
|
inline |
Definition at line 16 of file binomial_coefficient_log.hpp.
|
inline |
Definition at line 45 of file binomial_coefficient_log.hpp.
|
inline |
Definition at line 69 of file binomial_coefficient_log.hpp.
|
inline |
Definition at line 8 of file calculate_chain.hpp.
|
inline |
|
inline |
Returns the cube root of the specified variable (C99).
See boost::math::cbrt() for the double-based version.
The derivative is
.
| a | Specified variable. |
|
inline |
|
inline |
Return the ceiling of the specified variable (cmath).
The derivative of the ceiling function is defined and zero everywhere but at integers, and we set them to zero for convenience,
.
The ceiling function rounds up. For double values, this is the smallest integral value that is not less than the specified value. Although this function is not differentiable because it is discontinuous at integral values, its gradient is returned as zero everywhere.
| a | Input variable. |
|
inline |
Definition at line 15 of file check_pos_definite.hpp.
|
inline |
Definition at line 18 of file columns_dot_product.hpp.
|
inline |
Definition at line 34 of file columns_dot_product.hpp.
|
inline |
Definition at line 50 of file columns_dot_product.hpp.
|
inline |
Definition at line 261 of file dot_product.hpp.
|
inline |
Definition at line 15 of file columns_dot_self.hpp.
|
inline |
Returns the dot product of each column of a matrix with itself.
| x | Matrix. |
| T | scalar type |
Definition at line 89 of file dot_self.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 17 of file crossprod.hpp.
|
inline |
Returns the result of pre-multiplying a matrix by its own transpose.
| M | Matrix to multiply. |
Definition at line 17 of file crossprod.hpp.
| void stan::agrad::derivative | ( | const F & | f, |
| const T & | x, | ||
| T & | fx, | ||
| T & | dfx_dx | ||
| ) |
Return the derivative of the specified univariate function at the specified argument.
| T | Argument type |
| F | Function type |
| [in] | f | Function |
| [in] | x | Argument |
| [out] | fx | Value of function applied to argument |
| [out] | dfx_dx | Value of derivative |
Definition at line 25 of file autodiff.hpp.
|
inline |
Definition at line 21 of file determinant.hpp.
|
inline |
Definition at line 67 of file determinant.hpp.
|
inline |
Definition at line 16 of file digamma.hpp.
|
inline |
Definition at line 25 of file digamma.hpp.
|
inline |
Definition at line 17 of file divide.hpp.
|
inline |
Definition at line 23 of file divide.hpp.
|
inline |
Return the division of the first scalar by the second scalar.
| [in] | x | Specified vector. |
| [in] | y | Specified scalar. |
Definition at line 23 of file divide.hpp.
|
inline |
Definition at line 28 of file divide.hpp.
|
inline |
Definition at line 34 of file divide.hpp.
|
inline |
Return the division of the specified column vector by the specified scalar.
| [in] | v | Specified vector. |
| [in] | c | Specified scalar. |
Definition at line 40 of file divide.hpp.
|
inline |
Definition at line 46 of file divide.hpp.
|
inline |
Definition at line 20 of file dot_product.hpp.
|
inline |
Definition at line 36 of file dot_product.hpp.
|
inline |
Definition at line 52 of file dot_product.hpp.
|
inline |
Definition at line 68 of file dot_product.hpp.
|
inline |
Definition at line 83 of file dot_product.hpp.
|
inline |
Definition at line 98 of file dot_product.hpp.
|
inline |
Definition at line 113 of file dot_product.hpp.
|
inline |
Definition at line 126 of file dot_product.hpp.
|
inline |
Definition at line 139 of file dot_product.hpp.
|
inline |
Definition at line 152 of file dot_product.hpp.
|
inline |
Definition at line 164 of file dot_product.hpp.
|
inline |
Definition at line 176 of file dot_product.hpp.
|
inline |
Returns the dot product.
| [in] | v1 | First column vector. |
| [in] | v2 | Second column vector. |
| std::domain_error | if length of v1 is not equal to length of v2. |
Definition at line 213 of file dot_product.hpp.
|
inline |
Returns the dot product.
| [in] | v1 | First array. |
| [in] | v2 | Second array. |
| [in] | length | Length of both arrays. |
Definition at line 233 of file dot_product.hpp.
|
inline |
Returns the dot product.
| [in] | v1 | First vector. |
| [in] | v2 | Second vector. |
| std::domain_error | if sizes of v1 and v2 do not match. |
Definition at line 249 of file dot_product.hpp.
|
inline |
Definition at line 16 of file dot_self.hpp.
|
inline |
Returns the dot product of a vector with itself.
| [in] | v | Vector. |
| R | number of rows or Eigen::Dynamic for dynamic; one of R or C must be 1 |
| C | number of rows or Eigen::Dyanmic for dynamic; one of R or C must be 1 |
Definition at line 77 of file dot_self.hpp.
|
inlinestatic |
Return true if there is no nested autodiff being executed.
Definition at line 42 of file var_stack.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Exponentiation base 2 function for variables (C99).
For non-variable function, see boost::math::exp2().
The derivatie is
.
| a | The variable. |
|
inline |
|
inline |
The exponentiation of the specified variable minus 1 (C99).
For non-variable function, see boost::math::expm1().
The derivative is given by
.
| a | The variable. |
|
inline |
|
inline |
Return the absolute value of the variable (cmath).
Choosing an arbitrary value at the non-differentiable point 0,
.
where
is the signum function, taking values -1 if
, 0 if
, and 1 if
.
The function abs() provides the same behavior, with abs() defined in stdlib.h and fabs() defined in cmath. The derivative is 0 if the input is 0.
Returns std::numeric_limits<double>::quiet_NaN() for NaN inputs.
[ {fabs}(x) = {cases} |x| & {if } - x \[6pt] {NaN} & {if } x = {NaN} {cases} ]
[ {\,{fabs}(x)}{ x} = {cases} -1 & {if } x < 0 \ 0 & {if } x = 0 \ 1 & {if } x > 0 \[6pt] {NaN} & {if } x = {NaN} {cases} ]
| a | Input variable. |
|
inline |
Definition at line 15 of file falling_factorial.hpp.
|
inline |
Definition at line 26 of file falling_factorial.hpp.
|
inline |
Definition at line 37 of file falling_factorial.hpp.
|
inline |
Definition at line 48 of file falling_factorial.hpp.
|
inline |
Definition at line 53 of file falling_factorial.hpp.
|
inline |
Definition at line 58 of file falling_factorial.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
Return the positive difference between the first variable's the value and the second's (C99).
See stan::math::fdim() for the double-based version.
The partial derivative with respect to the first argument is
if
, and
if
.
With respect to the second argument, the partial is
if
, and
if
.
| a | First variable. |
| b | Second variable. |
|
inline |
Return the positive difference between the first value and the value of the second variable (C99).
See fdim(var,var) for definitions of values and derivatives.
The derivative with respect to the variable is
if
, and
if
.
| a | First value. |
| b | Second variable. |
|
inline |
Return the positive difference between the first variable's value and the second value (C99).
See fdim(var,var) for definitions of values and derivatives.
The derivative with respect to the variable is
if
, and
if
.
| a | First value. |
| b | Second variable. |
|
inline |
|
inline |
Return the floor of the specified variable (cmath).
The derivative of the floor function is defined and zero everywhere but at integers, so we set these derivatives to zero for convenience,
.
The floor function rounds down. For double values, this is the largest integral value that is not greater than the specified value. Although this function is not differentiable because it is discontinuous at integral values, its gradient is returned as zero everywhere.
| a | Input variable. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
The fused multiply-add function for three variables (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The partial derivatives are
, and
, and
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
|
inline |
The fused multiply-add function for two variables and a value (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The partial derivatives are
, and
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
The fused multiply-add function for a variable, value, and variable (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The partial derivatives are
, and
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
The fused multiply-add function for a variable and two values (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The derivative is
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
The fused multiply-add function for a value, variable, and value (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The derivative is
, and
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
The fused multiply-add function for two values and a variable, and value (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The derivative is
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
The fused multiply-add function for a value and two variables (C99).
This function returns the product of the first two arguments plus the third argument.
The double-based version ::fma(double,double,double) is defined in <cmath>.
The partial derivaties are
, and
.
| a | First multiplicand. |
| b | Second multiplicand. |
| c | Summand. |
|
inline |
|
inline |
|
inline |
|
inline |
Returns the maximum of the two variable arguments (C99).
See boost::math::fmax() for the double-based version.
No new variable implementations are created, with this function defined as if by
fmax(a,b) = a if a's value is greater than b's, and .
fmax(a,b) = b if b's value is greater than or equal to a's.
| a | First variable. |
| b | Second variable. |
|
inline |
Returns the maximum of the variable and scalar, promoting the scalar to a variable if it is larger (C99).
See boost::math::fmax() for the double-based version.
For fmax(a,b), if a's value is greater than b, then a is returned, otherwise a fesh variable implementation wrapping the value b is returned.
| a | First variable. |
| b | Second value |
|
inline |
Returns the maximum of a scalar and variable, promoting the scalar to a variable if it is larger (C99).
See boost::math::fmax() for the double-based version.
For fmax(a,b), if a is greater than b's value, then a fresh variable implementation wrapping a is returned, otherwise b is returned.
| a | First value. |
| b | Second variable. |
|
inline |
|
inline |
|
inline |
|
inline |
Returns the minimum of the two variable arguments (C99).
See boost::math::fmin() for the double-based version.
For fmin(a,b), if a's value is less than b's, then a is returned, otherwise b is returned.
| a | First variable. |
| b | Second variable. |
|
inline |
Returns the minimum of the variable and scalar, promoting the scalar to a variable if it is larger (C99).
See boost::math::fmin() for the double-based version.
For fmin(a,b), if a's value is less than b, then a is returned, otherwise a fresh variable wrapping b is returned.
| a | First variable. |
| b | Second value |
|
inline |
Returns the minimum of a scalar and variable, promoting the scalar to a variable if it is larger (C99).
See boost::math::fmin() for the double-based version.
For fmin(a,b), if a is less than b's value, then a fresh variable implementation wrapping a is returned, otherwise b is returned.
| a | First value. |
| b | Second variable. |
|
inline |
|
inline |
|
inline |
|
inline |
Return the floating point remainder after dividing the first variable by the second (cmath).
The partial derivatives with respect to the variables are defined everywhere but where
, but we set these to match other values, with
, and
.
| a | First variable. |
| b | Second variable. |
|
inline |
Return the floating point remainder after dividing the the first variable by the second scalar (cmath).
The derivative with respect to the variable is
.
| a | First variable. |
| b | Second scalar. |
|
inline |
Return the floating point remainder after dividing the first scalar by the second variable (cmath).
The derivative with respect to the variable is
.
| a | First scalar. |
| b | Second variable. |
|
inline |
Definition at line 16 of file gamma_p.hpp.
|
inline |
Definition at line 52 of file gamma_p.hpp.
|
inline |
Definition at line 87 of file gamma_p.hpp.
|
inline |
Definition at line 91 of file gamma_p.hpp.
|
inline |
Definition at line 96 of file gamma_p.hpp.
|
inline |
Definition at line 101 of file gamma_p.hpp.
|
inline |
Definition at line 15 of file gamma_q.hpp.
|
inline |
Definition at line 51 of file gamma_q.hpp.
|
inline |
Definition at line 61 of file gamma_q.hpp.
|
inline |
Definition at line 66 of file gamma_q.hpp.
|
inline |
Definition at line 71 of file gamma_q.hpp.
|
inline |
Definition at line 86 of file gamma_q.hpp.
|
static |
| void stan::agrad::grad | ( | var & | v, |
| Eigen::Matrix< var, Eigen::Dynamic, 1 > & | x, | ||
| Eigen::VectorXd & | g | ||
| ) |
Propagate chain rule to calculate gradients starting from the specified variable.
Resizes the input vector to be the correct size.
The grad() function does not itself recover any memory. use agrad::recover_memory() or agrad::recover_memory_nested(), defined in , defined in agrad/rev/var_stack.hpp, to recover memory.
| [in] | v | Value of function being differentiated |
| [in] | x | Variables being differentiated with respect to |
| [out] | g | Gradient, d/dx v, evaluated at x. |
|
static |
Compute the gradient for all variables starting from the specified root variable implementation.
Does not recover memory. This chainable variable's adjoint is initialized using the method init_dependent() and then the chain rule is applied working down the stack from this chainable and calling each chainable's chain() method in turn.
This function computes a nested gradient only going back as far as the last nesting.
This function does not recover any memory from the computation.
| vi | Variable implementation for root of partial derivative propagation. |
Definition at line 110 of file chainable.hpp.
| void stan::agrad::grad_tr_mat_times_hessian | ( | const F & | f, |
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | x, | ||
| const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > & | M, | ||
| Eigen::Matrix< double, Eigen::Dynamic, 1 > & | grad_tr_MH | ||
| ) |
Definition at line 321 of file autodiff.hpp.
| void stan::agrad::gradient | ( | const F & | f, |
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | x, | ||
| double & | fx, | ||
| Eigen::Matrix< double, Eigen::Dynamic, 1 > & | grad_fx | ||
| ) |
Calculate the value and the gradient of the specified function at the specified argument.
The functor must implement
stan::agrad::var operator()(const Eigen::Matrix<stan::agrad::var,Eigen::Dynamic,1>&)
using only operations that are defined for stan::agrad::var. This latter constraint usually requires the functions to be defined in terms of the libraries defined in Stan or in terms of functions with appropriately general namespace imports that eventually depend on functions defined in Stan.
Time and memory usage is on the order of the size of the fully unfolded expression for the function applied to the argument, independently of dimension.
| F | Type of function |
| [in] | f | Function |
| [in] | x | Argument to function |
| [out] | fx | Function applied to argument |
| [out] | grad_fx | Gradient of function at argument |
Definition at line 93 of file autodiff.hpp.
| void stan::agrad::gradient | ( | const F & | f, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | x, | ||
| T & | fx, | ||
| Eigen::Matrix< T, Eigen::Dynamic, 1 > & | grad_fx | ||
| ) |
Definition at line 117 of file autodiff.hpp.
| void stan::agrad::gradient_dot_vector | ( | const F & | f, |
| const Eigen::Matrix< T1, Eigen::Dynamic, 1 > & | x, | ||
| const Eigen::Matrix< T2, Eigen::Dynamic, 1 > & | v, | ||
| T1 & | fx, | ||
| T1 & | grad_fx_dot_v | ||
| ) |
Definition at line 252 of file autodiff.hpp.
| void stan::agrad::hessian | ( | const F & | f, |
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | x, | ||
| double & | fx, | ||
| Eigen::Matrix< double, Eigen::Dynamic, 1 > & | grad, | ||
| Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > & | H | ||
| ) |
Definition at line 194 of file autodiff.hpp.
| void stan::agrad::hessian | ( | const F & | f, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | x, | ||
| T & | fx, | ||
| Eigen::Matrix< T, Eigen::Dynamic, 1 > & | grad, | ||
| Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & | H | ||
| ) |
Definition at line 223 of file autodiff.hpp.
| void stan::agrad::hessian_times_vector | ( | const F & | f, |
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | x, | ||
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | v, | ||
| double & | fx, | ||
| Eigen::Matrix< double, Eigen::Dynamic, 1 > & | Hv | ||
| ) |
Definition at line 274 of file autodiff.hpp.
| void stan::agrad::hessian_times_vector | ( | const F & | f, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | x, | ||
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | v, | ||
| T & | fx, | ||
| Eigen::Matrix< T, Eigen::Dynamic, 1 > & | Hv | ||
| ) |
Definition at line 304 of file autodiff.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99).
See boost::math::hypot() for double-based function.
The partial derivatives are given by
, and
.
| a | Length of first side. |
| b | Length of second side. |
|
inline |
Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99).
See boost::math::hypot() for double-based function.
The derivative is
.
| a | Length of first side. |
| b | Length of second side. |
|
inline |
Returns the length of the hypoteneuse of a right triangle with sides of the specified lengths (C99).
See boost::math::hypot() for double-based function.
The derivative is
.
| a | Length of first side. |
| b | Length of second side. |
|
inline |
The normalized incomplete beta function of a, b, and x.
Used to compute the cumulative density function for the beta distribution.
Partial derivatives are those specified by wolfram alpha. The values were checked using both finite differences and by independent code for calculating the derivatives found in JSS (paper by Boik and Robison-Cox).
| a | Shape parameter. |
| b | Shape parameter. |
| x | Random variate. |
| if | any argument is NaN. |
|
inline |
If the specified condition is true, return the first variable, otherwise return the second variable.
| c | Boolean condition. |
| y_true | Variable to return if condition is true. |
| y_false | Variable to return if condition is false. |
Definition at line 17 of file if_else.hpp.
|
inline |
If the specified condition is true, return a new variable constructed from the first scalar, otherwise return the second variable.
| c | Boolean condition. |
| y_true | Value to promote to variable and return if condition is true. |
| y_false | Variable to return if condition is false. |
Definition at line 29 of file if_else.hpp.
|
inline |
If the specified condition is true, return the first variable, otherwise return a new variable constructed from the second scalar.
| c | Boolean condition. |
| y_true | Variable to return if condition is true. |
| y_false | Value to promote to variable and return if condition is false. |
Definition at line 44 of file if_else.hpp.
|
inline |
Initialize variable to value.
(Function may look pointless, but its needed to bottom out recursion.)
Definition at line 15 of file initialize_variable.hpp.
|
inline |
Initialize every cell in the matrix to the specified value.
Definition at line 24 of file initialize_variable.hpp.
|
inline |
Initialize the variables in the standard vector recursively.
Definition at line 33 of file initialize_variable.hpp.
|
inline |
|
inline |
Definition at line 15 of file inv_cloglog.hpp.
|
inline |
Return the inverse complementary log-log function applied specified variable (stan).
See stan::math::inv_cloglog() for the double-based version.
The derivative is given by
.
| a | Variable argument. |
Definition at line 37 of file inv_cloglog.hpp.
|
inline |
Definition at line 15 of file inv_logit.hpp.
|
inline |
The inverse logit function for variables (stan).
See stan::math::inv_logit() for the double-based version.
The derivative of inverse logit is
.
| a | Argument variable. |
Definition at line 35 of file inv_logit.hpp.
|
inline |
Definition at line 15 of file inv_sqrt.hpp.
|
inline |
|
inline |
Definition at line 15 of file inv_square.hpp.
|
inline |
|
inline |
Definition at line 21 of file inverse.hpp.
|
inline |
Returns 1 if the input's value is infinite and 0 otherwise.
Delegates to stan::math::is_inf.
| x | Value to test. |
1 if the value is infinite and 0 otherwise. Definition at line 22 of file is_inf.hpp.
|
inline |
Returns 1 if the input's value is infinite and 0 otherwise.
Delegates to stan::math::is_inf.
| x | Value to test. |
1 if the value is infinite and 0 otherwise. Definition at line 23 of file is_inf.hpp.
|
inline |
Returns 1 if the input's value is NaN and 0 otherwise.
Delegates to stan::math::is_nan.
| x | Value to test. |
1 if the value is NaN and 0 otherwise. Definition at line 22 of file is_nan.hpp.
|
inline |
Returns 1 if the input's value is NaN and 0 otherwise.
Delegates to stan::math::is_nan.
| x | Value to test. |
1 if the value is NaN and 0 otherwise. Definition at line 23 of file is_nan.hpp.
|
inline |
Returns true if the specified variable is uninitialized.
This overload of the stan::math::is_uninitialized() function delegates the return to the is_uninitialized() method on the specified variable.
| x | Object to test. |
true if the specified object is uninitialized. Definition at line 25 of file is_uninitialized.hpp.
| void stan::agrad::jacobian | ( | const F & | f, |
| const Eigen::Matrix< double, Eigen::Dynamic, 1 > & | x, | ||
| Eigen::Matrix< double, Eigen::Dynamic, 1 > & | fx, | ||
| Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > & | J | ||
| ) |
Definition at line 135 of file autodiff.hpp.
| void stan::agrad::jacobian | ( | const F & | f, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | x, | ||
| Eigen::Matrix< T, Eigen::Dynamic, 1 > & | fx, | ||
| Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & | J | ||
| ) |
Definition at line 166 of file autodiff.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 15 of file lgamma.hpp.
|
inline |
The log gamma function for variables (C99).
The derivatie is the digamma function,
.
| a | The variable. |
Definition at line 36 of file lgamma.hpp.
|
inline |
Definition at line 16 of file lmgamma.hpp.
|
inline |
Definition at line 29 of file lmgamma.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 17 of file log1m_exp.hpp.
|
inline |
Return the log of 1 minus the exponential of the specified variable.
Definition at line 31 of file log1m_exp.hpp.
|
inline |
Definition at line 15 of file log1m_inv_logit.hpp.
|
inline |
|
inline |
|
inline |
Definition at line 15 of file log1p_exp.hpp.
|
inline |
Return the log of 1 plus the exponential of the specified variable.
Definition at line 29 of file log1p_exp.hpp.
|
inline |
|
inline |
Returns the base 2 logarithm of the specified variable (C99).
See stan::math::log2() for the double-based version.
The derivative is
.
| a | Specified variable. |
|
inline |
Definition at line 20 of file log_determinant.hpp.
|
inline |
Definition at line 69 of file log_determinant.hpp.
| var stan::agrad::log_determinant_ldlt | ( | stan::math::LDLT_factor< var, R, C > & | A | ) |
Definition at line 48 of file log_determinant_ldlt.hpp.
|
inline |
Definition at line 116 of file log_determinant_spd.hpp.
|
inline |
Definition at line 14 of file log_diff_exp.hpp.
|
inline |
Definition at line 25 of file log_diff_exp.hpp.
|
inline |
Definition at line 36 of file log_diff_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 55 of file log_diff_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 62 of file log_diff_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 69 of file log_diff_exp.hpp.
|
inline |
Definition at line 15 of file log_falling_factorial.hpp.
|
inline |
Definition at line 25 of file log_falling_factorial.hpp.
|
inline |
Definition at line 35 of file log_falling_factorial.hpp.
|
inline |
Definition at line 63 of file log_falling_factorial.hpp.
|
inline |
Definition at line 68 of file log_falling_factorial.hpp.
|
inline |
Definition at line 73 of file log_falling_factorial.hpp.
|
inline |
Definition at line 15 of file log_inv_logit.hpp.
|
inline |
Definition at line 16 of file log_rising_factorial.hpp.
|
inline |
Definition at line 27 of file log_rising_factorial.hpp.
|
inline |
Definition at line 39 of file log_rising_factorial.hpp.
|
inline |
Definition at line 49 of file log_rising_factorial.hpp.
|
inline |
Definition at line 54 of file log_rising_factorial.hpp.
|
inline |
Definition at line 59 of file log_rising_factorial.hpp.
|
inline |
Definition at line 16 of file log_softmax.hpp.
|
inline |
Return the softmax of the specified Eigen vector.
Softmax is guaranteed to return a simplex.
The gradient calculations are unfolded.
| alpha | Unconstrained input vector. |
| std::domain_error | If the input vector is size 0. |
Definition at line 60 of file log_softmax.hpp.
|
inline |
Definition at line 15 of file log_sum_exp.hpp.
| fvar<T> stan::agrad::log_sum_exp | ( | const Eigen::Matrix< fvar< T >, R, C > & | v | ) |
Definition at line 19 of file log_sum_exp.hpp.
|
inline |
Definition at line 26 of file log_sum_exp.hpp.
|
inline |
Definition at line 36 of file log_sum_exp.hpp.
| fvar<T> stan::agrad::log_sum_exp | ( | const std::vector< fvar< T > > & | v | ) |
Definition at line 45 of file log_sum_exp.hpp.
|
inline |
Returns the log sum of exponentials.
| x | matrix |
Definition at line 59 of file log_sum_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 81 of file log_sum_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 88 of file log_sum_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 95 of file log_sum_exp.hpp.
|
inline |
Returns the log sum of exponentials.
Definition at line 102 of file log_sum_exp.hpp.
|
inline |
|
inline |
Definition at line 25 of file mdivide_left.hpp.
|
inline |
Definition at line 69 of file mdivide_left.hpp.
|
inline |
Definition at line 95 of file mdivide_left.hpp.
|
inline |
Definition at line 264 of file mdivide_left.hpp.
|
inline |
Definition at line 288 of file mdivide_left.hpp.
|
inline |
Definition at line 312 of file mdivide_left.hpp.
|
inline |
Returns the solution of the system Ax=b given an LDLT_factor of A.
| A | LDLT_factor |
| b | Right hand side matrix or vector. |
| std::domain_error | if rows of b don't match the size of A. |
Definition at line 25 of file mdivide_left_ldlt.hpp.
|
inline |
Returns the solution of the system Ax=b given an LDLT_factor of A.
| A | LDLT_factor |
| b | Right hand side matrix or vector. |
| std::domain_error | if rows of b don't match the size of A. |
Definition at line 243 of file mdivide_left_ldlt.hpp.
|
inline |
Returns the solution of the system Ax=b given an LDLT_factor of A.
| A | LDLT_factor |
| b | Right hand side matrix or vector. |
| std::domain_error | if rows of b don't match the size of A. |
Definition at line 269 of file mdivide_left_ldlt.hpp.
|
inline |
Returns the solution of the system Ax=b given an LDLT_factor of A.
| A | LDLT_factor |
| b | Right hand side matrix or vector. |
| std::domain_error | if rows of b don't match the size of A. |
Definition at line 295 of file mdivide_left_ldlt.hpp.
|
inline |
Definition at line 244 of file mdivide_left_spd.hpp.
|
inline |
Definition at line 268 of file mdivide_left_spd.hpp.
|
inline |
Definition at line 292 of file mdivide_left_spd.hpp.
|
inline |
Definition at line 296 of file mdivide_left_tri.hpp.
|
inline |
Definition at line 319 of file mdivide_left_tri.hpp.
|
inline |
Definition at line 342 of file mdivide_left_tri.hpp.
|
inline |
Definition at line 22 of file mdivide_left_tri_low.hpp.
|
inline |
Definition at line 67 of file mdivide_left_tri_low.hpp.
|
inline |
Definition at line 107 of file mdivide_left_tri_low.hpp.
|
inline |
Definition at line 26 of file mdivide_right.hpp.
|
inline |
Definition at line 70 of file mdivide_right.hpp.
|
inline |
Definition at line 97 of file mdivide_right.hpp.
|
inline |
Definition at line 22 of file mdivide_right_tri_low.hpp.
|
inline |
Definition at line 67 of file mdivide_right_tri_low.hpp.
|
inline |
Definition at line 102 of file mdivide_right_tri_low.hpp.
|
inline |
Definition at line 15 of file modified_bessel_first_kind.hpp.
|
inline |
Definition at line 24 of file modified_bessel_first_kind.hpp.
|
inline |
Definition at line 15 of file modified_bessel_second_kind.hpp.
|
inline |
Definition at line 24 of file modified_bessel_second_kind.hpp.
|
inline |
Definition at line 21 of file multiply.hpp.
|
inline |
Return the product of two scalars.
| [in] | v | First scalar. |
| [in] | c | Specified scalar. |
Definition at line 31 of file multiply.hpp.
|
inline |
Definition at line 33 of file multiply.hpp.
|
inline |
Return the product of scalar and matrix.
| [in] | c | Specified scalar. |
| [in] | m | Matrix. |
Definition at line 42 of file multiply.hpp.
|
inline |
Definition at line 45 of file multiply.hpp.
|
inline |
Return the product of scalar and matrix.
| [in] | m | Matrix. |
| [in] | c | Specified scalar. |
Definition at line 56 of file multiply.hpp.
|
inline |
Definition at line 57 of file multiply.hpp.
|
inline |
Definition at line 64 of file multiply.hpp.
|
inline |
Definition at line 71 of file multiply.hpp.
|
inline |
Return the product of the specified matrices.
The number of columns in the first matrix must be the same as the number of rows in the second matrix.
| [in] | m1 | First matrix. |
| [in] | m2 | Second matrix. |
| std::domain_error | if the number of columns of m1 does not match the number of rows of m2. |
Definition at line 76 of file multiply.hpp.
|
inline |
Definition at line 78 of file multiply.hpp.
|
inline |
Definition at line 96 of file multiply.hpp.
|
inline |
Definition at line 114 of file multiply.hpp.
|
inline |
Return the scalar product of the specified row vector and specified column vector.
The return is the same as the dot product. The two vectors must be the same size.
| [in] | rv | Row vector. |
| [in] | v | Column vector. |
| std::domain_error | if rv and v are not the same size |
Definition at line 123 of file multiply.hpp.
|
inline |
Definition at line 132 of file multiply.hpp.
|
inline |
Definition at line 142 of file multiply.hpp.
|
inline |
Definition at line 152 of file multiply.hpp.
|
inline |
Definition at line 15 of file multiply_log.hpp.
|
inline |
Definition at line 25 of file multiply_log.hpp.
|
inline |
Definition at line 35 of file multiply_log.hpp.
|
inline |
Return the value of a*log(b).
When both a and b are 0, the value returned is 0. The partial deriviative with respect to a is log(b). The partial deriviative with respect to b is a/b. When a and b are both 0, this is set to Inf.
| a | First variable. |
| b | Second variable. |
Definition at line 77 of file multiply_log.hpp.
|
inline |
Return the value of a*log(b).
When both a and b are 0, the value returned is 0. The partial deriviative with respect to a is log(b).
| a | First variable. |
| b | Second scalar. |
Definition at line 90 of file multiply_log.hpp.
|
inline |
Return the value of a*log(b).
When both a and b are 0, the value returned is 0. The partial deriviative with respect to b is a/b. When a and b are both 0, this is set to Inf.
| a | First scalar. |
| b | Second variable. |
Definition at line 104 of file multiply_log.hpp.
|
inline |
Definition at line 17 of file multiply_lower_tri_self_transpose.hpp.
|
inline |
Definition at line 19 of file multiply_lower_tri_self_transpose.hpp.
|
inlinestatic |
Definition at line 103 of file var_stack.hpp.
|
inline |
Prefix logical negation for the value of variables (C++).
The expression (!a) is equivalent to negating the scalar value of the variable a.
Note that this is the only logical operator defined for variables. Overridden logical conjunction (&&) and disjunction (||) operators do not apply the same "short circuit" rules as the built-in logical operators.
| a | Variable to negate. |
Definition at line 31 of file operator_unary_not.hpp.
|
inline |
Definition at line 14 of file operator_not_equal.hpp.
|
inline |
Definition at line 21 of file operator_not_equal.hpp.
|
inline |
Inequality operator comparing two variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 26 of file operator_not_equal.hpp.
|
inline |
Definition at line 28 of file operator_not_equal.hpp.
|
inline |
Inequality operator comparing a variable's value and a double (C++).
| a | First variable. |
| b | Second value. |
Definition at line 39 of file operator_not_equal.hpp.
|
inline |
Inequality operator comparing a double and a variable's value (C++).
| a | First value. |
| b | Second variable. |
Definition at line 52 of file operator_not_equal.hpp.
|
inline |
Definition at line 14 of file operator_multiplication.hpp.
|
inline |
Definition at line 22 of file operator_multiplication.hpp.
|
inline |
Definition at line 29 of file operator_multiplication.hpp.
|
inline |
Multiplication operator for two variables (C++).
The partial derivatives are
, and
.
| a | First variable operand. |
| b | Second variable operand. |
Definition at line 82 of file operator_multiplication.hpp.
|
inline |
Multiplication operator for a variable and a scalar (C++).
The partial derivative for the variable is
, and
| a | Variable operand. |
| b | Scalar operand. |
Definition at line 97 of file operator_multiplication.hpp.
|
inline |
Multiplication operator for a scalar and a variable (C++).
The partial derivative for the variable is
.
| a | Scalar operand. |
| b | Variable operand. |
Definition at line 114 of file operator_multiplication.hpp.
|
inline |
Definition at line 14 of file operator_addition.hpp.
|
inline |
Definition at line 21 of file operator_addition.hpp.
|
inline |
Definition at line 28 of file operator_addition.hpp.
|
inline |
Unary plus operator for variables (C++).
The function simply returns its input, because
.
The effect of unary plus on a built-in C++ scalar type is integer promotion. Because variables are all double-precision floating point already, promotion is not necessary.
| a | Argument variable. |
Definition at line 43 of file operator_unary_plus.hpp.
|
inline |
Addition operator for variables (C++).
The partial derivatives are defined by
, and
.
| a | First variable operand. |
| b | Second variable operand. |
Definition at line 83 of file operator_addition.hpp.
|
inline |
Addition operator for variable and scalar (C++).
The derivative with respect to the variable is
.
| a | First variable operand. |
| b | Second scalar operand. |
Definition at line 98 of file operator_addition.hpp.
|
inline |
Addition operator for scalar and variable (C++).
The derivative with respect to the variable is
.
| a | First scalar operand. |
| b | Second variable operand. |
Definition at line 115 of file operator_addition.hpp.
|
inline |
Prefix increment operator for variables (C++).
Following C++, (++a) is defined to behave exactly as (a = a + 1.0) does, but is faster and uses less memory. In particular, the result is an assignable lvalue.
| a | Variable to increment. |
Definition at line 35 of file operator_unary_increment.hpp.
|
inline |
Postfix increment operator for variables (C++).
Following C++, the expression (a++) is defined to behave like the sequence of operations
var temp = a; a = a + 1.0; return temp;
| a | Variable to increment. |
Definition at line 51 of file operator_unary_increment.hpp.
|
inline |
Definition at line 14 of file operator_subtraction.hpp.
|
inline |
Definition at line 14 of file operator_unary_minus.hpp.
|
inline |
Definition at line 21 of file operator_subtraction.hpp.
|
inline |
Definition at line 28 of file operator_subtraction.hpp.
|
inline |
Unary negation operator for variables (C++).
.
| a | Argument variable. |
Definition at line 50 of file operator_unary_negative.hpp.
|
inline |
Subtraction operator for variables (C++).
The partial derivatives are defined by
, and
.
| a | First variable operand. |
| b | Second variable operand. |
Definition at line 98 of file operator_subtraction.hpp.
|
inline |
Subtraction operator for variable and scalar (C++).
The derivative for the variable is
, and
| a | First variable operand. |
| b | Second scalar operand. |
Definition at line 113 of file operator_subtraction.hpp.
|
inline |
Subtraction operator for scalar and variable (C++).
The derivative for the variable is
, and
| a | First scalar operand. |
| b | Second variable operand. |
Definition at line 130 of file operator_subtraction.hpp.
|
inline |
Prefix decrement operator for variables (C++).
Following C++, (–a) is defined to behave exactly as
a = a - 1.0)
does, but is faster and uses less memory. In particular, the result is an assignable lvalue.
| a | Variable to decrement. |
Definition at line 39 of file operator_unary_decrement.hpp.
|
inline |
Postfix decrement operator for variables (C++).
Following C++, the expression (a–) is defined to behave like the sequence of operations
var temp = a; a = a - 1.0; return temp;
| a | Variable to decrement. |
Definition at line 55 of file operator_unary_decrement.hpp.
|
inline |
Definition at line 14 of file operator_division.hpp.
|
inline |
Definition at line 22 of file operator_division.hpp.
|
inline |
Definition at line 30 of file operator_division.hpp.
|
inline |
Definition at line 58 of file divide.hpp.
|
inline |
Definition at line 64 of file divide.hpp.
|
inline |
Definition at line 70 of file divide.hpp.
|
inline |
Division operator for two variables (C++).
The partial derivatives for the variables are
, and
.
| a | First variable operand. |
| b | Second variable operand. |
Definition at line 95 of file operator_division.hpp.
|
inline |
Division operator for dividing a variable by a scalar (C++).
The derivative with respect to the variable is
.
| a | Variable operand. |
| b | Scalar operand. |
Definition at line 110 of file operator_division.hpp.
|
inline |
Division operator for dividing a scalar by a variable (C++).
The derivative with respect to the variable is
.
| a | Scalar operand. |
| b | Variable operand. |
Definition at line 127 of file operator_division.hpp.
|
inline |
Definition at line 12 of file operator_less_than.hpp.
|
inline |
Definition at line 18 of file operator_less_than.hpp.
|
inline |
Definition at line 24 of file operator_less_than.hpp.
|
inline |
Less than operator comparing variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 24 of file operator_less_than.hpp.
|
inline |
Less than operator comparing variable's value and a double (C++).
| a | First variable. |
| b | Second value. |
Definition at line 36 of file operator_less_than.hpp.
|
inline |
Less than operator comparing a double and variable's value (C++).
| a | First value. |
| b | Second variable. |
Definition at line 48 of file operator_less_than.hpp.
|
inline |
Definition at line 14 of file operator_less_than_or_equal.hpp.
|
inline |
Definition at line 21 of file operator_less_than_or_equal.hpp.
|
inline |
Less than or equal operator comparing two variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 26 of file operator_less_than_or_equal.hpp.
|
inline |
Definition at line 28 of file operator_less_than_or_equal.hpp.
|
inline |
Less than or equal operator comparing a variable's value and a scalar (C++).
| a | First variable. |
| b | Second value. |
Definition at line 39 of file operator_less_than_or_equal.hpp.
|
inline |
Less than or equal operator comparing a double and variable's value (C++).
| a | First value. |
| b | Second variable. |
Definition at line 52 of file operator_less_than_or_equal.hpp.
|
inline |
Definition at line 14 of file operator_equal.hpp.
|
inline |
Definition at line 21 of file operator_equal.hpp.
|
inline |
Equality operator comparing two variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 26 of file operator_equal.hpp.
|
inline |
Definition at line 28 of file operator_equal.hpp.
|
inline |
Equality operator comparing a variable's value and a double (C++).
| a | First variable. |
| b | Second value. |
Definition at line 39 of file operator_equal.hpp.
|
inline |
Equality operator comparing a scalar and a variable's value (C++).
| a | First scalar. |
| b | Second variable. |
Definition at line 51 of file operator_equal.hpp.
|
inline |
Definition at line 14 of file operator_greater_than.hpp.
|
inline |
Definition at line 21 of file operator_greater_than.hpp.
|
inline |
Greater than operator comparing variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 25 of file operator_greater_than.hpp.
|
inline |
Definition at line 28 of file operator_greater_than.hpp.
|
inline |
Greater than operator comparing variable's value and double (C++).
| a | First variable. |
| b | Second value. |
Definition at line 37 of file operator_greater_than.hpp.
|
inline |
Greater than operator comparing a double and a variable's value (C++).
| a | First value. |
| b | Second variable. |
Definition at line 49 of file operator_greater_than.hpp.
|
inline |
Definition at line 14 of file operator_greater_than_or_equal.hpp.
|
inline |
Definition at line 21 of file operator_greater_than_or_equal.hpp.
|
inline |
Greater than or equal operator comparing two variables' values (C++).
| a | First variable. |
| b | Second variable. |
Definition at line 27 of file operator_greater_than_or_equal.hpp.
|
inline |
Definition at line 28 of file operator_greater_than_or_equal.hpp.
|
inline |
Greater than or equal operator comparing variable's value and double (C++).
| a | First variable. |
| b | Second value. |
Definition at line 40 of file operator_greater_than_or_equal.hpp.
|
inline |
Greater than or equal operator comparing double and variable's value (C++).
| a | First value. |
| b | Second variable. |
Definition at line 53 of file operator_greater_than_or_equal.hpp.
|
inline |
Definition at line 17 of file owens_t.hpp.
|
inline |
Definition at line 40 of file owens_t.hpp.
|
inline |
Definition at line 57 of file owens_t.hpp.
|
inline |
The Owen's T function of h and a.
Used to compute the cumulative density function for the skew normal distribution.
| h | var parameter. |
| a | var parameter. |
Definition at line 82 of file owens_t.hpp.
|
inline |
The Owen's T function of h and a.
Used to compute the cumulative density function for the skew normal distribution.
| h | var parameter. |
| a | double parameter. |
Definition at line 98 of file owens_t.hpp.
|
inline |
The Owen's T function of h and a.
Used to compute the cumulative density function for the skew normal distribution.
| h | double parameter. |
| a | var parameter. |
Definition at line 114 of file owens_t.hpp.
| void stan::agrad::partial_derivative | ( | const F & | f, |
| const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | x, | ||
| int | n, | ||
| T & | fx, | ||
| T & | dfx_dxn | ||
| ) |
Return the partial derivative of the specified multiivariate function at the specified argument.
| T | Argument type |
| F | Function type |
| f | Function | |
| [in] | x | Argument vector |
| [in] | n | Index of argument with which to take derivative |
| [out] | fx | Value of function applied to argument |
| [out] | dfx_dxn | Value of partial derivative |
Definition at line 49 of file autodiff.hpp.
|
inline |
|
inline |
The unit normal cumulative density function for variables (stan).
See stan::math::Phi() for the double-based version.
The derivative is the unit normal density function,
.
| a | Variable argument. |
|
inline |
Approximation of the unit normal CDF for variables (stan).
http://www.jiem.org/index.php/jiem/article/download/60/27
| a | Variable argument. |
Definition at line 48 of file Phi_approx.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| var stan::agrad::precomputed_gradients | ( | const double | value, |
| const std::vector< var > & | vars, | ||
| const std::vector< double > & | gradients | ||
| ) |
This function is provided for Stan users that want to compute gradients without using Stan's auto-diff.
Users need to provide the value, the independent variables, and the gradients of this expression with respect to the indepedent variables.
(For advanced users, a faster version that doesn't involve copying vectors exists can be written.)
| value | The value of the resulting dependent variable. |
| vars | The independent variables. |
| gradients | The value of the gradients of the dependent variable with respect to the independent variables. |
Definition at line 86 of file precomputed_gradients.hpp.
|
inline |
Return the primitive double value for the specified auto-diff variable.
| v | input variable. |
Definition at line 17 of file primitive_value.hpp.
|
inline |
Return the primitive value of the specified forward-mode autodiff variable.
This function applies recursively to higher-order autodiff types to return a primitive double value.
| T | scalar type for autodiff variable. |
| v | input variable. |
Definition at line 22 of file primitive_value.hpp.
|
inline |
Prints the auto-dif variable stack.
This function is used for debugging purposes.
Only works if all members of stack are vari* as it casts to vari*.
| o | ostream to modify |
Definition at line 20 of file print_stack.hpp.
| Eigen::Matrix<fvar<T>,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::qr_Q | ( | const Eigen::Matrix< fvar< T >, Eigen::Dynamic, Eigen::Dynamic > & | m | ) |
| Eigen::Matrix<fvar<T>,Eigen::Dynamic,Eigen::Dynamic> stan::agrad::qr_R | ( | const Eigen::Matrix< fvar< T >, Eigen::Dynamic, Eigen::Dynamic > & | m | ) |
|
inline |
Definition at line 129 of file quad_form.hpp.
|
inline |
Definition at line 145 of file quad_form.hpp.
|
inline |
Definition at line 162 of file quad_form.hpp.
|
inline |
Definition at line 179 of file quad_form.hpp.
|
inlinestatic |
Recover memory used for all variables for reuse.
| std::logic_error | if empty_nested() returns false |
Definition at line 52 of file var_stack.hpp.
|
inlinestatic |
Recover only the memory used for the top nested call.
If there is nothing on the nested stack, then a std::logic_error exception is thrown.
| std::logic_error | if empty_nested() returns true |
Definition at line 72 of file var_stack.hpp.
|
inline |
Definition at line 16 of file rising_factorial.hpp.
|
inline |
Definition at line 28 of file rising_factorial.hpp.
|
inline |
Definition at line 40 of file rising_factorial.hpp.
|
inline |
Definition at line 48 of file rising_factorial.hpp.
|
inline |
Definition at line 53 of file rising_factorial.hpp.
|
inline |
Definition at line 58 of file rising_factorial.hpp.
|
inline |
|
inline |
Returns the rounded form of the specified variable (C99).
See boost::math::round() for the double-based version.
The derivative is zero everywhere but numbers half way between whole numbers, so for convenience the derivative is defined to be everywhere zero,
.
| a | Specified variable. |
|
inline |
Definition at line 19 of file rows_dot_product.hpp.
|
inline |
Definition at line 35 of file rows_dot_product.hpp.
|
inline |
Definition at line 51 of file rows_dot_product.hpp.
|
inline |
Definition at line 277 of file dot_product.hpp.
|
inline |
Definition at line 15 of file rows_dot_self.hpp.
| var stan::agrad::sd | ( | const std::vector< var > & | v | ) |
| var stan::agrad::sd | ( | const Eigen::Matrix< var, R, C > & | m | ) |
|
static |
Reset all adjoint values in the stack to zero.
Definition at line 87 of file chainable.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 14 of file softmax.hpp.
|
inline |
Return the softmax of the specified Eigen vector.
Softmax is guaranteed to return a simplex.
The gradient calculations are unfolded.
| alpha | Unconstrained input vector. |
| std::domain_error | If the input vector is size 0. |
Definition at line 58 of file softmax.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 15 of file square.hpp.
|
inline |
Return the square of the input variable.
Using square(x) is more efficient than using x * x.
| x | Variable to square. |
Definition at line 47 of file square.hpp.
|
inline |
Definition at line 112 of file squared_distance.hpp.
|
inline |
Definition at line 121 of file squared_distance.hpp.
|
inline |
Definition at line 130 of file squared_distance.hpp.
| void stan::agrad::stan_print | ( | std::ostream * | o, |
| const var & | x | ||
| ) |
Definition at line 10 of file stan_print.hpp.
|
inlinestatic |
Record the current position so that recover_memory_nested() can find it.
Definition at line 96 of file var_stack.hpp.
|
inline |
Return the step, or heaviside, function applied to the specified variable (stan).
See stan::math::step() for the double-based version.
The derivative of the step function is zero everywhere but at 0, so for convenience, it is taken to be everywhere zero,
.
| a | Variable argument. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 17 of file tcrossprod.hpp.
|
inline |
Returns the result of post-multiplying a matrix by its own transpose.
| M | Matrix to multiply. |
Definition at line 24 of file tcrossprod.hpp.
|
inline |
Definition at line 15 of file tgamma.hpp.
|
inline |
Return the Gamma function applied to the specified variable (C99).
See boost::math::tgamma() for the double-based version.
The derivative with respect to the argument is

where
is the digamma function.
See boost::math::digamma() for the double-based version.
| a | Argument to function. |
Definition at line 66 of file tgamma.hpp.
|
inline |
Definition at line 17 of file to_fvar.hpp.
|
inline |
Definition at line 24 of file to_fvar.hpp.
|
inline |
Definition at line 30 of file to_fvar.hpp.
|
inline |
Definition at line 40 of file to_fvar.hpp.
|
inline |
Definition at line 46 of file to_fvar.hpp.
|
inline |
Definition at line 52 of file to_fvar.hpp.
|
inline |
Definition at line 58 of file to_fvar.hpp.
|
inline |
Definition at line 64 of file to_fvar.hpp.
|
inline |
Definition at line 73 of file to_fvar.hpp.
|
inline |
Definition at line 79 of file to_fvar.hpp.
|
inline |
Definition at line 85 of file to_fvar.hpp.
|
inline |
Definition at line 91 of file to_fvar.hpp.
|
inline |
Definition at line 97 of file to_fvar.hpp.
|
inline |
Definition at line 106 of file to_fvar.hpp.
|
inline |
Definition at line 112 of file to_fvar.hpp.
|
inline |
Definition at line 118 of file to_fvar.hpp.
|
inline |
Definition at line 124 of file to_fvar.hpp.
|
inline |
Definition at line 131 of file to_fvar.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | x | A scalar value |
Definition at line 21 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | x | An automatic differentiation variable. |
Definition at line 32 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | m | A Matrix with scalars |
Definition at line 43 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | m | A Matrix with automatic differentiation variables. |
Definition at line 58 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | v | A Vector of scalars |
Definition at line 70 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | v | A Vector of automatic differentiation variables |
Definition at line 85 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | rv | A row vector of scalars |
Definition at line 97 of file to_var.hpp.
|
inline |
Converts argument to an automatic differentiation variable.
Returns a stan::agrad::var variable with the input value.
| [in] | rv | A row vector with automatic differentiation variables |
Definition at line 112 of file to_var.hpp.
|
inline |
Compute the trace of an inverse quadratic form.
I.E., this computes trace(D B^T A^-1 B) where D is a square matrix and the LDLT_factor of A is provided.
Definition at line 25 of file trace_gen_inv_quad_form_ldlt.hpp.
|
inline |
Definition at line 15 of file trace_gen_quad_form.hpp.
|
inline |
Definition at line 111 of file trace_gen_quad_form.hpp.
|
inline |
Compute the trace of an inverse quadratic form.
I.E., this computes trace(B^T A^-1 B) where the LDLT_factor of A is provided.
Definition at line 162 of file trace_inv_quad_form_ldlt.hpp.
|
inline |
Definition at line 19 of file trace_quad_form.hpp.
|
inline |
Definition at line 99 of file trace_quad_form.hpp.
|
inline |
|
inline |
Returns the truncatation of the specified variable (C99).
See boost::math::trunc() for the double-based version.
The derivative is zero everywhere but at integer values, so for convenience the derivative is defined to be everywhere zero,
.
| a | Specified variable. |
|
inline |
Convert a matrix to a matrix of doubles.
When the input is already a matrix of doubles a reference is returned.
This is used as a convenience function for implementing varis of matrix operations.
Definition at line 16 of file value_of.hpp.
|
inline |
Return the value of the specified variable.
| v | Variable. |
Definition at line 16 of file value_of.hpp.
|
inline |
Return the value of the specified variable.
This function is used internally by auto-dif functions along with stan::math::value_of(T x) to extract the double value of either a scalar or an auto-dif variable. This function will be called when the argument is a stan::agrad::var even if the function is not referred to by namespace because of argument-dependent lookup.
| v | Variable. |
Definition at line 22 of file value_of.hpp.
|
inline |
Convert a matrix to a matrix of doubles.
When the input is already a matrix of vars a new matrix is returned with the value of the constituent vars.
This is used as a convenience function for implementing varis of matrix operations.
Definition at line 27 of file value_of.hpp.
| var stan::agrad::variance | ( | const std::vector< var > & | v | ) |
Return the sample variance of the specified standard vector.
Raise domain error if size is not greater than zero.
| [in] | v | a vector |
Definition at line 51 of file variance.hpp.
| var stan::agrad::variance | ( | const Eigen::Matrix< var, R, C > & | m | ) |
Definition at line 68 of file variance.hpp.
| memory::stack_alloc stan::agrad::memalloc_ |
Definition at line 16 of file var_stack.cpp.
| std::vector< size_t > stan::agrad::nested_var_alloc_stack_starts_ |
Definition at line 20 of file var_stack.cpp.
| std::vector< size_t > stan::agrad::nested_var_nochain_stack_sizes_ |
Definition at line 19 of file var_stack.cpp.
| std::vector< size_t > stan::agrad::nested_var_stack_sizes_ |
Definition at line 18 of file var_stack.cpp.
| std::vector< chainable_alloc * > stan::agrad::var_alloc_stack_ |
Definition at line 15 of file var_stack.cpp.
| std::vector< chainable * > stan::agrad::var_nochain_stack_ |
Definition at line 14 of file var_stack.cpp.
| std::vector< chainable * > stan::agrad::var_stack_ |
Definition at line 13 of file var_stack.cpp.