anchor.diff:  
           for i in 1..(layerNumBound - 1) do
               let layer = constructLayer i
  -            let matricesSize = 1 <<< i
               
               if Array.length layer > 0 
  -            then completeVLayer layer matricesSize
  +            then completeVLayer layer
               
  +//        printfn "bfs mult count: %i" !multiplicationCounter
  +//        multiplicationCounter := 0
           tMatrix.Item S
positive.code:             nontermProbs |> List.iter (addProbToMatrix tMatrix row column)
  
          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 tasks = 
              let crossproduct xs ys = 
                  xs |> Array.collect (fun x -> ys |> Array.map (fun y -> x, y))
  
  
negative.code:                         
                      performMultiplication secondMultTasks
                      performMultiplication thirdMultTasks       
                      completeLayer secondSubLayer
  
  
          and constructLayer layerNum = 
  