22 #include <utility/vector1.hh>
23 #include <boost/pool/pool.hpp>
29 using namespace graph;
42 std::cout <<
"EnergyNode::print() deferring to parent::print()" << std::endl;
85 energies_not_yet_computed_( true ),
87 array_( get_energy_owner()->array_pool().new_array() )
95 parent( owner, example_edge.get_first_node_ind(), example_edge.get_second_node_ind() ),
96 energies_not_yet_computed_( example_edge.energies_not_yet_computed_ ),
98 dsqr_( example_edge.dsqr_ ),
99 array_( get_energy_owner()->array_pool().new_array() )
176 return static_cast< EnergyEdge const *
> ( edge );
187 energy_edge_pool_( new boost::unordered_object_pool<
EnergyEdge > ( 256 ) ),
188 energy_array_pool_( 256 ),
198 energy_edge_pool_( new boost::unordered_object_pool<
EnergyEdge > ( 256 ) ),
199 energy_array_pool_( 256 ),
212 energy_edge_pool_( new boost::unordered_object_pool<
EnergyEdge > ( 256 ) ),
213 energy_array_pool_( 256 ),
233 (
static_cast< EnergyEdge *
> (newedge))->square_distance( dsq );
267 for (
Size ii = 1; ii < active.size(); ++ii ) {
268 assert( active[ ii ] < active[ ii + 1 ] );
270 bool clear_edges =
false;
273 bool const resize_array_pool = clear_edges;
277 if ( ! clear_edges ) {
278 for (
Size ii = 1; ii <= active.size(); ++ii ) {
291 int count_active( 0 );
298 if ( resize_array_pool ) {
302 return ! clear_edges;
307 assert( dynamic_cast< EnergyEdge* > (edge) );
350 static_cast< EnergyEdge const & > (*example_edge)