anchor.diff:          // computation grid configuration: 2D grid with size = rows*columns and local block with size=localWorkSize*localWorkSize
           let d =(new _3D(rulesIndexed.Length, recTable.Length, recTable.Length, maxLocalWorkSize, maxLocalWorkSize, maxLocalWorkSize))
           // Prepare kernel. Pass actual parameters for computation:
  -        kernelPrepare d rulesIndexed recTable
  +        kernelPrepare d rulesIndexed recTable rules
           // Add command into queue and finish it
           let _ = commandQueue.Add(kernelRun()).Finish()
       
  
positive.code: open Brahma.FSharp.OpenCL.Extensions
  
  open System.Collections.Generic
  
  
  type GPUWork(extRowSize, extNTermsCount, extRecTable:_[], extRules, extRulesIndexed:_[]) =
  
  
negative.code:                 | 0uy -> "0"
                  | _ -> lblNameArr.[(int lbl) - 1]
                  
      let calcDiff columnIndex =
          if columnIndex < 2
          then 0
          else 
              let diff = ref 0
              [|1..columnIndex-1|]
              |> Array.iter (fun i -> diff := (!diff + i))
              !diff
  
      let recognitionTable (_,_) (s:Microsoft.FSharp.Core.uint16[]) weightCalcFun =
  
          nTermsCount <- 
  