anchor.diff:              let work = Array.zeroCreate (n * n)
               let mutable arg_n = n
               let mutable arg_lda = n
  -            let mutable arg_lwork = n * n
  +            let mutable arg_lwork = work.Length
               let mutable arg_info = 0
               use arg_a = new PinnedArray2D<float>(a)
               use arg_ipiv = new PinnedArray<int>(ipiv)
  
positive.code: 
      module BLASExtensions =
          [<SuppressUnmanagedCodeSecurity>]
          [<DllImport("libopenblas", EntryPoint="cblas_somatcopy")>]
          extern void cblas_somatcopy(int ordering, int trans, int rows, int cols, float32 alpha, float32 *a, int lda, float32 *b, int ldb)
  
          // B <- alpha * transpose(A)
          let somatcopyT(alpha:float32, a:float32[,], b:float32[,]) =
  
negative.code:                     let z = Array2D.zeroCreate x.Length y.Length
                      BLAS.sger(1.f, x, y, z)
                      z
              // BLAS
              member o.L1Norm_V(x) =
                  if Array.isEmpty x then
  