/*
 * Copyright 2008-2009 Katholieke Universiteit Leuven
 *
 * Use of this software is governed by the GNU LGPLv2.1 license
 *
 * Written by Sven Verdoolaege, K.U.Leuven, Departement
 * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
 */

#ifndef ISL_BLK_H
#define ISL_BLK_H

#include <isl/int.h>

#if defined(__cplusplus)
extern "C" {
#endif

struct isl_blk {
	size_t size;
	isl_int *data;
};

#define ISL_BLK_CACHE_SIZE	20

struct isl_ctx;

struct isl_blk isl_blk_alloc(struct isl_ctx *ctx, size_t n);
struct isl_blk isl_blk_empty();
int isl_blk_is_error(struct isl_blk block);
struct isl_blk isl_blk_extend(struct isl_ctx *ctx, struct isl_blk block,
				size_t new_n);
void isl_blk_free(struct isl_ctx *ctx, struct isl_blk block);
void isl_blk_clear_cache(struct isl_ctx *ctx);

#if defined(__cplusplus)
}
#endif

#endif
