public static DoubleMatrix blasInvert(DoubleMatrix myPrecision) {
double[] b = new double[myPrecision.columns];
int[] p = new int[myPrecision.columns];
intW info = new intW(0);
int m = myPrecision.columns;
double [] a = myPrecision.toArray();
LAPACK.getInstance().dgetrf(m, m, a, m, p, info);
if (info.val != 0)
throw new IllegalArgumentException();
LAPACK.getInstance().dgetri(m, a, m, p, b, b.length, info);
if (info.val != 0)
throw new IllegalArgumentException();
DoubleMatrix pInv = new DoubleMatrix(a);
return pInv.reshape(myPrecision.rows, myPrecision.columns);
}