int main() { int i; for (i = 0; i < N; i++) a[i] = rand() % 1000; preprocess3(); printf("%d\n", sum3(0, 20)); printf("%d\n", sum3(10, 100)); printf("%d\n", sum3(5, 500)); printf("%d\n", sum3(0, 0)); printf("%d\n", sum3(N - 1, N)); printf("%d\n", sum3(0, N)); printf("%d\n", sum3(1, 0)); return 0; }
int HolisticFeatureExtractor::extractFeatures(const LTKTraceGroup& traceGroup, const LTKCaptureDevice& captureDevice, const LTKScreenContext& screenContext, LTKPreprocessorInterface *ltkShapeRecPtr, float2DVector& featureVector) { LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entered HolisticFeatureExtractor::extractFeatures" << endl; LTKTrace preprocessedTrace; // a trace of the trace group LTKTrace preprocessedTrace2; // a trace of the trace group LTKTrace preprocessedTrace3; // a trace of the trace group LTKTraceGroup preprocessedTraceGroup; LTKTraceGroup preprocessedTraceGroup2; LTKTraceGroup preprocessedTraceGroup3; int traceIndex; // variable to loop over all traces of the trace group // preprocessing the traceGroup in 3 ways to extract 3 kinds of features preprocess(traceGroup, preprocessedTraceGroup, captureDevice, screenContext, ltkShapeRecPtr); preprocess2(traceGroup, preprocessedTraceGroup2, captureDevice, screenContext, ltkShapeRecPtr); preprocess3(traceGroup, preprocessedTraceGroup3, captureDevice, screenContext, ltkShapeRecPtr); // extracting the feature vector for(traceIndex = 0; traceIndex < traceGroup.getNumTraces(); ++traceIndex) { preprocessedTrace = preprocessedTraceGroup.getTraceAt(traceIndex); preprocessedTrace2 = preprocessedTraceGroup2.getTraceAt(traceIndex); preprocessedTrace3 = preprocessedTraceGroup3.getTraceAt(traceIndex); // calling the compute features methods floatVector features; // calculating features with preprocessedTrace2 features.push_back(computeEER(preprocessedTrace)); features.push_back(computeOrientation(preprocessedTrace)); // calculating features with preprocessedTrace2 float TCL = computeTCL(preprocessedTrace2); TCL /= calculateBBoxPerimeter(screenContext); // normalizing using the perimeter features.push_back(TCL); features.push_back(computePII(preprocessedTrace2, screenContext)); // calculating features with preprocessedTrace3 float swAng = computeSweptAngle(preprocessedTrace3); // normalizing the swept angle with swAngNormFactor x 360 degrees swAng /= (2*PI*m_swAngNormFactor); features.push_back(swAng); featureVector.push_back(features); }//traceIndex LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting HolisticFeatureExtractor::extractFeatures" << endl; return SUCCESS; }