void PaintWidget::move(QVariantList list, QVariantList idlist) { if ( m_fixed ) return; if (list.size() == 0) { return; } QMap<int, QPointF> touch_last_pos = touch_current_pos; for (unsigned i = 0; i < list.size(); i++) { touch_current_pos[idlist[i].toInt()] = list[i].value<QPointF>(); } QPointF average = calcAverage(touch_current_pos); QPointF last_average = calcAverage(touch_last_pos); QPointF start_average = calcAverage(touch_start_pos); int minDiff = 7; if ( abs( average.x() - start_average.x() ) + abs( average.y() - start_average.y() ) > minDiff ) m_drag = true; IRenderer* renderer = MapData::instance()->renderer(); if ( renderer == NULL ) return; m_request.center = renderer->Move( average.x() - last_average.x(), average.y() - last_average.y(), m_request ); setKeepPositionVisible( false ); if (touch_current_pos.size() > 1) { QPointF first = *touch_current_pos.begin(); QPointF second = *(touch_current_pos.begin()+1); qreal distance = sqrt(pow(first.x() - second.x(), 2) + pow(first.y() - second.y(), 2)); QPointF first_start = *touch_start_pos.begin(); QPointF second_start = *(touch_start_pos.begin()+1); distance /= sqrt(pow(first_start.x() - second_start.x(), 2) + pow(first_start.y() - second_start.y(), 2)); m_request.center = renderer->Move( width() / 2 - average.x(), height() / 2 - average.y(), m_request ); m_request.zoom = m_startZoom + log2(distance); if ( m_request.zoom > m_maxZoom ) { m_request.zoom = m_maxZoom; } if ( m_request.zoom < 0 ) { m_request.zoom = 0; } m_request.virtualZoom = m_request.zoom - (int) m_request.zoom + 1; m_request.center = renderer->Move( average.x() - width() / 2, average.y() - height() / 2, m_request ); emit zoomChanged( m_request.zoom ); } update(); }
QVis RegionService::calcAverages(const MatSet& matSet, QLPs regions) { QVis averages; for(QLP region : regions) { averages.push_back(calcAverage(matSet, region)); } return averages; }
void main(void) { int test1, test2, test3, test4, test5; getValues(test1, test2, test3, test4, test5); calcAverage(test1, test2, test3, test4, test5); }
void RunningSample::addSample( float newValue ) { float oldValue; oldValue = addValue( newValue ); calcAverage( oldValue, newValue ); }
int main() { int staedte[ANZAHL_STAEDTE][ANZAHL_MESSUNGEN]; // Eingabe Temperatur Werte for(int i = 0; i < ANZAHL_STAEDTE; i++) { for(int j = 0; j < ANZAHL_MESSUNGEN; j++) { printf("Stadt %i: Wert %i/%i\n> ", i+1, j+1, ANZAHL_MESSUNGEN); scanf("%d: ", &staedte[i][j]); } } for(int i = 0; i < ANZAHL_STAEDTE; i++) { printf("Stadt %i: Durchschnittstemperatur = %.2f °C\n", i, calcAverage(staedte[i])); } return 0; }
QVi RegionService::calcAverage(Mat srcBGRImg, QLP region) { MatSet matSet(srcBGRImg); return calcAverage(matSet, region); }
void lab::simMeas() { int numSamples = 200; //alloc arrays int *eArray = new int[numSamples]; double *mrArray = new double[numSamples]; double *lArray = new double[numSamples]; double *ldArray = new double[numSamples]; double *lmArray = new double[numSamples]; len *xLen, *yLen, *totLen; std::fstream filestr; for(double T = Ti; T <= Tf; T += dT) { curSim = new rods(size, (double)1/T, dens); xLen = new len(size); yLen = new len(size); totLen = new len(size); int n = 0; std::cout << "Looking up correlation time for " << T << "..." << std::endl; int ctime = (int) floor(findCorrTime(T)); if(ctime == 0) { std::cout << "Failed! Using "; ctime = 100; } else { std::cout << "Got it! Using "; } int runtime = numSamples * 2 * ctime; std::cout << ctime << " " << runtime << std::endl; std::cout << "Waiting for equilibrium..." << std::endl; std::cout << "I had to wait: " << waitForEquilibrium() << std::endl; std::cout << "Simulating..." << std::endl; for(int i = 0; i < runtime; i++) { curSim->run(); if(i % (2*ctime) == 0) { eArray[n] = curSim->getEnergy(); mrArray[n] = curSim->getMRatio(); lArray[n] = curSim->getAvLen(); if(curSim->getPredDirection() == 1) { ldArray[n] = curSim->getAvxLen(); lmArray[n] = curSim->getAvyLen(); } else if(curSim->getPredDirection() == 2) { ldArray[n] = curSim->getAvxLen(); lmArray[n] = curSim->getAvyLen(); } int *xdist = curSim->getXDist(); int *ydist = curSim->getYDist(); totLen->addNewMeasurement(sumDists(xdist, ydist)); xLen->addNewMeasurement(curSim->getXDist()); yLen->addNewMeasurement(curSim->getYDist()); std::cout << "Measured! At " << i << std::endl; std::cout << eArray[n] << "; " << mrArray[n] << "; " << lArray[n] << std::endl; //if(mrArray[n] == 1) saveState(T+i); n++; } } double avE = calcAverage(eArray, numSamples); double avsqE = calcSqAverage(eArray, numSamples); double numParticles = (double) size * size * dens; double c = (avsqE - avE*avE) / ( numParticles * T * T); double avM = calcAverage(mrArray, numSamples); double avsqM = calcSqAverage(mrArray, numSamples); double avl = calcAverage(lArray, numSamples); double avsql = calcSqAverage(lArray, numSamples); double avld = calcAverage(ldArray, numSamples); double avlm = calcAverage(lmArray, numSamples); std::cout << "<Energy> = " << avE << std::endl; std::cout << "<Energy^2> = " << avsqE << std::endl; std::cout << "Specific heat = " << c << std::endl; std::cout << "<Mratio> = " << avM << std::endl; std::cout << "<l> = " << avl << std::endl; /********************************** * Write averages of all parameters **********************************/ filestr.open("master.dat", std::fstream::out | std::fstream::app); if(stat("master.dat", &fileinfo) == 0) { //quick check to see if master.dat is empty -> write header //filestr << "T;rho;<E>;<E^2>;c;<M>;<M^2>;<l>;<l^2>;"; //filestr << "<l_dominant>;<l_minority>" << std::endl; } filestr << T << ";" << dens << ";" << avE << ";" << avsqE << ";"; filestr << c << ";" << avM << ";" << avsqM << ";" << avl << ";"; filestr << avsql << ";" << avld << ";" << avlm << std::endl; filestr.close(); /********************************** * Write average length distribution **********************************/ filestr.open("dists.dat", std::fstream::out | std::fstream::app); if(stat("dists.dat", &fileinfo) == 0) { //quick check to see if master.dat is empty -> write header filestr << "T;<{l_x}_i>;<{l_y}_i>" << std::endl; } filestr << T << std::endl; for(int i = 0; i < size; i++) filestr << totLen->getAvLen(i) << ";"; filestr << std::endl; for(int i = 0; i < size; i++) filestr << xLen->getAvLen(i) << ";"; filestr << std::endl; for(int i = 0; i < size; i++) filestr << yLen->getAvLen(i) << ";"; filestr << std::endl; filestr.close(); #ifdef VERBOSE saveState(T); #endif delete curSim; delete xLen; delete yLen; } delete[] eArray; delete[] mrArray; delete[] lArray; delete[] ldArray; delete[] lmArray; }