Skip to content

Commit 8856dab

Browse files
committed
Merge branch 'feat/GITHUB-8-add-iterative-elimination' into develop
2 parents e3dbbe1 + 1663834 commit 8856dab

8 files changed

Lines changed: 634 additions & 0 deletions

File tree

examples/console/main.cpp

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,5 +151,83 @@ int main()
151151
}
152152
}
153153

154+
{
155+
std::cout << "\nStarting contiguous facets finder run.\n";
156+
using ContiguousFacetsFinder =
157+
Sparsepc::linearmodel::ContiguousFacetsFinder<Scalar>;
158+
const auto start = std::chrono::high_resolution_clock::now();
159+
160+
const ContiguousFacetsFinder::Param param{{k0, k1, k2}};
161+
162+
const auto sparseEigenElements =
163+
ContiguousFacetsFinder{param}.run(sigma);
164+
165+
const auto stop = std::chrono::high_resolution_clock::now();
166+
167+
const auto durationUs =
168+
std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
169+
170+
std::cout << "\n\nContiguous facets finder run done in "
171+
<< durationUs.count() << " microseconds!\n";
172+
173+
for (const auto &component : sparseEigenElements)
174+
{
175+
std::cout << component.value << ":\t"
176+
<< component.vector.transpose() << "\n";
177+
}
178+
}
179+
180+
{
181+
std::cout << "\nStarting iterative elimination algo. mav run.\n";
182+
using MavIterativeElimination =
183+
Sparsepc::linearmodel::MavIterativeElimination<Scalar>;
184+
const auto start = std::chrono::high_resolution_clock::now();
185+
186+
const MavIterativeElimination::Param param{{k0, k1, k2}};
187+
188+
const auto sparseEigenElements =
189+
MavIterativeElimination{param}.run(sigma);
190+
191+
const auto stop = std::chrono::high_resolution_clock::now();
192+
193+
const auto durationUs =
194+
std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
195+
196+
std::cout << "\n\nIterative elimination algo. mav run done in "
197+
<< durationUs.count() << " microseconds!\n";
198+
199+
for (const auto &component : sparseEigenElements)
200+
{
201+
std::cout << component.value << ":\t"
202+
<< component.vector.transpose() << "\n";
203+
}
204+
}
205+
206+
{
207+
std::cout << "\nStarting iterative elimination algo. amvl run.\n";
208+
using AmvlIterativeElimination =
209+
Sparsepc::linearmodel::AmvlIterativeElimination<Scalar>;
210+
const auto start = std::chrono::high_resolution_clock::now();
211+
212+
const AmvlIterativeElimination::Param param{{k0, k1, k2}};
213+
214+
const auto sparseEigenElements =
215+
AmvlIterativeElimination{param}.run(sigma);
216+
217+
const auto stop = std::chrono::high_resolution_clock::now();
218+
219+
const auto durationUs =
220+
std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
221+
222+
std::cout << "\n\nIterative elimination algo. amvl run done in "
223+
<< durationUs.count() << " microseconds!\n";
224+
225+
for (const auto &component : sparseEigenElements)
226+
{
227+
std::cout << component.value << ":\t"
228+
<< component.vector.transpose() << "\n";
229+
}
230+
}
231+
154232
return 0;
155233
}

include/sparsepc/core.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
#include <sparsepc/dl/solver.hpp>
1212
#include <sparsepc/eigen/solver.hpp>
1313
#include <sparsepc/gspca/solver.hpp>
14+
#include <sparsepc/iterativeelimination/solver.hpp>
1415
#include <sparsepc/progress/bar.hpp>
1516
#include <sparsepc/utils/matrix.hpp>

0 commit comments

Comments
 (0)