public MatrixValue Function(MatrixValue M) { var chol = new CholeskyDecomposition(M); return chol.GetL(); }
/// <summary> /// Computes the inverse (if it exists). /// </summary> /// <returns>The inverse matrix.</returns> public MatrixValue Inverse() { var target = One(DimensionX); if (DimensionX < 24) { var lu = new YAMP.Numerics.LUDecomposition(this); return lu.Solve(target); } else if (IsSymmetric) { var cho = new YAMP.Numerics.CholeskyDecomposition(this); return cho.Solve(target); } var qr = YAMP.Numerics.QRDecomposition.Create(this); return qr.Solve(target); }