YAP 7.1.0
range_list.c File Reference

Nuno Fonseca range list implementation. More...

#include "range_list.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Functions

void set_num_bit (unsigned int number, char *storage, STATUS status)
 
BOOLEAN is_num_bit (unsigned int number, char *storage, STATUS status)
 
int get_location (RL_Tree *tree, NUM node, short quadrant, NUM interval)
 
long set_in (NUM number, NUM node, NUM node_num, NUM interval, NUM max, RL_Tree *tree, STATUS status)
 
long compact_node (RL_Tree *, NUM node, NUM next_node, NUM node_interval, NUM next_node_interval, NUM next_node_num, short quadrant, NUM max)
 
BOOLEAN in_tree (NUM number, RL_Tree *tree, NUM node, NUM node_num, NUM interval)
 
void display_tree (RL_Tree *tree)
 
void idisplay_tree (RL_Tree *tree, NUM node, NUM node_num, NUM interval, NUM max)
 
NUM new_node (RL_Tree *tree, NUM node_father, short quadrant, NUM node_num, NUM quad_min, NUM quad_max, STATUS)
 
NUM next_min (RL_Tree *tree, NUM node, NUM node_num, NUM interval, NUM max, NUM min)
 
NUM tree_minus (RL_Tree *r1, RL_Tree *r2, NUM node1, NUM node2, NUM node_num, NUM interval, NUM max)
 
RL_Treeminus_rl (RL_Tree *range1, RL_Tree *range2)
 
void shift_right (RL_Tree *tree, const NUM idx, const long nnodes)
 
void shift_left (RL_Tree *tree, const NUM idx, const long nnodes)
 
void intersect_leafs (char *storage1, char *storage2)
 
RL_Treenew_rl (NUM max_size)
 
RL_Treecopy_rl (RL_Tree *tree)
 
void free_rl (RL_Tree *range)
 
RL_Treeset_in_rl (RL_Tree *tree, NUM number, STATUS status)
 
void rl_all (RL_Tree *tree, STATUS status)
 
BOOLEAN in_rl (RL_Tree *tree, NUM number)
 
BOOLEAN freeze_rl (RL_Tree *range)
 
NUM rl_next_in_bigger (RL_Tree *tree, NUM min)
 

Variables

RL_Bufferbuffer = NULL
 
unsigned int active_bits [16]
 

Detailed Description

Nuno Fonseca range list implementation.

Definition in file range_list.c.

Function Documentation

◆ compact_node()

long compact_node ( RL_Tree tree,
NUM  node,
NUM  next_node,
NUM  node_interval,
NUM  next_node_interval,
NUM  next_node_num,
short  quadrant,
NUM  max 
)

Definition at line 539 of file range_list.c.

◆ copy_rl()

RL_Tree * copy_rl ( RL_Tree tree)

Definition at line 139 of file range_list.c.

◆ display_tree()

void display_tree ( RL_Tree tree)

Definition at line 771 of file range_list.c.

◆ free_rl()

void free_rl ( RL_Tree range)

Definition at line 166 of file range_list.c.

◆ freeze_rl()

BOOLEAN freeze_rl ( RL_Tree range)

Definition at line 222 of file range_list.c.

◆ get_location()

int get_location ( RL_Tree tree,
NUM  node,
short  quadrant,
NUM  interval 
)

Definition at line 416 of file range_list.c.

◆ idisplay_tree()

void idisplay_tree ( RL_Tree tree,
NUM  node,
NUM  node_num,
NUM  interval,
NUM  max 
)

Definition at line 812 of file range_list.c.

◆ in_rl()

BOOLEAN in_rl ( RL_Tree tree,
NUM  number 
)

Definition at line 213 of file range_list.c.

◆ in_tree()

BOOLEAN in_tree ( NUM  number,
RL_Tree tree,
NUM  node,
NUM  node_num,
NUM  interval 
)

Definition at line 720 of file range_list.c.

◆ intersect_leafs()

void intersect_leafs ( char *  storage1,
char *  storage2 
)

Definition at line 917 of file range_list.c.

◆ is_num_bit()

BOOLEAN is_num_bit ( unsigned int  number,
char *  storage,
STATUS  status 
)

Definition at line 651 of file range_list.c.

◆ minus_rl()

RL_Tree * minus_rl ( RL_Tree range1,
RL_Tree range2 
)

!!!tree_minus(range1,range2,ROOT(range1),ROOT(range2),1,ROOT_INTERVAL(range1),range1->range_max);

Definition at line 236 of file range_list.c.

◆ new_node()

NUM new_node ( RL_Tree tree,
NUM  node_father,
short  quadrant,
NUM  node_num,
NUM  quad_min,
NUM  quad_max,
STATUS  status 
)

Definition at line 347 of file range_list.c.

◆ new_rl()

RL_Tree * new_rl ( NUM  max_size)

Definition at line 95 of file range_list.c.

◆ next_min()

NUM next_min ( RL_Tree tree,
NUM  node,
NUM  node_num,
NUM  interval,
NUM  max,
NUM  min 
)

Definition at line 873 of file range_list.c.

◆ rl_all()

void rl_all ( RL_Tree tree,
STATUS  status 
)

Definition at line 197 of file range_list.c.

◆ rl_next_in_bigger()

NUM rl_next_in_bigger ( RL_Tree tree,
NUM  min 
)

Definition at line 246 of file range_list.c.

◆ set_in()

long set_in ( NUM  number,
NUM  node,
NUM  node_num,
NUM  interval,
NUM  max,
RL_Tree tree,
STATUS  status 
)

Definition at line 459 of file range_list.c.

◆ set_in_rl()

RL_Tree * set_in_rl ( RL_Tree tree,
NUM  number,
STATUS  status 
)

Definition at line 177 of file range_list.c.

◆ set_num_bit()

void set_num_bit ( unsigned int  number,
char *  storage,
STATUS  status 
)

Definition at line 639 of file range_list.c.

◆ shift_left()

void shift_left ( RL_Tree tree,
const NUM  idx,
const long  nnodes 
)

Definition at line 325 of file range_list.c.

◆ shift_right()

void shift_right ( RL_Tree tree,
const NUM  idx,
const long  nnodes 
)

Definition at line 310 of file range_list.c.

Variable Documentation

◆ active_bits

unsigned int active_bits[16]
Initial value:
= {1, 3, 7, 15, 31, 63,
127, 255, 511, 1023, 2047, 4095,
8191, 16383, 32767, 65535}

Definition at line 86 of file range_list.c.

◆ buffer

RL_Buffer* buffer = NULL

Definition at line 85 of file range_list.c.