Candl
0.6.1
|
00001 00037 /****************************************************************************** 00038 * THIS FILE HAS BEEN AUTOMATICALLY GENERATED FROM candl.h.in BY configure * 00039 ******************************************************************************/ 00040 00041 00042 #ifndef CANDL_H 00043 # define CANDL_H 00044 00045 # define CANDL_RELEASE "0.6.1" 00046 # define CANDL_VERSION "64" 00047 # define CANDL_SUPPORTS_SCOPLIB 00048 # define CANDL_SUPPORTS_ISL 00049 00050 00051 # include <piplib/piplib64.h> 00052 # include <candl/options.h> 00053 # include <candl/matrix.h> 00054 # include <candl/statement.h> 00055 # include <candl/program.h> 00056 # include <candl/dependence.h> 00057 # include <candl/ddv.h> 00058 # include <candl/violation.h> 00059 # include <candl/pruning.h> 00060 00061 # define CANDL_UNSET -1 /* Must be negative (we do use that property). 00062 * All other constants have to be different. 00063 */ 00064 00065 # define CANDL_RAW 1 00066 # define CANDL_WAR 2 00067 # define CANDL_WAW 3 00068 # define CANDL_RAR 4 00069 # define CANDL_RAW_SCALPRIV 5 00070 00071 # define CANDL_ASSIGNMENT 1 00072 # define CANDL_P_REDUCTION 2 00073 # define CANDL_M_REDUCTION 3 00074 # define CANDL_T_REDUCTION 4 00075 00076 # define CANDL_EQUAL 1 00077 # define CANDL_POSIT 2 00078 # define CANDL_LATER 3 00079 # define CANDL_NEVER 4 00080 00081 # define CANDL_NB_INFOS 3 00082 00083 # define CANDL_MAX_STRING 2048 00084 # define CANDL_TEMP_OUTPUT "candl.temp" 00085 00086 /* Useful macros. */ 00087 # define CANDL_max(x,y) ((x) > (y)? (x) : (y)) 00088 # define CANDL_min(x,y) ((x) < (y)? (x) : (y)) 00089 00090 # define CANDL_FAIL(msg) { fprintf(stderr, "[Candl] " msg "\n"); exit(1); } 00091 00092 /****************************************************************************** 00093 * FORMAT * 00094 ******************************************************************************/ 00095 #if defined(LINEAR_VALUE_IS_LONGLONG) 00096 #define CANDL_FMT "%4lld " 00097 #elif defined(LINEAR_VALUE_IS_LONG) 00098 #define CANDL_FMT "%4ld " 00099 #else /* GNUMP */ 00100 #define CANDL_FMT "%4s" 00101 #endif 00102 00103 /****************************************************************************** 00104 * CANDL GMP MACROS * 00105 ******************************************************************************/ 00106 #ifdef LINEAR_VALUE_IS_MP 00107 /* Basic Macros */ 00108 #define CANDL_init(val) (mpz_init((val))) 00109 #define CANDL_assign(v1,v2) (mpz_set((v1),(v2))) 00110 #define CANDL_set_si(val,i) (mpz_set_si((val),(i))) 00111 #define CANDL_get_si(val) (mpz_get_si((val))) 00112 #define CANDL_clear(val) (mpz_clear((val))) 00113 #define CANDL_print(Dst,fmt,val) { char *str; \ 00114 str = mpz_get_str(0,10,(val)); \ 00115 fprintf((Dst),(fmt),str); free(str); \ 00116 } 00117 00118 /* Boolean operators on 'Value' or 'Entier' */ 00119 #define CANDL_eq(v1,v2) (mpz_cmp((v1),(v2)) == 0) 00120 #define CANDL_ne(v1,v2) (mpz_cmp((v1),(v2)) != 0) 00121 00122 /* Binary operators on 'Value' or 'Entier' */ 00123 #define CANDL_increment(ref,val) (mpz_add_ui((ref),(val),1)) 00124 #define CANDL_decrement(ref,val) (mpz_sub_ui((ref),(val),1)) 00125 #define CANDL_subtract(ref,val1,val2) (mpz_sub((ref),(val1),(val2))) 00126 #define CANDL_oppose(ref,val) (mpz_neg((ref),(val))) 00127 00128 /* Conditional operations on 'Value' or 'Entier' */ 00129 #define CANDL_zero_p(val) (mpz_sgn(val) == 0) 00130 #define CANDL_notzero_p(val) (mpz_sgn(val) != 0) 00131 00132 /****************************************************************************** 00133 * CANDL BASIC TYPES MACROS * 00134 ******************************************************************************/ 00135 #else 00136 /* Basic Macros */ 00137 #define CANDL_init(val) ((val) = 0) 00138 #define CANDL_assign(v1,v2) ((v1) = (v2)) 00139 #define CANDL_set_si(val,i) ((val) = (Entier)(i)) 00140 #define CANDL_get_si(val) ((val)) 00141 #define CANDL_clear(val) ((val) = 0) 00142 #define CANDL_print(Dst,fmt,val) (fprintf((Dst),(fmt),(val))) 00143 00144 /* Boolean operators on 'Value' or 'Entier' */ 00145 #define CANDL_eq(v1,v2) ((v1)==(v2)) 00146 #define CANDL_ne(v1,v2) ((v1)!=(v2)) 00147 00148 /* Binary operators on 'Value' or 'Entier' */ 00149 #define CANDL_increment(ref,val) ((ref) = (val)+(Entier)(1)) 00150 #define CANDL_decrement(ref,val) ((ref) = (val)-(Entier)(1)) 00151 #define CANDL_subtract(ref,val1,val2) ((ref) = (val1)-(val2)) 00152 #define CANDL_oppose(ref,val) ((ref) = (-(val))) 00153 00154 /* Conditional operations on 'Value' or 'Entier' */ 00155 #define CANDL_zero_p(val) CANDL_eq(val,0) 00156 #define CANDL_notzero_p(val) CANDL_ne(val,0) 00157 00158 #endif 00159 00160 #endif // !CANDL_H