anchor.diff:      static let doubleEps = 1E-20
       static let floatEps = 1E-15f
   
  +
  +    static member DecomposeInPlace(Q : float[,], R : float[,]) =
  +        let mutable Q = Q
  +        let mutable R = R
  +        tensor {
  +            let! pQ = &Q
  +            let! pR = &R
  +            qrDecomposeNative doubleEps pQ pR
  +        }
  +
  +    static member DecomposeInPlace(Q : float32[,], R : float32[,]) =
  +        let mutable Q = Q
  +        let mutable R = R
  +        tensor {
  +            let! pQ = &Q
  +            let! pR = &R
  +            qrDecomposeNative floatEps pQ pR
  +        }
  +
       static member DecomposeInPlace(Q : NativeMatrix<float>, R : NativeMatrix<float>) =
           qrDecomposeNative doubleEps Q R
           
  
positive.code:         }
          Q, R
          
      static member Decompose (m : Matrix<float32>) =
          let R = m.Copy()
          let Q = Matrix<float32>(m.SY, m.SY)
  
negative.code:             let! pR = &R
              qrDecomposeNative floatEps pQ pR
          }
          
      static member Decompose (m : float[,]) =
          let rows = m.GetLength(0)
          let R = Array2D.copy m
          let Q = Array2D.zeroCreate rows rows
          QR.DecomposeInPlace(Q, R)
          Q, R
          
      static member Decompose (m : Matrix<float>) =
          let R = m.Copy()
          let Q = Matrix<float>(m.SY, m.SY)
  