source: stable/2.4/ADOL-C/src/oplate.h @ 397

Last change on this file since 397 was 360, checked in by kulshres, 7 years ago

implement traced logical operators for condassign and advector

this will help to handle code branching as long as condassign or
advector based generalized conditional assignment is used.

These operators are only used if both operands are badoubles. If the
old behaviour is required then at least one of the two operands must
be a double.

For if-then-else branches the old behaviour should continue and we can do
nothing.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File:     oplate.h
4 Revision: $Id: oplate.h 360 2012-10-19 09:22:43Z kulshres $
5 Contents: Numeric values for the various opcodes used by ADOL-C.
6 
7 Copyright (c) Andrea Walther, Andreas Griewank, Andreas Kowarz,
8               Hristo Mitev, Sebastian Schlenkrich, Jean Utke, Olaf Vogel,
9               Kshitij Kulshreshtha
10 
11 This file is part of ADOL-C. This software is provided as open source.
12 Any use, reproduction, or distribution of the software constitutes
13 recipient's acceptance of the terms of the accompanying license file.
14           
15----------------------------------------------------------------------------*/
16
17#if !defined(ADOLC_OPLATE_P_H)
18#define ADOLC_OPLATE_P_H 1
19
20/****************************************************************************/
21/* opcodes */
22
23enum OPCODES {
24  death_not,
25  assign_ind,
26  assign_dep,
27  assign_a,
28  assign_d,
29  eq_plus_d,
30  eq_plus_a,
31  eq_min_d,
32  eq_min_a,
33  eq_mult_d,
34  eq_mult_a,
35  plus_a_a,
36  plus_d_a,
37  min_a_a,
38  min_d_a,
39  mult_a_a,
40  mult_d_a,
41  div_a_a,
42  div_d_a,
43  exp_op,
44  cos_op,
45  sin_op,
46  atan_op,
47  log_op,
48  pow_op,
49  asin_op,
50  acos_op,
51  sqrt_op,
52  asinh_op,
53  acosh_op,
54  atanh_op,
55  gen_quad,
56  end_of_tape,
57  start_of_tape,
58  end_of_op,
59  end_of_int,
60  end_of_val,
61  cond_assign,
62  cond_assign_s,
63  take_stock_op,
64  assign_d_one,
65  assign_d_zero,
66  incr_a,
67  decr_a,
68  neg_sign_a,
69  pos_sign_a,
70  min_op,
71  abs_val,
72  eq_zero,
73  neq_zero,
74  le_zero,
75  gt_zero,
76  ge_zero,
77  lt_zero,
78  eq_plus_prod,
79  eq_min_prod,
80  erf_op,
81  ceil_op,
82  floor_op,
83  ext_diff,
84  ignore_me,
85  subscript = 80,
86  subscript_ref,
87  ref_assign_d_zero,
88  ref_assign_d_one,
89  ref_assign_d,
90  ref_assign_a,
91  ref_assign_ind,
92  ref_incr_a,
93  ref_decr_a,
94  ref_eq_plus_d,
95  ref_eq_min_d,
96  ref_eq_plus_a,
97  ref_eq_min_a,
98  ref_eq_mult_d,
99  ref_eq_mult_a,
100  ref_copyout,
101  ref_cond_assign,
102  ref_cond_assign_s,
103  eq_a_a = 125,
104  neq_a_a,
105  le_a_a,
106  gt_a_a,
107  ge_a_a,
108  lt_a_a
109};
110
111/****************************************************************************/
112#endif
Note: See TracBrowser for help on using the repository browser.