I have a problem... I have an nxn matrix A what I want to invert: A^-1 * A = I A^-1 * (A * A^T) = A^T A^-1 * (L * L^T) = A^T A^-1 * L = A^T * L^T^-1 A^-1 = A^T * L^T^-1 * L^-1 L is a lower triangular matrix such that (L * L^T) = (A * A^T). We get L with the use of Cholesky decompositio. It needs a symmetric, positive definite matrix to decompose; and multiplying a matrix with its own transpose always results with such. Operation count: A * A^T -> 1/2 * n^3 (we need only the half of the matrix) cholesky decomposition: 1/6 * n^3 lower triangular inverting: 1/6 * n^3 A^T * L^T^-1 -> 1/2 * n^3 A^T * L^T^-1 * L^-1 -> 1/2 * n^3 total operation count: 11/6 * n^3 ~ 2 * n^3 -> BAAAAD! This is the problem! To my knowledge this algorithm can be done with about 1 * n^3 operation counts, but I don't know how. Can anyone help? --- And another problem: how can I decompose an nxn matrix A into a symmetric matrix and any other component that is easily invertible, with few operations, and great stability?