00001 // This file is part of the imaging2 class library. 00002 // 00003 // University of Innsbruck, Infmath Imaging, 2009. 00004 // http://infmath.uibk.ac.at 00005 // 00006 // All rights reserved. 00007 00008 00009 #ifndef MINIMIZE_STEEPESTDESCENT_H 00010 #define MINIMIZE_STEEPESTDESCENT_H 00011 00012 #include <minimize/DifferentiableEnergyInterface.hpp> 00013 #include <minimize/MinimizerInterface.hpp> 00014 00015 namespace imaging 00016 { 00017 00027 class SteepestDescent : public MinimizerInterface 00028 { 00029 float_t _min_gradient_norm; 00030 float_t _step_size; 00031 bool _terminated; 00032 00033 DifferentiableEnergyInterface & _energy; 00034 00035 public: 00037 SteepestDescent(DifferentiableEnergyInterface & energy, float_t min_gradient_norm, float_t step_size); 00038 00039 bool minimize(size_t n_max_steps, size_t & n_actual_steps); 00040 }; 00041 00042 } 00043 00044 #endif