I can use Bellman-Ford to get some of the elementary negative weight cycles in a graph. It's not guaranteed to always get all of them.
(Elementary Cycle: A cycle is elementary if no vertex but the first and last appears twice.)
But I want to find ALL elementary negative weight cycles. Even taking each vertex as the source will not always get ALL negative weight cycles.
Take this graph for example:
With Bellman-Ford, starting from any vertex, I can only get one cycle "U→H→U".
The cycle "U→S→U" is always missing.
Is there any algorithm with which I can find all negative weight cycles reliably?