1#ifndef STAN_MATH_OPENCL_REV_DIAG_PRE_MULTIPLY_HPP 
    2#define STAN_MATH_OPENCL_REV_DIAG_PRE_MULTIPLY_HPP 
   28    typename T1, 
typename T2, require_any_var_t<T1, T2>* = 
nullptr,
 
   29    require_all_nonscalar_prim_or_rev_kernel_expression_t<T1, T2>* = 
nullptr>
 
   40        if (v1_arena.cols() == 1) {
 
   41          if constexpr (is_autodiff_v<std::decay_t<T1>>) {
 
   43                += rowwise_sum(elt_multiply(res.adj(), value_of(v2_arena)));
 
   50          if constexpr (is_autodiff_v<std::decay_t<T1>>) {
 
   54          if constexpr (is_autodiff_v<std::decay_t<T2>>) {
 
Represents an arithmetic matrix on the OpenCL device.
 
elt_multiply_< as_operation_cl_t< T_a >, as_operation_cl_t< T_b > > elt_multiply(T_a &&a, T_b &&b)
 
auto transpose(Arg &&a)
Transposes a kernel generator expression.
 
auto rowwise_broadcast(T &&a)
Broadcast an expression in rowwise dimmension.
 
auto rowwise_sum(T &&a)
Rowwise sum reduction of a kernel generator expression.
 
auto diag_pre_multiply(const T1 &m1, const T2 &m2)
Return the product of the diagonal matrix formed from the vector or row_vector and a matrix.
 
var_value< plain_type_t< T > > make_callback_var(T &&value, F &&functor)
Creates a new var initialized with a callback_vari with a given value and reverse-pass callback funct...
 
T value_of(const fvar< T > &v)
Return the value of the specified variable.
 
auto & adjoint_of(const T &x) noexcept
Returns a reference to a variable's adjoint.
 
constexpr bool is_autodiff_v
 
typename internal::arena_type_impl< std::decay_t< T > >::type arena_t
Determines a type that can be used in place of T that does any dynamic allocations on the AD stack.
 
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...