CppADCodeGen  HEAD
A C++ Algorithmic Differentiation Package with Source Code Generation
scope_path_element.hpp
1 #ifndef CPPAD_CG_SCOPE_PATH_INCLUDED
2 #define CPPAD_CG_SCOPE_PATH_INCLUDED
3 /* --------------------------------------------------------------------------
4  * CppADCodeGen: C++ Algorithmic Differentiation with Source Code Generation:
5  * Copyright (C) 2013 Ciengis
6  *
7  * CppADCodeGen is distributed under multiple licenses:
8  *
9  * - Eclipse Public License Version 1.0 (EPL1), and
10  * - GNU General Public License Version 3 (GPL3).
11  *
12  * EPL1 terms and conditions can be found in the file "epl-v10.txt", while
13  * terms and conditions for the GPL3 can be found in the file "gpl3.txt".
14  * ----------------------------------------------------------------------------
15  * Author: Joao Leal
16  */
17 
18 namespace CppAD {
19 namespace cg {
20 
21 template<class Base>
22 class ScopePathElement {
23 public:
24  using ScopeIDType = typename CodeHandler<Base>::ScopeIDType;
25 public:
26  // the color/index associated with the scope
27  ScopeIDType color;
28  // the node that marks the beginning of this scope
29  OperationNode<Base>* beginning;
30  // the node that marks the end of this scope
31  OperationNode<Base>* end;
32 public:
33 
34  inline ScopePathElement(ScopeIDType color = 0,
35  OperationNode<Base>* nEnd = nullptr,
36  OperationNode<Base>* nBegin = nullptr) :
37  color(color),
38  beginning(nBegin),
39  end(nEnd) {
40  }
41 
42 };
43 
44 } // END cg namespace
45 } // END CppAD namespace
46 
47 #endif