Show
Ignore:
Timestamp:
08/13/09 15:58:32 (15 years ago)
Author:
vbarta
Message:

using shared_ptr in UI (optionally so far; loading & saving Array<T *> still works but should be phased out); testsuite run leaks down from 8822 to 480 bytes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/stat/exp_family.h

    r510 r527  
    236236                        UI::get (V, set, "V", UI::compulsory); 
    237237                        set_parameters (dimx, V, nu); 
    238                         RV* rv = UI::build<RV> (set, "rv", UI::compulsory); 
     238                        shared_ptr<RV> rv = UI::build<RV> (set, "rv", UI::compulsory); 
    239239                        set_rv (*rv); 
    240                         delete rv; 
    241240                } 
    242241                //!@} 
     
    574573class mgnorm : public mpdf_internal< enorm< sq_T > > 
    575574{ 
    576         protected: 
     575        private: 
    577576//                      vec &mu; WHY NOT? 
    578                 fnc* g; 
     577                shared_ptr<fnc> g; 
     578 
    579579        public: 
    580580                //!default constructor 
    581581                mgnorm() : mpdf_internal<enorm<sq_T> >() { } 
    582582                //!set mean function 
    583                 inline void set_parameters (fnc* g0, const sq_T &R0); 
     583                inline void set_parameters (const shared_ptr<fnc> &g0, const sq_T &R0); 
    584584                inline void condition (const vec &cond); 
    585585 
     
    613613 
    614614                void from_setting (const Setting &set) { 
    615                         fnc* g = UI::build<fnc> (set, "g", UI::compulsory); 
     615                        shared_ptr<fnc> g = UI::build<fnc> (set, "g", UI::compulsory); 
    616616 
    617617                        mat R; 
     
    13051305/////// 
    13061306template<class sq_T> 
    1307 void mgnorm<sq_T >::set_parameters (fnc* g0, const sq_T &R0) {g = g0; this->iepdf.set_parameters (zeros (g->dimension()), R0);} 
     1307void mgnorm<sq_T >::set_parameters (const shared_ptr<fnc> &g0, const sq_T &R0) { 
     1308        g = g0; 
     1309        this->iepdf.set_parameters (zeros (g->dimension()), R0); 
     1310} 
     1311 
    13081312template<class sq_T> 
    13091313void mgnorm<sq_T >::condition (const vec &cond) {this->iepdf._mu() = g->eval (cond);};