Changeset 1083
- Timestamp:
- 06/11/10 14:18:09 (15 years ago)
- Files:
-
- 8 modified
Legend:
- Unmodified
- Added
- Removed
-
applications/bdmtoolbox/doc/from_bdm/make_all.sh
r1054 r1083 7 7 ./process_class.sh bdm::logger 8 8 ./process_class.sh bdm::Controller 9 ./process_class.sh bdm::MergerBase 9 10 10 11 cp -u ../../../../library/doc/html/*.png ../html/bdm_doc -
applications/bdmtoolbox/mex/epdf_1dplot.m
r803 r1083 1 function epdf_1dplot(pdf,xlims, points)1 function h=epdf_1dplot(pdf,xlims, points) 2 2 % function evaluates given pdf on support 3 3 % xlims = [x_begin, x_end] --or-- empty … … 17 17 x = xlims(1):steps/(points-1):xlims(2); 18 18 v = epdf_evallog_mat(pdf,x); 19 plot(x,exp(v));19 h=plot(x,exp(v)); -
applications/bdmtoolbox/mex/epdf_evallog_mat.cpp
r943 r1083 18 18 if ( n_input<1 ) mexErrMsgTxt ( "Usage:\n" 19 19 "mat=pdf_evallog_mat(pdf_struct, nos)\n" 20 " pdf_struct = struct('class','pdf_offspring',...); % description of pdf\n"21 " points = pdf_dimension x npoints matrix; 20 " pdf_struct = struct('class','pdf_offspring',...); % description of pdf\n" 21 " points = pdf_dimension x npoints matrix; % points in which to evaluate\n" 22 22 "output:\n" 23 23 " vector of log-likelihoods" ); -
applications/bdmtoolbox/mex/merger.cpp
r1079 r1083 1 1 #include <stat/merger.h> 2 3 using namespace bdm; 2 4 3 5 #ifdef MEX 4 6 #include <itpp/itmex.h> 5 7 #include <mex/mex_logger.h> 6 #include <mex/mex_ parser.h>8 #include <mex/mex_merger.h> 7 9 #endif 8 10 … … 14 16 \code 15 17 Sources = (... any epdf or mpdf ...); 16 Support = {grid=([low1d,high1d],[low2d,high2d],...); 17 nbins=[bins1d,bins2d,... ]}; 18 Support = rectangular_support or discrete_support; 18 19 // OR 19 20 Support = {pdf={class='epdf',...}; … … 32 33 if ( n_input != 3 ) mexErrMsgTxt ( "Usage:\n" 33 34 "result=merger(sources, support, merger)\n" 34 " sources= { struct('class','epdf'),... }; % cell of pdfs (epdfs or mpdfs) to be merged,\n" 35 " support= struct(\n" 36 " grid = {[dim1_start,dim1_end], [dim2_start, dim2_end]...} %support boundary \n" 37 " nbins = [bins_in_dim1, bins_in_dim2,...] %fixed \n" 38 " === OR ==\n" 39 " pdf = struct('class','epdf'); % pdf to draw samples from\n" 40 " nsamples= 100; % number of samples\n" 41 " );\n" 42 " If all elements are present, (grid,nbins) is used;\n" 43 " merger = struct('class','merger_*'); % object to be used for merging,\n\n" 44 "see documentation of classes epdf, mpdf, merger_base and their offsprings in BDM." ); 35 " sources= { bdm::epdf,... }; % cell of pdfs (epdfs or mpdfs) to be merged,\n" 36 " support= bdm::rectangular_support; % points onwhich to merge \n" 37 " - or - bdm::discrete_support\n" 38 " merger = bdm::MergerDiscrete; % object to be used for merging,\n\n" ); 45 39 RV::clear_all(); 46 40 // LOAD CONFIG -
library/bdm/mex/mex_pdf.h
r1064 r1083 1 using namespace bdm; 2 1 3 class mexEpdf: public epdf { 2 4 protected: -
library/bdm/stat/exp_family.cpp
r1079 r1083 415 415 416 416 417 double egamma::evallog ( const vec &val ) const {417 double egamma::evallog_nn ( const vec &val ) const { 418 418 double res = 0.0; //the rest will be added 419 419 int i; … … 424 424 res += ( alpha ( i ) - 1 ) * std::log ( val ( i ) ) - beta ( i ) * val ( i ); 425 425 } 426 double tmp = res - lognc();; 427 bdm_assert_debug ( std::isfinite ( tmp ), "Infinite value" ); 428 return tmp; 426 return res; 429 427 } 430 428 -
library/bdm/stat/exp_family.h
r1079 r1083 893 893 894 894 vec sample() const; 895 double evallog( const vec &val ) const;896 895 double evallog_nn ( const vec &val ) const; 896 double lognc () const; 897 897 //! Returns pointer to internal alpha. Potentially dengerous: use with care! 898 898 vec& _alpha() { -
library/bdm/stat/merger.h
r1079 r1083 38 38 //! 39 39 //! check if all epdfs are on the same support 40 v oid validate_sources() {41 int n= sources.length();40 virtual void set_sources(const Array<shared_ptr<pdf> > &A) { 41 int n=A.length(); 42 42 43 43 bdm_assert(n>0,"merger has no sources to merge"); … … 48 48 49 49 // check compatibility of sources -- no types are needed 50 int dim0 = sources(0)->dimension();50 int dim0 = A(0)->dimension(); 51 51 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 } 52 56 bdm_assert(sources(i)->dimension()==dim0, "Merger: Incompatible dimensions of sources"); 53 57 if (sources(i)->isnamed()){