コード例 #1
0
ファイル: rbTree.c プロジェクト: JinfengChen/pblat
struct slRef *rbTreeItemsInRange(struct rbTree *tree, void *minItem, void *maxItem)
/* Return a sorted list of references to items in tree between range.
 * slFreeList this list when done. */
{
itList = NULL;
rbTreeTraverseRange(tree, minItem, maxItem, addRef);
slReverse(&itList);
return itList;
}
コード例 #2
0
ファイル: netClass.c プロジェクト: blumroy/kentUtils
int intersectionSize(struct rbTree *tree, int start, int end)
/* Return total size of things intersecting range start-end. */
{
if (tree == NULL)
    return 0;
interRange.start = start;
interRange.end = end;
interSize = 0;
rbTreeTraverseRange(tree, &interRange, &interRange, addInterSize);
return interSize;
}
double averageWigForBed(struct rbTree *wigTree, struct bed *bed)
/* Return average value for wig over bed.  Return 0 if no data. */
{
    aveCount = 0;
    aveSum = 0.0;
    aveBed = bed;
    rbTreeTraverseRange(wigTree, bed, bed, addToAve);
    if (aveCount == 0)
        return 0;
    else
        return aveSum/aveCount;
}
コード例 #4
0
ファイル: chainNet.c プロジェクト: elmargb/kentUtils
struct slRef *findSpaces(struct rbTree *tree, int start, int end)
/* Return a list of spaces that intersect interval between start
 * and end. */
{
static struct space space;
space.start = start;
space.end = end;
fsList = NULL;
rbTreeTraverseRange(tree, &space, &space, fsAdd);
slReverse(&fsList);
return fsList;
}
コード例 #5
0
ファイル: rangeTree.c プロジェクト: Puneet-Shivanand/zinba
struct range *rangeTreeAllOverlapping(struct rbTree *tree, int start, int end)
/* Return list of all items in range tree that overlap interval start-end.
 * Do not free this list, it is owned by tree.  However it is only good until
 * next call to rangeTreeFindInRange or rangeTreeList. Not thread safe. */
{
struct range tempR;
tempR.start = start;
tempR.end = end;
rangeList = NULL;
rbTreeTraverseRange(tree, &tempR, &tempR, rangeListAdd);
slReverse(&rangeList);
return rangeList;
}
コード例 #6
0
ファイル: rangeTree.c プロジェクト: Puneet-Shivanand/zinba
int rangeTreeOverlapSize(struct rbTree *tree, int start, int end)
/* Return the total size of intersection between interval
 * from start to end, and items in range tree. Sadly not
 * thread-safe. 
 * On 32 bit machines be careful not to overflow
 * range of start, end or total size return value. */
{
struct range tempR;
tempR.start = overlapStart = start;
tempR.end = overlapEnd = end;
totalOverlap = 0;
rbTreeTraverseRange(tree, &tempR, &tempR, addOverlap);
return totalOverlap;
}