getOrdering uses [keys] now
parent
14102e259e
commit
7b0c69da2d
|
@ -245,21 +245,20 @@ Ordering colamd(int n_col, int n_row, int nrNonZeros, const map<Key, vector<int>
|
|||
int Alen = nrNonZeros*30; /* colamd arg 3: size of the array A TODO: use Tim's function ! */
|
||||
int * A = new int[Alen]; /* colamd arg 4: row indices of A, of size Alen */
|
||||
int * p = new int[n_col + 1]; /* colamd arg 5: column pointers of A, of size n_col+1 */
|
||||
{
|
||||
p[0] = 0;
|
||||
int j = 1;
|
||||
int count = 0;
|
||||
typedef typename map<Key, vector<int> >::const_iterator iterator;
|
||||
for(iterator it = columns.begin(); it != columns.end(); it++)
|
||||
{
|
||||
const Key& key = it->first;
|
||||
const vector<int>& column = it->second;
|
||||
initialOrder.push_back(key);
|
||||
BOOST_FOREACH(int i, column) A[count++] = i; // copy sparse column
|
||||
p[j] = count; // column j (base 1) goes from A[j-1] to A[j]-1
|
||||
j+=1;
|
||||
}
|
||||
|
||||
p[0] = 0;
|
||||
int j = 1;
|
||||
int count = 0;
|
||||
typedef typename map<Key, vector<int> >::const_iterator iterator;
|
||||
for(iterator it = columns.begin(); it != columns.end(); it++) {
|
||||
const Key& key = it->first;
|
||||
const vector<int>& column = it->second;
|
||||
initialOrder.push_back(key);
|
||||
BOOST_FOREACH(int i, column) A[count++] = i; // copy sparse column
|
||||
p[j] = count; // column j (base 1) goes from A[j-1] to A[j]-1
|
||||
j+=1;
|
||||
}
|
||||
|
||||
double* knobs = NULL; /* colamd arg 6: parameters (uses defaults if NULL) */
|
||||
int stats[COLAMD_STATS]; /* colamd arg 7: colamd output statistics and error codes */
|
||||
|
||||
|
@ -290,12 +289,9 @@ Ordering LinearFactorGraph::getOrdering() const {
|
|||
|
||||
// loop over all factors = rows
|
||||
for (int i = 0; i < n_row; i++) {
|
||||
shared_factor factor = factors_[i];
|
||||
for (map<Key, Matrix>::const_iterator lit = factor->begin(); lit != factor->end(); lit++) {
|
||||
const Key& key = lit->first;
|
||||
columns[key].push_back(i);
|
||||
nrNonZeros++;
|
||||
}
|
||||
set<Key> keys = factors_[i]->keys();
|
||||
BOOST_FOREACH(Key key, keys) columns[key].push_back(i);
|
||||
nrNonZeros+= keys.size();
|
||||
}
|
||||
int n_col = (int)(columns.size()); /* colamd arg 2: number of columns in A */
|
||||
|
||||
|
|
Loading…
Reference in New Issue