コード例 #1
0
        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);
            }
        }
コード例 #2
0
 internal override void AddEtaMatrix(EtaMatrix e)
 {
     this.etaList.Add(e);
 }
コード例 #3
0
 internal override void AddEtaMatrix(EtaMatrix e)
 {
   this.etaList.Add(e);
 }
コード例 #4
0
ファイル: Factorization.cs プロジェクト: nbulp/CodeContracts
 internal override void AddEtaMatrix(EtaMatrix e)
 {
   Contract.Requires(e != null);
 }
コード例 #5
0
ファイル: Factorization.cs プロジェクト: nbulp/CodeContracts
 abstract internal void AddEtaMatrix(EtaMatrix e);
コード例 #6
0
 internal override void AddEtaMatrix(EtaMatrix e)
 {
     Contract.Requires(e != null);
 }
コード例 #7
0
 abstract internal void AddEtaMatrix(EtaMatrix e);
コード例 #8
0
    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);
      }
    }