Automatic Differentiation
 
Loading...
Searching...
No Matches
stan::math::holder_cl_< T, Ptrs > Class Template Reference

Detailed Description

template<typename T, typename... Ptrs>
class stan::math::holder_cl_< T, Ptrs >

Represents a no-op in kernel generator expressions.

This object also owns pointers to dynamically allocated objects used in its argument expression. When this object is destructed, those objects are deleted.

Template Parameters
Derivedderived type
Ttype of the argument

Definition at line 33 of file holder_cl.hpp.

#include <holder_cl.hpp>

+ Inheritance diagram for stan::math::holder_cl_< T, Ptrs >:

Public Types

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

Public Member Functions

 holder_cl_ (T &&a, Ptrs *... ptrs)
 Constructor.
 
holder_cl_< T, Ptrs... > & derived ()
 Casts the instance into its derived type.
 
const holder_cl_< T, Ptrs... > & 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.
 
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 modify_argument_indices (std::string &row_index_name, std::string &col_index_name) const
 Does nothing.
 
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 nested expressions.
 
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 rows () const
 Number of rows of a matrix that would be the result of evaluating this expression.
 
int cols () const
 Number of columns of a matrix that would be the result of evaluating this expression.
 
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.
 
std::pair< int, int > extreme_diagonals () const
 Determine indices of extreme sub- and superdiagonals written.
 
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::tuple< std::unique_ptr< Ptrs >... > m_unique_ptrs
 
std::tuple< Args... > arguments_
 

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