void zpl_var_print(FILE* fp, const Var* var) { const char* name = xlp_getvarname(prog_get_lp(), var); VarClass class = xlp_getclass(prog_get_lp(), var); Bound* lower = xlp_getlower(prog_get_lp(), var); Bound* upper = xlp_getupper(prog_get_lp(), var); fprintf(fp, "\"%s\" ", name); switch(class) { case VAR_CON : fprintf(fp, "real ["); break; case VAR_IMP : fprintf(fp, "implicit integer ["); break; case VAR_INT : fprintf(fp, "integer ["); break; default : abort(); } bound_print(fp, lower); fprintf(fp, ","); bound_print(fp, upper); fprintf(fp, "] "); bound_free(upper); bound_free(lower); }
void arith(itv_internal_t* intern, itv_t a, itv_t b, itv_t c, bound_t bound) { itv_t bb,cc; itv_init_set(bb,b); itv_init_set(cc,c); printf("********************\n"); printf("b="); itv_print(b); printf(" c="); itv_print(c); printf(" bound="); bound_print(bound); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_swap(b,c); printf("itv_swap(b,c): "); printf("b="); itv_print(b); printf(" c="); itv_print(c); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_neg(a,b); printf("itv_neg(b)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_add(a,b,c); printf("itv_add(b,c)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_sub(a,b,c); printf("itv_sub(b,c)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_mul(intern,a,b,c); printf("itv_mul(b,c)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_add_bound(a,b,bound); printf("itv_add_bound(b,bound)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_sub_bound(a,b,bound); printf("itv_sub_bound(b,bound)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_mul_bound(a,b,bound); printf("itv_mul_bound(b,bound)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_div_bound(a,b,bound); printf("itv_div_bound(b,bound)="); itv_print(a); printf("\n"); itv_set(b,bb); itv_set(c,cc); itv_clear(bb); itv_clear(cc); }