anchor.diff:          tMatrix.Item S
   
   
  -
       [<EntryPoint>]
       let main args = 
  +//        open CYKMatrix
  +//        open CYKMatrixBFS
  +
           let A = NonTerminal "A"
           let B = NonTerminal "B"
           let BB = NonTerminal "BB"
  
positive.code: 
          let stringSize = String.length strToParse
  
          let matrixSizeExponent = (System.Math.Log (double stringSize)) / (System.Math.Log 2.) |> System.Math.Ceiling |> int
          let matrixSize = (1 <<< matrixSizeExponent)
  
      
  
negative.code: 
          let addToP nts (matrix: double [,]) (where: SubMatrix.T) =
              for i in [0 .. where.Size - 1] do
                  let actualColCount = (min (snd where.Top) (stringSize + 1)) - snd where.Left
                  for j in [0 .. actualColCount - 1] do
                      addProbToMatrix pMatrix (i + fst where.Left) (j + snd where.Left) (nts, matrix.[i, j])
  
          let subMatrixMult nt1 nt2 (from1: SubMatrix.T) (from2: SubMatrix.T) =
              let calcCell i j =
                  [0..from1.Size-1] |> List.fold (fun acc k -> acc + tMatrix.[nt1].[i + fst from1.Left, k + snd from1.Left] * 
                                                                     tMatrix.[nt2].[k + fst from2.Left, j + snd from2.Left]) 0. 
              let actualCol2Count = (min (snd from2.Top) (stringSize + 1)) - snd from2.Left
              Array2D.init from1.Size actualCol2Count calcCell    
  
          let performMultiplication task = 
              let {where=where; from1=from1; from2=from2} = task
  