std::size_t CorrelationTimeArcGrbcat::generateCF(Catalog& catalog, std::vector< std::vector<std::size_t> > hist) { std::size_t pairs = 0; GreatCircleDistance distance(_formula); std::vector<CatalogEntry*> entries; filterEntries(catalog, entries); const std::size_t points = entries.size(); const std::size_t pairsAll = points * (points -1) / 2; const std::size_t mod = std::pow(10.0, std::floor(std::log10(pairsAll)) - 4); std::printf("ENTRIES = %ld, PAIRS = %ld\n", points, pairsAll); std::size_t k = 0; for (std::size_t i = 0; i < points - 1; ++i) { CatalogEntryGrbcat* iEntry = static_cast<CatalogEntryGrbcat*>(entries[i]); for (std::size_t j = i + 1; j < points; ++j) { CatalogEntryGrbcat* jEntry = static_cast<CatalogEntryGrbcat*>(entries[j]); type::Float time = std::fabs(jEntry->getCoodinates().getTimeMJD() - iEntry->getCoodinates().getTimeMJD()); type::Float dist = distance(jEntry->getCoodinates(), iEntry->getCoodinates()); std::size_t xIdx = std::floor(time * getXDelta()); std::size_t yIdx = std::floor(dist * getYDelta()); if (xIdx < getXPoints() && yIdx < getYPoints()) { ++hist[yIdx][xIdx]; ++pairs; } if (++k % mod == 0) { std::printf("\rProgress %3.2f%% %ld/%ld - pairs = %ld" , 100.0 * k / pairsAll, k, pairsAll, pairs); } } } std::printf("\rProgress %3.2f%% %ld/%ld - pairs = %ld\n" , 100.0 * k / pairsAll, k, pairsAll, pairs); return pairs; }
QAbstractFileEngine::Iterator* SFtpFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames) { qDebug() << "beginEntryList() : " << _fileName << _fileFlags; QString cachePath(getCachePath(_path, true)); FtpFileInfoCache::QUrlInfoList list = _fileInfoCache->findDirInfo(cachePath); if (list.size() == 0 && (_fileFlags & QAbstractFileEngine::DirectoryType) && sftpConnect()) { readDir(_path); sftpDisconnect(); } QMap<QString, QUrlInfo> entriesMap; list = _fileInfoCache->findDirInfo(cachePath); if (list.size() > 0) { FtpFileInfoCache::QUrlInfoListIterator it(list); while (it.hasNext()) { QUrlInfo urlInfo = it.next(); // exclude an empty entry inserted by us and a non-existent entry if (urlInfo.isValid() && urlInfo.permissions()) entriesMap.insert(urlInfo.name(), urlInfo); } } return new FtpFileEngineIterator(filters, filterNames, filterEntries(filters, filterNames, entriesMap)); }