Opened 5 years ago
#13209 new Bugs
erdos_renyi_iterator hangs when n is 1
Reported by: | Owned by: | Jeremiah Willcock | |
---|---|---|---|
Milestone: | To Be Determined | Component: | graph |
Version: | Boost Development Trunk | Severity: | Problem |
Keywords: | Cc: |
Description
Running the following program would result in an infinite loop:
#include <boost/graph/erdos_renyi_generator.hpp> #include <boost/graph/adjacency_list.hpp> #include <random> using Graph = boost::adjacency_list<>; using ERGen = boost::erdos_renyi_iterator<std::mt19937, Graph>; int main() { std::mt19937 gen; int n = 1; Graph g(ERGen(gen, n, 0.5), ERGen(), n); }
This is caused by the while loop inside erdos_renyi_iterator::next(). If n is 1 and allow_self_loops is false, the loop condition will be true forever. A simple change that makes an early exit for the n=1 case would fix the problem.
Note:
See TracTickets
for help on using tickets.