Changeset 1083 for library

Show
Ignore:
Timestamp:
06/11/10 14:18:09 (14 years ago)
Author:
smidl
Message:

Mergers + fixes

Location:
library/bdm
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/mex/mex_pdf.h

    r1064 r1083  
     1using namespace bdm; 
     2 
    13class mexEpdf: public epdf { 
    24protected: 
  • library/bdm/stat/exp_family.cpp

    r1079 r1083  
    415415 
    416416 
    417 double egamma::evallog ( const vec &val ) const { 
     417double egamma::evallog_nn ( const vec &val ) const { 
    418418    double res = 0.0; //the rest will be added 
    419419    int i; 
     
    424424        res += ( alpha ( i ) - 1 ) * std::log ( val ( i ) ) - beta ( i ) * val ( i ); 
    425425    } 
    426     double tmp = res - lognc();; 
    427     bdm_assert_debug ( std::isfinite ( tmp ), "Infinite value" ); 
    428     return tmp; 
     426    return res; 
    429427} 
    430428 
  • library/bdm/stat/exp_family.h

    r1079 r1083  
    893893 
    894894    vec sample() const; 
    895     double evallog ( const vec &val ) const; 
    896     double lognc () const; 
     895        double evallog_nn ( const vec &val ) const; 
     896        double lognc () const; 
    897897    //! Returns pointer to internal alpha. Potentially dengerous: use with care! 
    898898    vec& _alpha() { 
  • library/bdm/stat/merger.h

    r1079 r1083  
    3838                //!  
    3939                //! check if all epdfs are on the same support 
    40                 void validate_sources() { 
    41                         int n=sources.length(); 
     40                virtual void set_sources(const Array<shared_ptr<pdf> > &A) { 
     41                        int n=A.length(); 
    4242                         
    4343                        bdm_assert(n>0,"merger has no sources to merge"); 
     
    4848                         
    4949                        // check compatibility of sources -- no types are needed 
    50                         int dim0 = sources(0)->dimension(); 
     50                        int dim0 = A(0)->dimension(); 
    5151                        for (int i=0; i<n; i++){ 
     52                                const epdf *si=dynamic_cast<const epdf*>(A(i).get()); 
     53                                if (si){ 
     54                                        sources(i) = dynamic_cast<epdf*>(A(i)->_copy()); 
     55                                } 
    5256                                bdm_assert(sources(i)->dimension()==dim0, "Merger: Incompatible dimensions of sources"); 
    5357                                if (sources(i)->isnamed()){