TMB Documentation  v1.9.11
Public Member Functions | Static Public Attributes | List of all members
TMBad::global::RepCompress< Operator1 > Struct Template Reference

Replicate an operator and apply input compression. More...

#include <global.hpp>

Public Member Functions

void dependencies (Args<> &args, Dependencies &dep) const
 Calculate all inputs.
 
template<class Type >
void forward (ForwardArgs< Type > &args)
 Forward method applicable for Scalar and bool case.
 
template<class Type >
void reverse (ReverseArgs< Type > &args)
 Reverse method applicable for Scalar and bool case.
 
- Public Member Functions inherited from TMBad::global::Operator< ninput, noutput >
void dependencies_updating (Args<> &args, Dependencies &dep) const
 Default implementation of OperatorPure::dependencies_updating()
 
void * operator_data ()
 Return operator specific dynamic information (optional)
 
OperatorPureother_fuse (OperatorPure *self, OperatorPure *other)
 How to fuse this operator (self) with another (other)
 
void print (print_config cfg)
 Print this operator (optional)
 

Static Public Attributes

static const int dependent_variable = Operator1::dependent_variable
 Is output of this operator a dependent variable ? More...
 
static const bool have_forward_incr_reverse_decr = false
 Have forward_incr and reverse_incr members been defined ? More...
 
static const bool have_forward_mark_reverse_mark = true
 Have forward_mark and reverse_mark members been defined ? More...
 
static const bool have_forward_reverse = true
 Have forward and reverse members been defined ? More...
 
static const bool have_input_size_output_size = true
 Have input_size and output_size members been defined ? More...
 
static const int independent_variable = Operator1::independent_variable
 Is output of this operator an independent variable ? More...
 
static const bool is_linear = Operator1::is_linear
 Is this a linear operator ? More...
 
- Static Public Attributes inherited from TMBad::global::DynamicOperator<-1, -1 >
static const bool dynamic
 
static const int max_fuse_depth
 
- Static Public Attributes inherited from TMBad::global::Operator< ninput, noutput >
static const bool add_forward_replay_copy
 Should this operator replay it self by invoking the copy CTOR ?
 
static const bool add_static_identifier
 Should this operator have a static identifier ?
 
static const bool allow_remap
 Is it safe to remap the inputs of this operator? More...
 
static const int dependent_variable
 Is output of this operator a dependent variable ?
 
static const bool dynamic
 Does this operator require dynamic allocation ?
 
static const bool elimination_protected
 Protect this operator from elimination by the tape optimizer ?
 
static const bool have_dependencies
 Have dependencies member been defined ?
 
static const bool have_eval
 Does this class have an eval member from which to define forward ?
 
static const bool have_forward_incr_reverse_decr
 Have forward_incr and reverse_incr members been defined ?
 
static const bool have_forward_mark_reverse_mark
 Have forward_mark and reverse_mark members been defined ?
 
static const bool have_forward_reverse
 Have forward and reverse members been defined ?
 
static const bool have_increment_decrement
 Have increment and decrement members been defined ?
 
static const bool have_input_size_output_size
 Have input_size and output_size members been defined ?
 
static const bool implicit_dependencies
 Does this operator have implicit dependencies? More...
 
static const int independent_variable
 Is output of this operator an independent variable ?
 
static const bool is_constant
 Is this a constant operator ?
 
static const bool is_linear
 Is this a linear operator ?
 
static const int max_fuse_depth
 How many times can this operator be doubled ?
 
static const int ninput
 Number of operator inputs.
 
static const int noutput
 Number of operator outputs.
 
static const bool smart_pointer
 Is this operator a 'smart pointer' (with reference counting) ?
 
static const bool updating
 This operator may update existing variables ? More...
 

Detailed Description

template<class Operator1>
struct TMBad::global::RepCompress< Operator1 >

Replicate an operator and apply input compression.

This operator is like global::Rep except that it also represents input compression. Input compression means that the input indices of any given operator can be obtained by adding a constant vector to the inputs of the previous operator.

Note
When replacing a batch of binary operators by RepCompress the memory reduction is assymptotically 2/3 (ratio will in general depend on the configuration typedefs).
Warning
TO BE DEPRECATED. HAS IMPLICIT DEPENDENCIES.

Definition at line 1957 of file global.hpp.

Member Data Documentation

§ dependent_variable

template<class Operator1>
const int TMBad::global::RepCompress< Operator1 >::dependent_variable = Operator1::dependent_variable
static

Is output of this operator a dependent variable ?

Definition at line 1961 of file global.hpp.

§ have_forward_incr_reverse_decr

template<class Operator1>
const bool TMBad::global::RepCompress< Operator1 >::have_forward_incr_reverse_decr = false
static

Have forward_incr and reverse_incr members been defined ?

Definition at line 2078 of file global.hpp.

§ have_forward_mark_reverse_mark

template<class Operator1>
const bool TMBad::global::RepCompress< Operator1 >::have_forward_mark_reverse_mark = true
static

Have forward_mark and reverse_mark members been defined ?

Definition at line 2082 of file global.hpp.

§ have_forward_reverse

template<class Operator1>
const bool TMBad::global::RepCompress< Operator1 >::have_forward_reverse = true
static

Have forward and reverse members been defined ?

Definition at line 2080 of file global.hpp.

§ have_input_size_output_size

template<class Operator1>
const bool TMBad::global::RepCompress< Operator1 >::have_input_size_output_size = true
static

Have input_size and output_size members been defined ?

Definition at line 1972 of file global.hpp.

§ independent_variable

template<class Operator1>
const int TMBad::global::RepCompress< Operator1 >::independent_variable = Operator1::independent_variable
static

Is output of this operator an independent variable ?

Definition at line 1959 of file global.hpp.

§ is_linear

template<class Operator1>
const bool TMBad::global::RepCompress< Operator1 >::is_linear = Operator1::is_linear
static

Is this a linear operator ?

Definition at line 1963 of file global.hpp.


The documentation for this struct was generated from the following file:
License: GPL v2