40 #include <basic/Tracer.hh>
42 #include <utility/io/util.hh>
55 #include <numeric/random/random.hh>
56 #include <numeric/random/random_permutation.hh>
63 #include <utility/vector0.hh>
64 #include <utility/vector1.hh>
70 static basic::Tracer
tr(
"protocols.jumping");
71 static numeric::random::RandomGenerator
RG(1422934);
76 using namespace ObjexxFCL;
147 input_sheet_sizes_( sheet_topol )
157 tr.Debug <<
"random choice: num_sheets: " << num_sheets << std::endl;
162 strand_ids.push_back( i );
165 numeric::random::random_permutation( strand_ids,
RG );
166 numeric::random::random_permutation( strand_ids,
RG );
168 tr.Debug <<
"strand_ids.size(): "
169 << strand_ids.size() <<
" ";
170 utility::io::write_vector(
tr.Debug, strand_ids );
171 tr.Debug << std::endl;
175 while ( new_sheet_sizes.size() < num_sheets && trials-- > 0 ) {
176 for (
Size i = 1; i<=strand_ids.size() && new_sheet_sizes.size()<num_sheets; i++ ) {
179 new_sheet_sizes.push_back( nr );
184 tr.Debug <<
"chosen sheet parameters: ";
185 utility::io::write_vector(
tr.Debug, new_sheet_sizes );
186 tr.Debug << std::endl;
188 return new_sheet_sizes;