CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cexp_info.hpp
Go to the documentation of this file.
1 // $Id$
2 # ifndef CPPAD_LOCAL_OPTIMIZE_CEXP_INFO_HPP
3 # define CPPAD_LOCAL_OPTIMIZE_CEXP_INFO_HPP
4 /* --------------------------------------------------------------------------
5 CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-17 Bradley M. Bell
6 
7 CppAD is distributed under multiple licenses. This distribution is under
8 the terms of the
9  Eclipse Public License Version 1.0.
10 
11 A copy of this license is included in the COPYING file of this distribution.
12 Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
13 -------------------------------------------------------------------------- */
14 # include <cppad/local/declare_ad.hpp> // defines CompareOp
15 # include <cppad/utility/vector.hpp>
16 
17 /*!
18 \file cexp_info.hpp
19 Information about one conditional expression.
20 */
21 
22 // BEGIN_CPPAD_LOCAL_OPTIMIZE_NAMESPACE
23 namespace CppAD { namespace local { namespace optimize {
24 /*!
25 Information about one conditional expression.
26 */
28  /// The operator index for this conditional expression operation
29  size_t i_op;
30 
31  /// (flag & 1) is true if and only if left is a variable
32  /// (flag & 2) is true if and only if right is a variable
33  size_t flag;
34 
35  /// variable or parameter index for left comparison operand
36  size_t left;
37 
38  /// variable or parameter index for right comparison operand
39  size_t right;
40 
41  /// maximum variable index between left and right (ignoring parameters).
43 
44  /// set of operator that are not used when comparison result is true
45  /// Note that UsrapOp, UsravOp, UsrrpOp, and UsrrvOp, are not in this
46  /// vector and should be skipped when the corresponding UserOp are skipped.
48 
49  /// set of variables that are not used when comparison result is false
50  /// Note that UsrapOp, UsravOp, UsrrpOp, and UsrrvOp, are not in this
51  /// vector and should be skipped when the corresponding UserOp are skipped.
53 
54  /// comparision operator for this conditional expression
56 };
57 
58 // Information about the conditional skip in the new operation sequence
60  /// new variable or parameter index for left comparison operand
61  size_t left;
62  /// new variable or parameter index for right comparison operand
63  size_t right;
64  /// maximum variable index between left and right (ignoring parameters).
66  /// index where this conditional skips arguments start
67  size_t i_arg;
68 };
69 
70 } } } // END_CPPAD_LOCAL_OPTIMIZE_NAMESPACE
71 
72 # endif
size_t max_left_right
maximum variable index between left and right (ignoring parameters).
Definition: cexp_info.hpp:42
CppAD::vector< size_t > skip_op_false
set of variables that are not used when comparison result is false Note that UsrapOp, UsravOp, UsrrpOp, and UsrrvOp, are not in this vector and should be skipped when the corresponding UserOp are skipped.
Definition: cexp_info.hpp:52
size_t left
variable or parameter index for left comparison operand
Definition: cexp_info.hpp:36
CppAD forward declarations; i.e., before definition.
size_t max_left_right
maximum variable index between left and right (ignoring parameters).
Definition: cexp_info.hpp:65
size_t i_arg
index where this conditional skips arguments start
Definition: cexp_info.hpp:67
size_t left
new variable or parameter index for left comparison operand
Definition: cexp_info.hpp:61
size_t right
new variable or parameter index for right comparison operand
Definition: cexp_info.hpp:63
Information about one conditional expression.
Definition: cexp_info.hpp:27
size_t right
variable or parameter index for right comparison operand
Definition: cexp_info.hpp:39
File used to define CppAD::vector and CppAD::vectorBool.
CppAD::vector< size_t > skip_op_true
set of operator that are not used when comparison result is true Note that UsrapOp, UsravOp, UsrrpOp, and UsrrvOp, are not in this vector and should be skipped when the corresponding UserOp are skipped.
Definition: cexp_info.hpp:47
CompareOp cop
comparision operator for this conditional expression
Definition: cexp_info.hpp:55
size_t flag
(flag &amp; 1) is true if and only if left is a variable (flag &amp; 2) is true if and only if right is a var...
Definition: cexp_info.hpp:33
size_t i_op
The operator index for this conditional expression operation.
Definition: cexp_info.hpp:29