Home | History | Annotate | Download | only in OrderingMethods

Lines Matching refs:Index

44 template<typename Index>
45 static int cs_wclear (Index mark, Index lemax, Index *w, Index n)
47 Index k;
59 template<typename Index>
60 Index cs_tdfs(Index j, Index k, Index *head, const Index *next, Index *post, Index *stack)
90 template<typename Scalar, typename Index>
91 void minimum_degree_ordering(SparseMatrix<Scalar,ColMajor,Index>& C, PermutationMatrix<Dynamic,Dynamic,Index>& perm)
100 Index n = C.cols();
101 dense = std::max<Index> (16, Index(10 * sqrt(double(n)))); /* find dense threshold */
102 dense = std::min<Index> (n-2, dense);
104 Index cnz = C.nonZeros();
109 Index* W = new Index[8*(n+1)]; /* get workspace */
110 Index* len = W;
111 Index* nv = W + (n+1);
112 Index* next = W + 2*(n+1);
113 Index* head = W + 3*(n+1);
114 Index* elen = W + 4*(n+1);
115 Index* degree = W + 5*(n+1);
116 Index* w = W + 6*(n+1);
117 Index* hhead = W + 7*(n+1);
118 Index* last = perm.indices().data(); /* use P as workspace for last */
121 Index* Cp = C.outerIndexPtr();
122 Index* Ci = C.innerIndexPtr();
139 mark = internal::cs_wclear<Index>(0, 0, w, n); /* clear w */
266 mark = internal::cs_wclear<Index>(mark, lemax, w, n); /* clear w if necessary */
336 degree[i] = std::min<Index> (degree[i], d); /* update degree(i) */
348 lemax = std::max<Index>(lemax, dk);
349 mark = internal::cs_wclear<Index>(mark+lemax, lemax, w, n); /* clear w */
397 d = std::min<Index> (d, n - nel - nvi);
402 mindeg = std::min<Index> (mindeg, d); /* find new minimum degree */
435 if(Cp[i] == -1) k = internal::cs_tdfs<Index>(i, k, head, next, perm.indices().data(), w);