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 ifthenelse branches the old behaviour should continue and we can do
nothing.
Signedoffby: Kshitij Kulshreshtha <kshitij@…>


Property svn:keywords set to
Author Date Id Revision

File size:
2.1 KB

Line  

1  /* 

2  ADOLC  Automatic Differentiation by Overloading in C++ 

3  File: oplate.h 

4  Revision: $Id: oplate.h 360 20121019 09:22:43Z kulshres $ 

5  Contents: Numeric values for the various opcodes used by ADOLC. 

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 ADOLC. 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, 

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.