}                               // private constructor for singleton pattern

        /// <summary>
        /// See https://software.intel.com/en-us/mkl-developer-reference-fortran-gelqf#4E659C89-1230-4052-8454-26AF5066BA46
        /// </summary>
        public void Dgelqf(int m, int n, double[] a, int offsetA, int ldA, double[] tau, int offsetTau, double[] work, int offsetWork, int lWork, ref int info)
        => Lapack.Dgelqf(ref m, ref n, ref a[offsetA], ref ldA, ref tau[offsetTau],
                         ref work[offsetWork], ref lWork, ref info);