hamiltonian.cpp