1 /*----------------------------------------------------------------------------
2  ADOL-C -- Automatic Differentiation by Overloading in C++
3  File:     oplate.h
4  Revision: $Id: oplate.h 762 2018-12-18 15:36:05Z mbanovic $
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 
23 enum OPCODES {
24   death_not = 0,
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 = 19,
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 = 31,
56   end_of_tape,
57   start_of_tape,
58   end_of_op,
59   end_of_int,
60   end_of_val,
61   cond_assign = 37,
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 = 46,
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 = 54,
79   eq_min_prod,
80   erf_op,
81   ceil_op,
82   floor_op,
83   ext_diff = 59,
84   ext_diff_iArr,
85   ignore_me,
86   ext_diff_v2,
87   cond_eq_assign = 63,
88   cond_eq_assign_s,
89   subscript = 80,
90   subscript_ref,
91   ref_assign_d_zero,
92   ref_assign_d_one,
93   ref_assign_d,
94   ref_assign_a,
95   ref_assign_ind,
96   ref_incr_a,
97   ref_decr_a,
98   ref_eq_plus_d,
99   ref_eq_min_d,
100   ref_eq_plus_a,
101   ref_eq_min_a,
102   ref_eq_mult_d,
103   ref_eq_mult_a,
104   ref_copyout,
105   ref_cond_assign,
106   ref_cond_assign_s,
107   assign_p = 98,
108   eq_plus_p,
109   eq_min_p,
110   eq_mult_p,
111   ref_assign_p,
112   ref_eq_plus_p,
113   ref_eq_min_p,
114   ref_eq_mult_p,
115   plus_a_p,
116   min_a_p,
117   mult_a_p,
118   div_p_a,
119   pow_op_p,
120   neg_sign_p,
121   recipr_p,
122   vec_copy,
123   vec_dot,
124   vec_axpy,
125   ref_cond_eq_assign = 116,
126   ref_cond_eq_assign_s,
127   eq_a_p = 119,
128   neq_a_p,
129   le_a_p,
130   gt_a_p,
131   ge_a_p,
132   lt_a_p,
133   eq_a_a = 125,
134   neq_a_a,
135   le_a_a,
136   gt_a_a,
137   ge_a_a,
138   lt_a_a,
139   ampi_send = 131,
140   ampi_recv,
141   ampi_isend,
142   ampi_irecv,
143   ampi_wait,
144   ampi_barrier,
145   ampi_gather,
146   ampi_scatter,
147   ampi_allgather,
148   ampi_gatherv,
149   ampi_scatterv,
150   ampi_allgatherv,
151   ampi_bcast,
152   ampi_reduce,
153   ampi_allreduce,
154   medi_call,
155   cbrt_op
156 };
157 
158 /****************************************************************************/
159 #endif
160