#pragma once
#include "qc/integrals.hpp"
#include "qc/matrix.hpp"
#include <cstddef>
#include <vector>
namespace qc {
struct RhfResult {
double electronic_energy{0.0};
double nuclear_repulsion{0.0};
double total_energy{0.0};
Vector orbital_energies;
Matrix C;
Matrix P;
int iterations{0};
bool converged{false};
};
RhfResult rhf_closed_shell(const MolecularIntegrals& ints, std::size_t n_electrons,
double conv_tol = 1e-10, int max_iter = 100,
int diis_subspace = 6,
const std::vector<Atom>* atoms = nullptr);
} // namespace qc