Automatic Differentiation
 
Loading...
Searching...
No Matches
stan::math::rowwise_reduction< Derived, T, operation, PassZero > Class Template Reference

Detailed Description

template<typename Derived, typename T, typename operation, bool PassZero>
class stan::math::rowwise_reduction< Derived, T, operation, PassZero >

Represents a rowwise reduction in kernel generator expressions.

Template Parameters
Derivedderived type
Ttype of first argument
operationtype with member function generate that accepts two variable names and returns OpenCL source code for reduction operation_cl
PassZerowhether operation passes trough zeros

Definition at line 122 of file rowwise_reduction.hpp.

#include <rowwise_reduction.hpp>

+ Inheritance diagram for stan::math::rowwise_reduction< Derived, T, operation, PassZero >:

Public Types

using T_no_ref = std::remove_reference_t< T >
 
using Scalar = typename T_no_ref::Scalar
 
using base = operation_cl< Derived, Scalar, T >
 
using Deriv = Derived
 
using ArgsTuple = std::tuple< Args... >
 
using view_transitivity = std::tuple< std::is_same< Args, void >... >
 

Public Member Functions

 rowwise_reduction (T &&a, const std::string &init)
 Constructor.
 
kernel_parts get_kernel_parts (std::unordered_map< const void *, const char * > &generated, std::unordered_map< const void *, const char * > &generated_all, name_generator &name_gen, const std::string &row_index_name, const std::string &col_index_name, bool view_handled) const
 Generates kernel code for this and nested expressions.
 
kernel_parts generate (const std::string &row_index_name, const std::string &col_index_name, const bool view_handled, const std::string &var_name_arg) const
 Generates kernel code for this expression.
 
void set_args (std::unordered_map< const void *, const char * > &generated, std::unordered_map< const void *, const char * > &generated_all, cl::Kernel &kernel, int &arg_num) const
 Sets kernel arguments for this and nested expressions.
 
int cols () const
 Number of columns of a matrix that would be the result of evaluating this expression.
 
std::pair< int, int > extreme_diagonals () const
 Determine indices of extreme sub- and superdiagonals written.
 
int rows () const
 Number of rows of a matrix that would be the result of evaluating this expression.
 
Derived & derived ()
 Casts the instance into its derived type.
 
const Derived & derived () const
 Casts the instance into its derived type.
 
const auto & get_arg () const
 Returns an argument to this operation.
 
matrix_cl< std::remove_reference_t< T >::Scalareval () const
 Evaluates the expression.
 
void evaluate_into (T_lhs &lhs) const
 Evaluates this expression into given left-hand-side expression.
 
std::string get_kernel_source_for_evaluating_into (const T_lhs &lhs) const
 Generates kernel source for evaluating this expression into given left-hand-side expression.
 
kernel_parts get_whole_kernel_parts (std::unordered_map< const void *, const char * > &generated, std::unordered_map< const void *, const char * > &generated_all, name_generator &ng, const std::string &row_index_name, const std::string &col_index_name, const T_result &result) const
 Generates kernel code for assigning this expression into result expression.
 
void modify_argument_indices (std::string &row_index_name, std::string &col_index_name) const
 Does nothing.
 
void add_read_event (cl::Event &e) const
 Adds read event to any matrices used by nested expressions.
 
void get_write_events (std::vector< cl::Event > &events) const
 Adds all write events on any matrices used by nested expressions to a list.
 
int size () const
 Size of a matrix that would be the result of evaluating this expression.
 
int thread_rows () const
 Number of rows threads need to be launched for.
 
int thread_cols () const
 Number of columns threads need to be launched for.
 
matrix_cl_view view () const
 View of a matrix that would be the result of evaluating this expression.
 
void get_unique_matrix_accesses (std::vector< int > &uids, std::unordered_map< const void *, int > &id_map, int &next_id) const
 Collects data that is needed beside types to uniqly identify a kernel generator expression.
 

Public Attributes

std::string var_name_
 

Static Public Attributes

static const bool require_specific_local_size
 
static constexpr int N
 
static constexpr int dynamic
 

Protected Attributes

std::string init_
 
std::tuple< Args... > arguments_
 

The documentation for this class was generated from the following file: