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_ */