source: CIVL/examples/compare/provesa/runtime_dense_reverse/ad_tape.h

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*!#########################################################
2! This file is part of OpenAD released under the LGPL. #
3! The full COPYRIGHT notice can be found in the top #
4! level directory of the OpenAD distribution #
5!#########################################################
6*/
7 #ifndef __AD_TAPE_HPP_
8 #define __AD_TAPE_HPP_
9
10// #define max_double_tape_size 10000000
11// #define max_integer_tape_size 10000000
12// #define max_logical_tape_size 10000
13// #define max_character_tape_size 1000000
14// #define max_stringlength_tape_size 1000
15
16#define max_double_tape_size 100
17#define max_integer_tape_size 100
18#define max_logical_tape_size 100
19#define max_character_tape_size 100
20#define max_stringlength_tape_size 1000
21
22 void __ADIC_TapeInit();
23 void __ADIC_Dump();
24 void __ADIC_TapeDump();
25
26
27 extern double __ADIC_double_tape[max_double_tape_size];
28 extern int __ADIC_integer_tape[max_integer_tape_size];
29 extern int __ADIC_logical_tape[max_logical_tape_size];
30 extern char* __ADIC_character_tape[max_character_tape_size];
31 extern int __ADIC_stringlength_tape[max_stringlength_tape_size];
32
33 extern int __ADIC_double_tape_pointer;
34 extern int __ADIC_integer_tape_pointer;
35 extern int __ADIC_logical_tape_pointer;
36 extern int __ADIC_character_tape_pointer;
37 extern int __ADIC_stringlength_tape_pointer;
38
39#define push_s0(var) \
40{ \
41 __ADIC_double_tape[__ADIC_double_tape_pointer]=var; \
42 __ADIC_double_tape_pointer=__ADIC_double_tape_pointer+1; \
43}
44
45#define pop_s0(var) \
46{ \
47 __ADIC_double_tape_pointer=__ADIC_double_tape_pointer-1; \
48 var = __ADIC_double_tape[__ADIC_double_tape_pointer]; \
49}
50
51#define push_i_s0(var) \
52{ \
53 __ADIC_integer_tape[__ADIC_integer_tape_pointer]=var; \
54 __ADIC_integer_tape_pointer=__ADIC_integer_tape_pointer+1; \
55}
56
57#define pop_i_s0(var) \
58{ \
59 __ADIC_integer_tape_pointer=__ADIC_integer_tape_pointer-1; \
60 var = __ADIC_integer_tape[__ADIC_integer_tape_pointer]; \
61}
62
63#endif
Note: See TracBrowser for help on using the repository browser.