bitmaps.h 1.3 KB
/*
 * bitmaps.h
 *
 *  Created on: 24/08/2014
 *      Author: Pedro
 */

#ifndef SRC_BITMAPS_H_
#define SRC_BITMAPS_H_

#include "domains.h"

void b_check_and_update_bounds(unsigned int d_min, unsigned int d_max);

void b_new_val(bitmap *d, unsigned int val);
void b_new_range(bitmap *d, unsigned int min, unsigned int max);
void b_new_vals(bitmap *d, unsigned int *d_vals, unsigned int n_vals);
void b_set_val(bitmap *d, unsigned int val);

void b_clear(bitmap *d);
bool b_is_empty(bitmap *d);
bool b_contains_val(bitmap *d, unsigned int val);
bool bs_eq(bitmap *d1, bitmap *d2);
unsigned int b_get_nth_val(bitmap *d, unsigned int nth);

void b_copy(bitmap *d_dest, bitmap *d_src);

unsigned int b_cnt_vals(bitmap *d);

int b_get_min_val(bitmap *d);
int b_get_max_val(bitmap *d);

bool b_intersect_b(bitmap *d1, bitmap *d2);
bool b_union_b(bitmap *d1, bitmap *d2);
bool b_del_singl_val(bitmap *d_to_chg, bitmap *d);
bool b_del_lt(bitmap *d, unsigned int val);
bool b_del_le(bitmap *d, unsigned int val);
bool b_del_gt(bitmap *d, unsigned int val);
bool b_del_ge(bitmap *d, unsigned int val);
bool b_del_val(bitmap *d, unsigned int val);
bool b_del_all_except_val(bitmap *d, unsigned int val);

void b_print_domain(bitmap *d);

void b_copy_dev_to_host(bitmap *host_b, void **dev_bs, unsigned int bitmap_n);

#endif /* SRC_BITMAPS_H_ */