Line data Source code
1 : /** 2 : Bojan Nikolic <bojan@bnikolic.co.uk> 3 : Initial version 2003 4 : 5 : This file is part of BNMin1 and is licensed under GNU General 6 : Public License version 2 7 : 8 : \file monitor.hxx 9 : Renamed to monitor.h 2023 10 : 11 : A base class for monitoring the progress of minimisation 12 : */ 13 : #ifndef _BNMIN1__MONITOR_HXX__ 14 : #define _BNMIN1__MONITOR_HXX__ 15 : 16 : namespace Minim { 17 : 18 : 19 : class Minimiser; 20 : 21 : /** \brief Defines an interface from monitoring the progress of a 22 : minimisation 23 : */ 24 : class Monitor { 25 : 26 : public: 27 : 28 : // --------- Construction / Destruction --------- 29 : 30 0 : virtual ~Monitor() {}; 31 : 32 : // --------- Public Interface ------------------- 33 : 34 : 35 : virtual void Iter ( Minimiser * m) = 0; 36 : 37 : 38 : }; 39 : 40 : /** 41 : \brief Monitors the chi-square value */ 42 : class ChiSqMonitor: 43 : public Monitor 44 : { 45 : 46 : public: 47 : 48 : virtual void Iter ( Minimiser * m); 49 : 50 : 51 : }; 52 : 53 : /** \brief Monitors the value of the parameters */ 54 : class ParsMonitor: 55 : public Monitor 56 : { 57 : 58 : public: 59 : 60 : virtual void Iter ( Minimiser * m); 61 : 62 : }; 63 : 64 : 65 : 66 : } 67 : 68 : 69 : #endif