Exemplo n.º 1
0
bool Jaccard::findNext(RecordKeyVector &hits) {
	if (nextSortedFind(hits)) {
		checkSplits(hits);
		_intersectionVal += getTotalIntersection(hits);
		return true;
	}
	return false;
}
Exemplo n.º 2
0
bool Fisher::getFisher() {
    NewChromSweep sweep(_context);
    if (!sweep.init()) {
        return false;
    }
    RecordKeyVector hitSet;
    while (sweep.next(hitSet)) {
        if (_context->getObeySplits()) {
            RecordKeyVector keySet(hitSet.getKey());
            RecordKeyVector resultSet(hitSet.getKey());
            _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet);
            _intersectionVal += getTotalIntersection(resultSet);
        } else {
            _intersectionVal += getTotalIntersection(hitSet);
        }
    }

    sweep.closeOut();
    _queryLen = sweep.getQueryTotalRecordLength();
    _dbLen = sweep.getDatabaseTotalRecordLength();

    _unionVal = _queryLen + _dbLen;
    return true;
}
Exemplo n.º 3
0
bool Jaccard::getIntersectionAndUnion() {
	NewChromSweep sweep(_context);
	if (!sweep.init()) {
		return false;
	}
	RecordKeyList hitSet;
	while (sweep.next(hitSet)) {
		if (_context->getObeySplits()) {
			RecordKeyList keySet(hitSet.getKey());
			RecordKeyList resultSet(hitSet.getKey());
			_blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet);
			_intersectionVal += getTotalIntersection(&resultSet);
		} else {
			_intersectionVal += getTotalIntersection(&hitSet);
		}
	}

	sweep.closeOut();
	unsigned long queryUnion = sweep.getQueryTotalRecordLength();
	unsigned long dbUnion = sweep.getDatabaseTotalRecordLength();

	_unionVal = queryUnion + dbUnion;
	return true;
}