Computes the minimum degree or the approximate minimum degree ordering using the quotient graph with support for mass elimination and supervariables. More...
#include <SparseConectivityMtx.h>
Public Member Functions | |
long | ApproximateMinumumDegree (long i, IntArrayList &Lp) |
void | ClearAMD_w (long i) |
void | ComputeAMD_w_Le_Lp (long i) |
void | Eliminate (long p) |
Masselimination. | |
long | ExternalDegree (long i) |
This method computes the exact external degree. | |
IntArrayList * | GenerateMD (bool approximate_degree, IntArrayList *fixed=NULL) |
Returns the permutation according to minimum degree algorithm. | |
long | Hash (long i) |
bool | IsFree (long i) |
bool | IsIndistinguishable (long i, long j) |
MD_Qqraph (SparseConectivityMtxII *mtx) | |
Computes the minimum degree or the approximate minimum degree ordering using the quotient graph with support for mass elimination and supervariables. | |
void | SupervariablesDetection (IntArrayList &Lp) |
~MD_Qqraph () | |
Static Public Member Functions | |
static void | Insert (IntArrayList &al, long i) |
Public Attributes | |
IntArrayList ** | A |
bool | aggressive_absorbtion |
long * | amd_w |
bool | approximate_degree |
long * | degrees |
IntArrayList ** | E |
IntArrayList * | elements |
IntArrayList | hash_parents |
ColHash | ht |
IntArrayList ** | I |
bool | keep_sorted_order |
IntArrayList ** | L |
SparseConectivityMtxII * | mtx |
long | n |
long | n_1 |
long | no_elements |
long * | pfixed |
long * | pLIdx |
long * | pPIdx |
IntLinkArray | variables |
Private Attributes | |
long | MinDegA |
long | MinDegB |
long | MinDegC |
long | vi_Min |
Computes the minimum degree or the approximate minimum degree ordering using the quotient graph with support for mass elimination and supervariables.
Definition at line 75 of file SparseConectivityMtx.h.
MD_Qqraph | ( | SparseConectivityMtxII * | mtx | ) |
Computes the minimum degree or the approximate minimum degree ordering using the quotient graph with support for mass elimination and supervariables.
Definition at line 662 of file SparseConectivityMtx.cpp.
References A, aggressive_absorbtion, amd_w, approximate_degree, degrees, E, elements, I, keep_sorted_order, L, MinDegA, MinDegB, MinDegC, SparseConectivityMtxII::N(), n, n_1, no_elements, pfixed, pLIdx, pPIdx, and vi_Min.
~MD_Qqraph | ( | ) |
long ApproximateMinumumDegree | ( | long | i, | |
IntArrayList & | Lp | |||
) |
Definition at line 734 of file SparseConectivityMtx.cpp.
References A, amd_w, IntArrayList::Count, IntArrayList::CountWithoutMask(), degrees, E, IsFree(), IntArrayList::Items, L, MinDegB, n, no_elements, pPIdx, and vi_Min.
Referenced by Eliminate().
void ClearAMD_w | ( | long | i | ) |
Definition at line 727 of file SparseConectivityMtx.cpp.
References amd_w, IntArrayList::Count, and E.
Referenced by Eliminate().
void ComputeAMD_w_Le_Lp | ( | long | i | ) |
Definition at line 710 of file SparseConectivityMtx.cpp.
References aggressive_absorbtion, amd_w, IntArrayList::Count, E, I, L, and IntArrayList::RemoveAt().
Referenced by Eliminate().
void Eliminate | ( | long | p | ) |
Masselimination.
p | pivot element |
Definition at line 840 of file SparseConectivityMtx.cpp.
References A, approximate_degree, ApproximateMinumumDegree(), ClearAMD_w(), SparseConectivityMtxII::ColumnsIndexes, ComputeAMD_w_Le_Lp(), IntArrayList::Count, degrees, E, elements, ExternalDegree(), IntArrayList::Fill(), I, Insert(), IntArrayList::Items, keep_sorted_order, L, mtx, no_elements, pLIdx, pPIdx, IntLinkArray::Remove(), IntArrayList::RemoveByBattern(), IntArrayList::RemoveMarkByBattern(), IntArrayList::SetIndexesTo(), IntArrayList::SortInsert(), SupervariablesDetection(), IntArrayList::TrimToSize(), and variables.
Referenced by GenerateMD().
long ExternalDegree | ( | long | i | ) |
This method computes the exact external degree.
i | variable |
Definition at line 777 of file SparseConectivityMtx.cpp.
References A, IntArrayList::Count, E, IsFree(), IntArrayList::Items, L, MinDegB, pLIdx, pPIdx, IntArrayList::SetIndexesTo(), and vi_Min.
Referenced by Eliminate().
IntArrayList * GenerateMD | ( | bool | approximate_degree, | |
IntArrayList * | fixed = NULL | |||
) |
Returns the permutation according to minimum degree algorithm.
approximate_degree | true=approximate degree, false=true external degree |
Definition at line 1049 of file SparseConectivityMtx.cpp.
References A, IntArrayList::Add(), IntArrayList::Alloc(), amd_w, Array::Clear(), SparseConectivityMtxII::ColumnsIndexes, IntArrayList::Count, degrees, E, elements, Eliminate(), IntLinkArray::first, ht, I, IntLinkArray::Init(), ColHash::Init(), IsFree(), IntArrayList::Items, keep_sorted_order, L, memset(), MinDegA, MinDegB, MinDegC, mtx, n, IntLinkArray::next, no_elements, permutation(), pfixed, pLIdx, pPIdx, IntArrayList::SetIndexesTo(), variables, vi_Min, and TraceableMatrix::Writeln().
Referenced by SparseConectivityMtxII::GenerateAMD(), SparseConectivityMtxII::GenerateAMD_AA(), SparseConectivityMtxII::GenerateFillInPresorted(), and SparseConectivityMtxII::GenerateMD().
long Hash | ( | long | i | ) | [inline] |
Definition at line 135 of file SparseConectivityMtx.h.
References A, E, n_1, and IntArrayList::SumElements().
Referenced by SupervariablesDetection().
void Insert | ( | IntArrayList & | al, | |
long | i | |||
) | [static] |
Definition at line 703 of file SparseConectivityMtx.cpp.
References IntArrayList::BinarySearch(), and IntArrayList::Insert().
Referenced by Eliminate().
bool IsFree | ( | long | i | ) | [inline] |
Definition at line 115 of file SparseConectivityMtx.h.
References pfixed.
Referenced by ApproximateMinumumDegree(), ExternalDegree(), GenerateMD(), and SupervariablesDetection().
bool IsIndistinguishable | ( | long | i, | |
long | j | |||
) |
Definition at line 953 of file SparseConectivityMtx.cpp.
References A, E, pPIdx, IntArrayList::SetIndexesTo(), and IntArrayList::TestSetIndexesTo().
Referenced by SupervariablesDetection().
void SupervariablesDetection | ( | IntArrayList & | Lp | ) |
Definition at line 976 of file SparseConectivityMtx.cpp.
References ColHash::AddValue(), IntArrayList::Alloc(), ColHash::buckets, ColHash::Clear(), IntArrayList::Count, degrees, E, Hash(), hash_parents, ht, I, IsFree(), IsIndistinguishable(), IntArrayList::Items, keep_sorted_order, MinDegB, ColHash::occupied_buckets, IntLinkArray::Remove(), IntArrayList::SortInsert(), variables, and vi_Min.
Referenced by Eliminate().
Definition at line 86 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), Eliminate(), ExternalDegree(), GenerateMD(), Hash(), IsIndistinguishable(), and MD_Qqraph().
Definition at line 101 of file SparseConectivityMtx.h.
Referenced by ComputeAMD_w_Le_Lp(), SparseConectivityMtxII::GenerateAMD_AA(), and MD_Qqraph().
long* amd_w |
Definition at line 80 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), ClearAMD_w(), ComputeAMD_w_Le_Lp(), GenerateMD(), MD_Qqraph(), and ~MD_Qqraph().
bool approximate_degree |
Definition at line 99 of file SparseConectivityMtx.h.
Referenced by Eliminate(), and MD_Qqraph().
long* degrees |
Definition at line 79 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), Eliminate(), GenerateMD(), MD_Qqraph(), SupervariablesDetection(), and ~MD_Qqraph().
Definition at line 87 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), ClearAMD_w(), ComputeAMD_w_Le_Lp(), Eliminate(), ExternalDegree(), GenerateMD(), Hash(), IsIndistinguishable(), MD_Qqraph(), SupervariablesDetection(), and ~MD_Qqraph().
Definition at line 96 of file SparseConectivityMtx.h.
Referenced by Eliminate(), GenerateMD(), MD_Qqraph(), and ~MD_Qqraph().
Definition at line 143 of file SparseConectivityMtx.h.
Referenced by SupervariablesDetection().
Definition at line 105 of file SparseConectivityMtx.h.
Referenced by GenerateMD(), and SupervariablesDetection().
Definition at line 88 of file SparseConectivityMtx.h.
Referenced by ComputeAMD_w_Le_Lp(), Eliminate(), GenerateMD(), MD_Qqraph(), SupervariablesDetection(), and ~MD_Qqraph().
bool keep_sorted_order |
Definition at line 100 of file SparseConectivityMtx.h.
Referenced by Eliminate(), SparseConectivityMtxII::GenerateFillInPresorted(), GenerateMD(), MD_Qqraph(), and SupervariablesDetection().
Definition at line 89 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), ComputeAMD_w_Le_Lp(), Eliminate(), ExternalDegree(), GenerateMD(), MD_Qqraph(), and ~MD_Qqraph().
long MinDegA [private] |
Definition at line 82 of file SparseConectivityMtx.h.
Referenced by GenerateMD(), and MD_Qqraph().
long MinDegB [private] |
Definition at line 82 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), ExternalDegree(), GenerateMD(), MD_Qqraph(), and SupervariablesDetection().
long MinDegC [private] |
Definition at line 82 of file SparseConectivityMtx.h.
Referenced by GenerateMD(), and MD_Qqraph().
Definition at line 78 of file SparseConectivityMtx.h.
Referenced by Eliminate(), and GenerateMD().
long n |
Definition at line 103 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), GenerateMD(), MD_Qqraph(), and ~MD_Qqraph().
long n_1 |
Definition at line 104 of file SparseConectivityMtx.h.
Referenced by Hash(), and MD_Qqraph().
long no_elements |
Definition at line 97 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), Eliminate(), GenerateMD(), and MD_Qqraph().
long* pfixed |
Definition at line 93 of file SparseConectivityMtx.h.
Referenced by GenerateMD(), IsFree(), and MD_Qqraph().
long* pLIdx |
Definition at line 91 of file SparseConectivityMtx.h.
Referenced by Eliminate(), ExternalDegree(), GenerateMD(), and MD_Qqraph().
long* pPIdx |
Definition at line 92 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), Eliminate(), ExternalDegree(), GenerateMD(), IsIndistinguishable(), and MD_Qqraph().
Definition at line 95 of file SparseConectivityMtx.h.
Referenced by Eliminate(), GenerateMD(), and SupervariablesDetection().
long vi_Min [private] |
Definition at line 83 of file SparseConectivityMtx.h.
Referenced by ApproximateMinumumDegree(), ExternalDegree(), GenerateMD(), MD_Qqraph(), and SupervariablesDetection().