diff --git a/src/generate.cpp b/src/generate.cpp index 8cd73504..ee343f55 100644 --- a/src/generate.cpp +++ b/src/generate.cpp @@ -554,8 +554,9 @@ void SolveSpaceUI::SolveGroup(hGroup hg, bool andFindFree) { SolveResult SolveSpaceUI::TestRankForGroup(hGroup hg) { WriteEqSystemForGroup(hg); Group *g = SK.GetGroup(hg); - SolveResult result = sys.SolveRank(g, NULL, NULL, false, false, - /*forceDofCheck=*/!g->dofCheckOk); + SolveResult result = sys.SolveRank(g, NULL, NULL, + /*andFindBad=*/false, + /*andFindFree=*/false); FreeAllTemporary(); return result; } diff --git a/src/solvespace.h b/src/solvespace.h index 3fde8fbb..7fe4f666 100644 --- a/src/solvespace.h +++ b/src/solvespace.h @@ -312,7 +312,7 @@ public: bool andFindBad, bool andFindFree, bool forceDofCheck = false); SolveResult SolveRank(Group *g, int *dof, List *bad, - bool andFindBad, bool andFindFree, bool forceDofCheck = false); + bool andFindBad, bool andFindFree); void Clear(); }; diff --git a/src/system.cpp b/src/system.cpp index 07cad707..8801caf7 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -518,7 +518,7 @@ didnt_converge: } SolveResult System::SolveRank(Group *g, int *dof, List *bad, - bool andFindBad, bool andFindFree, bool forceDofCheck) + bool andFindBad, bool andFindFree) { WriteEquationsExceptFor(Constraint::NO_CONSTRAINT, g); @@ -526,10 +526,6 @@ SolveResult System::SolveRank(Group *g, int *dof, List *bad, param.ClearTags(); eq.ClearTags(); - if(!forceDofCheck) { - SolveBySubstitution(); - } - // Now write the Jacobian, and do a rank test; that // tells us if the system is inconsistently constrained. if(!WriteJacobian(0)) { @@ -539,7 +535,7 @@ SolveResult System::SolveRank(Group *g, int *dof, List *bad, bool rankOk = TestRank(); if(!rankOk) { if(!g->allowRedundant) { - if(andFindBad) FindWhichToRemoveToFixJacobian(g, bad, forceDofCheck); + if(andFindBad) FindWhichToRemoveToFixJacobian(g, bad, /*forceDofCheck=*/true); } } else { // This is not the full Jacobian, but any substitutions or single-eq