#include <isl/int.h>
#include <isl/ctx.h>
#include <isl/blk.h>
+#include <isl/printer.h>
#if defined(__cplusplus)
extern "C" {
void isl_vec_free(struct isl_vec *vec);
void isl_vec_dump(struct isl_vec *vec, FILE *out, int indent);
+__isl_give isl_printer *isl_printer_print_vec(__isl_take isl_printer *printer,
+ __isl_keep isl_vec *vec);
void isl_vec_lcm(struct isl_vec *vec, isl_int *lcm);
struct isl_vec *isl_vec_ceil(struct isl_vec *vec);
free(vec);
}
-void isl_vec_dump(struct isl_vec *vec, FILE *out, int indent)
+__isl_give isl_printer *isl_printer_print_vec(__isl_take isl_printer *printer,
+ __isl_keep isl_vec *vec)
{
int i;
- if (!vec) {
- fprintf(out, "%*snull vec\n", indent, "");
- return;
- }
+ if (!printer || !vec)
+ goto error;
- fprintf(out, "%*s[", indent, "");
+ printer = isl_printer_print_str(printer, "[");
for (i = 0; i < vec->size; ++i) {
if (i)
- fprintf(out, ",");
- isl_int_print(out, vec->el[i], 0);
+ printer = isl_printer_print_str(printer, ",");
+ printer = isl_printer_print_isl_int(printer, vec->el[i]);
}
- fprintf(out, "]\n");
+ printer = isl_printer_print_str(printer, "]");
+
+ return printer;
+error:
+ isl_printer_free(printer);
+ return NULL;
+}
+
+void isl_vec_dump(struct isl_vec *vec, FILE *out, int indent)
+{
+ isl_printer *printer;
+
+ if (!vec)
+ return;
+
+ printer = isl_printer_to_file(vec->ctx, out);
+ printer = isl_printer_set_indent(printer, indent);
+ printer = isl_printer_print_vec(printer, vec);
+ printer = isl_printer_end_line(printer);
+
+ isl_printer_free(printer);
}
__isl_give isl_vec *isl_vec_clr(__isl_take isl_vec *vec)
isl_int opt;
unsigned dim;
enum isl_lp_result res;
+ isl_printer *p;
isl_int_init(opt);
bset = isl_basic_set_read_from_file(ctx, stdin, 0);
fprintf(stdout, "unbounded\n");
break;
case isl_lp_ok:
- isl_vec_dump(sol, stdout, 0);
- isl_int_print(stdout, opt, 0);
- fprintf(stdout, "\n");
+ p = isl_printer_to_file(ctx, stdout);
+ p = isl_printer_print_vec(p, sol);
+ p = isl_printer_end_line(p);
+ p = isl_printer_print_isl_int(p, opt);
+ p = isl_printer_end_line(p);
+ isl_printer_free(p);
}
isl_basic_set_free(bset);
isl_vec_free(obj);
struct isl_ctx *ctx = isl_ctx_alloc();
struct isl_basic_set *bset;
struct isl_vec *sample;
+ isl_printer *p;
bset = isl_basic_set_read_from_file(ctx, stdin, 0);
sample = isl_basic_set_sample_vec(isl_basic_set_copy(bset));
- isl_vec_dump(sample, stdout, 0);
+ p = isl_printer_to_file(ctx, stdout);
+ p = isl_printer_print_vec(p, sample);
+ p = isl_printer_end_line(p);
+ isl_printer_free(p);
assert(sample);
if (sample->size > 0)
assert(isl_basic_set_contains(bset, sample));