rewrite
add cholesky-decompose