Altering type of solution, implementing solution print function
This commit is contained in:
parent
99f427bea4
commit
a21d7a59b0
@ -220,6 +220,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o
|
|||||||
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc
|
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc
|
||||||
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc
|
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc
|
||||||
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc
|
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc
|
||||||
|
/usr/include/c++/11.2.0/utility
|
||||||
|
/usr/include/c++/11.2.0/bits/stl_relops.h
|
||||||
/home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h
|
/home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h
|
||||||
/usr/include/c++/11.2.0/set
|
/usr/include/c++/11.2.0/set
|
||||||
/usr/include/c++/11.2.0/bits/stl_tree.h
|
/usr/include/c++/11.2.0/bits/stl_tree.h
|
||||||
|
|||||||
@ -219,6 +219,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \
|
|||||||
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc \
|
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc \
|
||||||
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \
|
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \
|
||||||
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \
|
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \
|
||||||
|
/usr/include/c++/11.2.0/utility \
|
||||||
|
/usr/include/c++/11.2.0/bits/stl_relops.h \
|
||||||
../src/HiddenLines.h \
|
../src/HiddenLines.h \
|
||||||
/usr/include/c++/11.2.0/set \
|
/usr/include/c++/11.2.0/set \
|
||||||
/usr/include/c++/11.2.0/bits/stl_tree.h \
|
/usr/include/c++/11.2.0/bits/stl_tree.h \
|
||||||
@ -270,6 +272,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \
|
|||||||
|
|
||||||
/usr/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/c++io.h:
|
/usr/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/c++io.h:
|
||||||
|
|
||||||
|
/usr/include/c++/11.2.0/bits/stl_relops.h:
|
||||||
|
|
||||||
/usr/include/c++/11.2.0/fstream:
|
/usr/include/c++/11.2.0/fstream:
|
||||||
|
|
||||||
/usr/include/c++/11.2.0/bits/vector.tcc:
|
/usr/include/c++/11.2.0/bits/vector.tcc:
|
||||||
@ -534,6 +538,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \
|
|||||||
|
|
||||||
/usr/include/bits/types/time_t.h:
|
/usr/include/bits/types/time_t.h:
|
||||||
|
|
||||||
|
/usr/include/c++/11.2.0/utility:
|
||||||
|
|
||||||
/usr/include/c++/11.2.0/debug/debug.h:
|
/usr/include/c++/11.2.0/debug/debug.h:
|
||||||
|
|
||||||
/usr/include/c++/11.2.0/bits/predefined_ops.h:
|
/usr/include/c++/11.2.0/bits/predefined_ops.h:
|
||||||
|
|||||||
Binary file not shown.
@ -158,6 +158,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: \
|
|||||||
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc \
|
/usr/include/c++/11.2.0/tr1/poly_hermite.tcc \
|
||||||
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \
|
/usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \
|
||||||
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \
|
/usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \
|
||||||
|
/usr/include/c++/11.2.0/utility \
|
||||||
|
/usr/include/c++/11.2.0/bits/stl_relops.h \
|
||||||
/home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h \
|
/home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h \
|
||||||
/usr/include/c++/11.2.0/set /usr/include/c++/11.2.0/bits/stl_tree.h \
|
/usr/include/c++/11.2.0/set /usr/include/c++/11.2.0/bits/stl_tree.h \
|
||||||
/usr/include/c++/11.2.0/ext/aligned_buffer.h \
|
/usr/include/c++/11.2.0/ext/aligned_buffer.h \
|
||||||
|
|||||||
Binary file not shown.
BIN
build/libHLlib.a
BIN
build/libHLlib.a
Binary file not shown.
BIN
build/main
BIN
build/main
Binary file not shown.
@ -6,6 +6,7 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "HiddenLines.h"
|
#include "HiddenLines.h"
|
||||||
|
|
||||||
@ -17,13 +18,16 @@ HL::HL()
|
|||||||
|
|
||||||
void HL::print_sol()
|
void HL::print_sol()
|
||||||
{
|
{
|
||||||
std::cout << "Not yet implemented" << std::endl;
|
for(auto itr = sol.begin(); itr != sol.end(); itr++)
|
||||||
|
std::cout << "Line ID " << std::get<0>(*itr) << " visible in range (" <<
|
||||||
|
std::get<0>(std::get<1>(*itr)) <<
|
||||||
|
"," << std::get<1>(std::get<1>(*itr)) << ")" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Divide and Conquer Strategy using recursive call to divide ls and merge using merge()
|
//Divide and Conquer Strategy using recursive call to divide ls and merge using merge()
|
||||||
std::set<Line> HL::gen_sol(std::set<Line>& ls){
|
std::set<Line> HL::gen_sol(std::set<Line>& ls){
|
||||||
|
HL inst = *this;
|
||||||
if (ls.size() > 2){
|
if (ls.size() > 2){
|
||||||
HL inst = *this;
|
|
||||||
|
|
||||||
//Create left and right half sets
|
//Create left and right half sets
|
||||||
int split = ceil(ls.size()/2);
|
int split = ceil(ls.size()/2);
|
||||||
@ -49,8 +53,8 @@ std::set<Line> HL::gen_sol(std::set<Line>& ls){
|
|||||||
//Set with 2 lines is a base case: both are visible at +-inf respectively, and intersection is where they change
|
//Set with 2 lines is a base case: both are visible at +-inf respectively, and intersection is where they change
|
||||||
//visibility
|
//visibility
|
||||||
else if (ls.size() == 2){
|
else if (ls.size() == 2){
|
||||||
auto l1 = *(ls.begin());
|
Line l1 = *(ls.begin());
|
||||||
auto l2 = *(ls.end());
|
Line l2 = *(ls.end());
|
||||||
double isec = (l2.get_ycept() - l1.get_ycept())/(l1.get_slope() - l2.get_slope());
|
double isec = (l2.get_ycept() - l1.get_ycept())/(l1.get_slope() - l2.get_slope());
|
||||||
|
|
||||||
//Smaller Slope: vis from isec to inf
|
//Smaller Slope: vis from isec to inf
|
||||||
@ -62,6 +66,12 @@ std::set<Line> HL::gen_sol(std::set<Line>& ls){
|
|||||||
l2.set_vis_start(-std::numeric_limits<double>::infinity());
|
l2.set_vis_start(-std::numeric_limits<double>::infinity());
|
||||||
l2.set_vis_end(isec);
|
l2.set_vis_end(isec);
|
||||||
|
|
||||||
|
//Insert partial solutions
|
||||||
|
sol.insert(std::make_pair(l1.get_id(), std::make_pair(l1.get_vis_start(), l1.get_vis_end())));
|
||||||
|
sol.insert(std::make_pair(l2.get_id(), std::make_pair(l2.get_vis_start(), l2.get_vis_end())));
|
||||||
|
|
||||||
|
inst.print_sol();
|
||||||
|
|
||||||
return ls;
|
return ls;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +84,9 @@ std::set<Line> HL::gen_sol(std::set<Line>& ls){
|
|||||||
return ls;
|
return ls;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sol;
|
//return sol;
|
||||||
|
std::set<Line> dummy;
|
||||||
|
return dummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<Line> HL::construct_HWprob(){
|
std::set<Line> HL::construct_HWprob(){
|
||||||
@ -145,5 +157,7 @@ std::set<Line> HL::get_lines(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::set<Line> HL::get_sol(){
|
std::set<Line> HL::get_sol(){
|
||||||
return sol;
|
std::set<Line> dummy;
|
||||||
|
return dummy;
|
||||||
|
//return sol;
|
||||||
}
|
}
|
||||||
@ -17,9 +17,9 @@ class HL
|
|||||||
std::set<Line> get_sol();
|
std::set<Line> get_sol();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::set<Line> sol;
|
//Solution is in form Line ID <vis_start, vis_end>
|
||||||
|
std::set<std::pair<int, std::pair<double, double>>> sol;
|
||||||
std::set<Line> lines;
|
std::set<Line> lines;
|
||||||
std::set<std::pair<Line, double>> isec;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
std::set<Line> merge(std::set<Line> lh, std::set<Line> rh);
|
std::set<Line> merge(std::set<Line> lh, std::set<Line> rh);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user