Add a new solver that constructs the (pseudo)-inverse by hand starting from the diagonalisation of S obtained from `jnp.linalg.eigh`, and potentially applies a soft smoothing to the eigenvalues.