private void CheckCorrectness() { for (int i = 0; i < this.y.Length; i++) { y[i] = this.xStar[basis[i]]; } BMatrix B = new BMatrix(basis, A); Vector rs = (Vector)(B * (new Vector(y))); double err = 0; for (int i = 0; i < y.Length; i++) { double d = Math.Abs(this.constraints[i].rightSide - rs[i]); if (d > err) { err = d; } } if (err > this.pivotEpsilon) { Console.WriteLine("error is big {0}", err); } }
/// <summary> /// create the initial factorization of the form Ln*Pn*...*L1*P1*A=Un-1*...U0 /// </summary> /// <param name="APar"></param> internal StandardFactorization(Matrix APar, UMatrix Upar) { Contract.Requires(APar != null); Contract.Requires(Upar != null); this.A = (BMatrix)APar; this.dim = A.NumberOfColumns; this.U = Upar; InitMatrixUAndMarkovichNumbers(); CalculateInitialFactorization(); #if DEBUGGLEE // if(calls>=63) // CheckFactorization(); #endif }
private void CheckCorrectness() { for (int i = 0; i < this.y.Length; i++) y[i] = this.xStar[basis[i]]; BMatrix B = new BMatrix(basis, A); Vector rs = (Vector)(B * (new Vector(y))); double err = 0; for (int i = 0; i < y.Length; i++) { double d = Math.Abs(this.constraints[i].rightSide - rs[i]); if (d > err) err = d; } if (err > this.pivotEpsilon) Console.WriteLine("error is big {0}", err); }