pub fn generate_diis_error_vector(
    hamiltonian: &[MatrixUpper<f64>; 2],
    ovlp: &MatrixUpper<f64>,
    density_matrix: &mut [Vec<MatrixFull<f64>>; 2],
    spin_channel: usize
) -> (Vec<f64>, [MatrixFull<f64>; 2])