Finished ordering implementation
parent
ad74a4b8c9
commit
99caf8833a
|
|
@ -207,18 +207,28 @@ namespace gtsam {
|
||||||
vector<int> adj = met.adj();
|
vector<int> adj = met.adj();
|
||||||
|
|
||||||
vector<int> perm, iperm;
|
vector<int> perm, iperm;
|
||||||
|
|
||||||
|
idx_t size = xadj.size() - 1;
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
perm.push_back(0);
|
||||||
|
iperm.push_back(0);
|
||||||
|
}
|
||||||
|
|
||||||
int outputError;
|
int outputError;
|
||||||
idx_t size = xadj.size();
|
|
||||||
outputError = METIS_NodeND(&size, xadj.data(), adj.data(), NULL, NULL, perm.data(), iperm.data());
|
outputError = METIS_NodeND(&size, &xadj[0], &adj[0], NULL, NULL, &perm[0], &iperm[0]);
|
||||||
Ordering result;
|
Ordering result;
|
||||||
|
|
||||||
if (outputError != METIS_OK)
|
if (outputError != METIS_OK)
|
||||||
{
|
{
|
||||||
std::cout << "METIS ordering error!\n";
|
std::cout << "METIS failed during Nested Dissection ordering!\n";
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result.resize(size);
|
||||||
|
for (size_t j = 0; j < size; ++j)
|
||||||
|
result[j] = perm[j];
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,12 +121,11 @@ TEST(Ordering, csr_format) {
|
||||||
TEST(Ordering, metis) {
|
TEST(Ordering, metis) {
|
||||||
|
|
||||||
SymbolicFactorGraph sfg;
|
SymbolicFactorGraph sfg;
|
||||||
sfg.push_factor(0, 1);
|
|
||||||
sfg.push_factor(1, 2);
|
|
||||||
sfg.push_factor(2, 3);
|
|
||||||
sfg.push_factor(3, 4);
|
|
||||||
|
|
||||||
Ordering::METIS(sfg);
|
sfg.push_factor(0, 1);
|
||||||
|
sfg.push_factor(1, 2);
|
||||||
|
|
||||||
|
Ordering metis = Ordering::METIS(sfg);
|
||||||
}
|
}
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue