bool SequentialDatabase::BEPValid_1(frequencyPattern & p) { int i; int itemSize = p.frePattern.size(); int currentId = 0; vector<Element>::iterator ip = p.frePattern.begin(); vector<int> sviType1, sviType2; TimeLine prevTil, nextTil; int pSize = p.pTir.size(); vector<int> Stemp1, frequencyStemp1; vector<int> Stemp2, frequencyStemp2; for (i = 0; i < pSize; ++i) { vector<int> sviType1 = generateBEPType_1(p.pTir[i].sId, p.pTir[i].til[currentId]); generateStempType1(sviType1, Stemp1, frequencyStemp1); prevTil = TimeLine(); if (currentId < itemSize - 1) nextTil = p.pTir[i].til[currentId + 1]; else nextTil = TimeLine(); vector<int> sviType2 = generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], prevTil, nextTil, ip->items.front(), ip->items.back()); generateStempType1(sviType2, Stemp2, frequencyStemp2); } for (i = 0; i < frequencyStemp1.size(); ++i) if (frequencyStemp1[i] == p.pTir.size()) return false; for (i = 0; i < frequencyStemp2.size(); ++i) if (frequencyStemp2[i] == p.pTir.size()) return false; currentId++; ip++; while (currentId < itemSize) { Stemp2.clear(); frequencyStemp2.clear(); for (i = 0; i < pSize; ++i) { prevTil = p.pTir[i].til[currentId - 1]; if (currentId < itemSize - 1) nextTil = p.pTir[i].til[currentId + 1]; else nextTil = TimeLine(); vector<int> sviType2 = generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], prevTil, nextTil, ip->items.front(), ip->items.back()); generateStempType1(sviType2, Stemp2, frequencyStemp2); } for (i = 0; i < frequencyStemp2.size(); ++i) if (frequencyStemp2[i] == p.pTir.size()) return false; currentId++; ip++; } return true; }
void QDeclarativeTimeLinePrivate::add(QDeclarativeTimeLineObject &g, const Op &o) { if (g._t && g._t != q) { qWarning() << "QDeclarativeTimeLine: Cannot modify a QDeclarativeTimeLineValue owned by" << "another timeline."; return; } g._t = q; Ops::Iterator iter = ops.find(&g); if (iter == ops.end()) { iter = ops.insert(&g, TimeLine()); if (syncPoint > 0) q->pause(g, syncPoint); } if (!iter->ops.isEmpty() && o.type == Op::Pause && iter->ops.last().type == Op::Pause) { iter->ops.last().length += o.length; iter->length += o.length; } else { iter->ops.append(o); iter->length += o.length; } if (iter->length > length) length = iter->length; if (!clockRunning) { q->stop(); prevTime = 0; clockRunning = true; if (syncMode == QDeclarativeTimeLine::LocalSync) { syncAdj = -1; } else { syncAdj = 0; } q->start(); /* q->tick(0); if (syncMode == QDeclarativeTimeLine::LocalSync) { syncAdj = -1; } else { syncAdj = 0; } */ } }
bool SequentialDatabase::BEPValid_2(frequencyPattern & p) { int i; int itemSize = p.frePattern.size() - 1; int currentId = 0; int pSize = p.pTir.size(); int minT = THRESHOLD - pSize; int maxT1 = -1, maxT2 = -1; vector<Element>::iterator ip = p.frePattern.begin(); vector<int> Stemp1, frequencyStemp1; vector<int> Stemp2, frequencyStemp2; for (i = 0; i < pSize; ++i) { if (!generateStempType_1( generateBEPType_1(p.pTir[i].sId, p.pTir[i].til[currentId]), Stemp1, frequencyStemp1, maxT1, minT + i) ) break; } if(i == pSize) { for (i = 0; i < frequencyStemp1.size(); ++i) if (frequencyStemp1[i] == p.pTir.size()) return false; } if (currentId < itemSize) { for (i = 0; i < pSize; ++i) { if (!generateStempType_1( generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], TimeLine(), p.pTir[i].til[currentId + 1], ip->items.front(), ip->items.back()), Stemp2, frequencyStemp2, maxT2, minT + i) ) break; } } else { for (i = 0; i < pSize; ++i) { if (!generateStempType_1( generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], TimeLine(), TimeLine(), ip->items.front(), ip->items.back()), Stemp2, frequencyStemp2, maxT2, minT + i) ) break; } } if (i == pSize) { for (i = 0; i < frequencyStemp2.size(); ++i) if (frequencyStemp2[i] == p.pTir.size()) return false; } currentId++; ip++; for(; currentId < itemSize; currentId++, ip++) { Stemp2.clear(); frequencyStemp2.clear(); maxT2 = -1; for (i = 0; i < pSize; ++i) { if (!generateStempType_1( generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], p.pTir[i].til[currentId - 1], p.pTir[i].til[currentId + 1], ip->items.front(), ip->items.back()), Stemp2, frequencyStemp2, maxT2, minT + i) ) break; } if(i==pSize) { for (i = 0; i < frequencyStemp2.size(); ++i) if (frequencyStemp2[i] == p.pTir.size()) return false; } } if (currentId == itemSize) { Stemp2.clear(); frequencyStemp2.clear(); maxT2 = -1; for (i = 0; i < pSize; ++i) { if (!generateStempType_1( generateBEPType_2(p.pTir[i].sId, p.pTir[i].til[currentId], p.pTir[i].til[currentId - 1], TimeLine(), ip->items.front(), ip->items.back()), Stemp2, frequencyStemp2, maxT2, minT + i) ) break; } if (i == pSize) { for (i = 0; i < frequencyStemp2.size(); ++i) if (frequencyStemp2[i] == p.pTir.size()) return false; } } return true; }