#include "rbTree.h"Include dependency graph for rangeTree.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | range |
Defines | |
| #define | rangeTreeFree(a) rbTreeFree(a) |
Functions | |
| rbTree * | rangeTreeNew () |
| int | rangeCmp (void *va, void *vb) |
| range * | rangeTreeAdd (struct rbTree *tree, int start, int end) |
| boolean | rangeTreeOverlaps (struct rbTree *tree, int start, int end) |
| int | rangeTreeOverlapSize (struct rbTree *tree, int start, int end) |
| range * | rangeTreeFindEnclosing (struct rbTree *tree, int start, int end) |
| range * | rangeTreeAllOverlapping (struct rbTree *tree, int start, int end) |
| range * | rangeTreeList (struct rbTree *tree) |
| rbTree * | rangeTreeNewDetailed (struct lm *lm, struct rbTreeNode *stack[128]) |
| #define rangeTreeFree | ( | a | ) | rbTreeFree(a) |
Definition at line 26 of file rangeTree.h.
| int rangeCmp | ( | void * | va, | |
| void * | vb | |||
| ) |
Definition at line 13 of file rangeTree.c.
References range::end, and range::start.
Referenced by rangeTreeNew(), and rangeTreeNewDetailed().
00016 { 00017 struct range *a = va; 00018 struct range *b = vb; 00019 if (a->end <= b->start) 00020 return -1; 00021 else if (b->end <= a->start) 00022 return 1; 00023 else 00024 return 0; 00025 }
Here is the caller graph for this function:

Definition at line 27 of file rangeTree.c.
References range::end, rbTree::lm, lmCloneMem(), max, min, rbTreeAdd(), rbTreeRemove(), range::start, and range::val.
00029 { 00030 struct range tempR, *existing; 00031 tempR.start = start; 00032 tempR.end = end; 00033 tempR.val = NULL; 00034 while ((existing = rbTreeRemove(tree, &tempR)) != NULL) 00035 { 00036 tempR.start = min(tempR.start, existing->start); 00037 tempR.end = max(tempR.end, existing->end); 00038 } 00039 struct range *r = lmCloneMem(tree->lm, &tempR, sizeof(tempR)); 00040 rbTreeAdd(tree, r); 00041 return r; 00042 }
Here is the call graph for this function:

Definition at line 86 of file rangeTree.c.
References range::end, rangeList, rangeListAdd(), rbTreeTraverseRange(), slReverse(), and range::start.
00090 { 00091 struct range tempR; 00092 tempR.start = start; 00093 tempR.end = end; 00094 rangeList = NULL; 00095 rbTreeTraverseRange(tree, &tempR, &tempR, rangeListAdd); 00096 slReverse(&rangeList); 00097 return rangeList; 00098 }
Here is the call graph for this function:

Definition at line 73 of file rangeTree.c.
References range::end, rbTreeFind(), and range::start.
00076 { 00077 struct range tempR, *r; 00078 tempR.start = start; 00079 tempR.end = end; 00080 r = rbTreeFind(tree, &tempR); 00081 if (r != NULL && r->start <= start && r->end >= end) 00082 return r; 00083 return NULL; 00084 }
Here is the call graph for this function:

Definition at line 63 of file rangeTree.c.
References rangeList, rangeListAdd(), rbTreeTraverse(), and slReverse().
00066 { 00067 rangeList = NULL; 00068 rbTreeTraverse(tree, rangeListAdd); 00069 slReverse(&rangeList); 00070 return rangeList; 00071 }
Here is the call graph for this function:

| struct rbTree* rangeTreeNew | ( | ) | [read] |
Definition at line 126 of file rangeTree.c.
References rangeCmp(), and rbTreeNew().
Here is the call graph for this function:

| struct rbTree* rangeTreeNewDetailed | ( | struct lm * | lm, | |
| struct rbTreeNode * | stack[128] | |||
| ) | [read] |
Definition at line 132 of file rangeTree.c.
References lm, rangeCmp(), rbTreeNewDetailed(), and rbTree::stack.
00136 { 00137 return rbTreeNewDetailed(rangeCmp, lm, stack); 00138 }
Here is the call graph for this function:

| boolean rangeTreeOverlaps | ( | struct rbTree * | tree, | |
| int | start, | |||
| int | end | |||
| ) |
Definition at line 44 of file rangeTree.c.
References range::end, rbTreeFind(), range::start, and range::val.
00046 { 00047 struct range tempR; 00048 tempR.start = start; 00049 tempR.end = end; 00050 tempR.val = NULL; 00051 return rbTreeFind(tree, &tempR) != NULL; 00052 }
Here is the call graph for this function:

| int rangeTreeOverlapSize | ( | struct rbTree * | tree, | |
| int | start, | |||
| int | end | |||
| ) |
Definition at line 112 of file rangeTree.c.
References addOverlap(), range::end, overlapEnd, overlapStart, rbTreeTraverseRange(), range::start, and totalOverlap.
Referenced by pslRangeTreeOverlap().
00116 { 00117 struct range tempR; 00118 tempR.start = overlapStart = start; 00119 tempR.end = overlapEnd = end; 00120 totalOverlap = 0; 00121 rbTreeTraverseRange(tree, &tempR, &tempR, addOverlap); 00122 return totalOverlap; 00123 }
Here is the call graph for this function:

Here is the caller graph for this function:

1.5.2