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