Finished ordering implementation
parent
ad74a4b8c9
commit
99caf8833a
|
|
@ -207,18 +207,28 @@ namespace gtsam {
|
|||
vector<int> adj = met.adj();
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
if (outputError != METIS_OK)
|
||||
{
|
||||
std::cout << "METIS ordering error!\n";
|
||||
std::cout << "METIS failed during Nested Dissection ordering!\n";
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
result.resize(size);
|
||||
for (size_t j = 0; j < size; ++j)
|
||||
result[j] = perm[j];
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -119,14 +119,13 @@ TEST(Ordering, csr_format) {
|
|||
}
|
||||
/* ************************************************************************* */
|
||||
TEST(Ordering, metis) {
|
||||
|
||||
|
||||
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); }
|
||||
|
|
|
|||
Loading…
Reference in New Issue