void FindNewXStarAndFactorization(int leavingVariable, int enteringVariable, double t, double[] d, bool changeBasis) { Contract.Requires(leavingVariable >= -1); xStar[enteringVariable] += t; int basisSize = BasisSize; for (int i = 0; i < basisSize; i++) { var b = basis[i]; Contract.Assume(b >= 0); Contract.Assume(b < XStar.Length); XStar[b] -= d[i] * t; } if (changeBasis) { Contract.Assume(leavingVariable >= 0); ReplaceInBasis(enteringVariable, leavingVariable); int etaIndex = index[enteringVariable]; var clonedD = d.Clone() as double[]; Contract.Assume(clonedD != null); var e = new EtaMatrix(etaIndex, clonedD); ////debug //det *= d[etaIndex]; //Console.WriteLine("det={0}", det); ////end debug factorization.AddEtaMatrix(e); } }
internal override void AddEtaMatrix(EtaMatrix e) { this.etaList.Add(e); }
internal override void AddEtaMatrix(EtaMatrix e) { Contract.Requires(e != null); }
abstract internal void AddEtaMatrix(EtaMatrix e);