void SortDriver::run(int argc, char** argv){ std::string sortName=argv[2]; std::string inFileName=argv[3]; std::string outFileName=argv[4]; std::ifstream input(inFileName); if(areParametersValid(sortName, inFileName)){ std::ofstream myOutputFile(outFileName); int size=SortDriver::getFileCount(input); int* arr=SortDriver::createArray(input, size); double elapsed; std::cout << "Calculating sort timing information\n"; if(sortName=="-bubble"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::bubbleSort, arr, size); myOutputFile << "bubble " << size << " " << elapsed; } else if(sortName=="-selection"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::selectionSort, arr, size); myOutputFile << "selection " << size << " " << elapsed; } else if(sortName=="-insertion"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::insertionSort, arr, size); myOutputFile << "insertion " << size << " " << elapsed; } else if(sortName=="-quick"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::quickSort, arr, size); myOutputFile << "quick " << size << " " << elapsed; } else if(sortName=="-quick3"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::quickSortWithMedian, arr, size); myOutputFile << "quick3 " << size << " " << elapsed; } else if(sortName=="-merge"){ elapsed=Sorts<int>::sortTimer(Sorts<int>::mergeSort, arr, size); myOutputFile << "selection " << size << " " << elapsed; } else if(sortName=="-all"){ std::cout << "Didn't have time to finish the -all case. Sorry!\n"; } std::cout << "Calculations finished. Results stored in " << outFileName << "\n" << "Exiting...\n"; } }
void SortDriver::run(int argc, char** argv) { if(argc == 5) { std::string sort = argv[2]; std::string filename = argv[3]; if(areParametersValid(sort, filename)) { int nums; std::string outfileName = argv[4]; std::ifstream read(filename); nums = getFileCount(read); int* array = createArray(read, nums); int* array2 = new int[nums]; std::ofstream write(outfileName); double time; if(sort == "-bubble") { time = Sorts<int>::sortTimer(Sorts<int>::bubbleSort, array, nums); write << "bubble " << nums << " " << time; } else if(sort == "-insertion") { time = Sorts<int>::sortTimer(Sorts<int>::insertionSort, array, nums); write << "insertion " << nums << " " << time; } else if(sort == "-selection") { time = Sorts<int>::sortTimer(Sorts<int>::selectionSort, array, nums); write << "selection " << nums << " " << time; } else if(sort == "-merge") { time = Sorts<int>::sortTimer(Sorts<int>::mergeSort, array, nums); write << "merge " << nums << " " << time; } else if(sort == "-quick") { time = Sorts<int>::sortTimer(Sorts<int>::quickSort, array, nums); write << "quick " << nums << " " << time; } else if(sort == "-quick3") { time = Sorts<int>::sortTimer(Sorts<int>::quickSortWithMedian, array, nums); write << "quick3 " << nums << " " << time; } else if(sort == "-all") { copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::bubbleSort, array, nums); write<<"bubble "<<nums<< " "<<time; write<<"\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::insertionSort, array, nums); write<<"insertion "<<nums<< " "<<time; write << "\n"; copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::selectionSort, array, nums); write<<"selection "<<nums<<" "<<time; write << "\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::mergeSort, array, nums); write<<"merge "<<nums<<" "<<time; write << "\n"; copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::quickSort, array, nums); write<<"quick "<<nums<<" "<<time; write << "\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::quickSortWithMedian, array, nums); write<<"quick3 "<<nums<<" "<<time; } //prevent memory leaks write.close(); delete array; delete array2; array=nullptr; array2=nullptr; } } else { printHelpMenu(); } }
FovDistortion::FovDistortion() : _w(1.0) { SM_ASSERT_TRUE(std::runtime_error, areParametersValid(_w), "Invalid distortion parameter"); }
void FovDistortion::setParameters(const Eigen::MatrixXd & S) { _w = S(0, 0); SM_ASSERT_TRUE(std::runtime_error, areParametersValid(_w), "Invalid distortion parameter"); }
// aslam::backend compatibility void FovDistortion::update(const double * v) { _w += v[0]; SM_ASSERT_TRUE(std::runtime_error, areParametersValid(_w), "Invalid distortion parameter"); }
FovDistortion::FovDistortion(const sm::PropertyTree & config) { _w = config.getDouble("w"); SM_ASSERT_TRUE(std::runtime_error, areParametersValid(_w), "Invalid distortion parameter"); }
FovDistortion::FovDistortion(double w) : _w(w){ SM_ASSERT_TRUE(std::runtime_error, areParametersValid(w), "Invalid distortion parameter"); }