// Utilization initialization algorithm. Currently, initialization // to a real number is implemented only, but other algorithms // can be added here. *operation* void initialize_util(Ring* ring) *traverse* *from* InitAlg *to* {InitConstant} // other init-algorithms can be added here // as subclasses of InitAlg *wrapper* InitConstant (@ ring->init_util_const(get_constant()); @) *operation* void init_util_const(DemReal* constant) *traverse* *from* Ring *to* VirtualNeighbor *wrapper* VirtualAdjacency (@ this->get_next_util()->set_val(*constant); this->get_next_past_util()->set_val(*constant); @) *wrapper* VirtualNeighbor (@ this->get_util()->set_val(*constant); this->get_past_util()->set_val(*constant); @)