I added try-catch flow for two errors: (1) - pinv would throw a LAPACK exception with code 4 (still don't know what that means) every 20 or so simulations.  I now catch that and use just the diagonals when that throws an error.  (2) - bessel_I1 was throwing underflows.  I use 0.0.