Show
Ignore:
Timestamp:
06/19/09 10:17:25 (15 years ago)
Author:
mido
Message:

possibly broken?

Location:
library/bdm
Files:
2 moved

Legend:

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

    r361 r384  
    1111*/ 
    1212 
    13 #ifndef MX_H 
    14 #define MX_H 
     13#ifndef STAT_MIXTURES_H 
     14#define STAT_MIXTURES_H 
    1515 
    1616#define LOG2  0.69314718055995   
    1717 
    18 #include "libEF.h" 
    19 //#include <std> 
     18#include "exp_family.h" 
    2019 
    2120namespace bdm { 
     
    234233        /*!\brief Constructor from list of mFacs, 
    235234        */ 
    236         mprod ( Array<mpdf*> mFacs ) : compositepdf ( mFacs ), mpdf (), epdfs ( n ), dls ( n ) { 
     235        mprod (){}; 
     236        mprod (Array<mpdf*> mFacs ){set_elements( mFacs );}; 
     237        void set_elements(Array<mpdf*> mFacs ) { 
     238                 
     239                set_elements(mFacs); 
     240                 
    237241                ep=&dummy; 
    238242                RV rv=getrv ( true ); 
     
    240244                setrvc ( ep->_rv(),rvc ); 
    241245                // rv and rvc established = > we can link them with mpdfs 
    242                 for ( int i = 0;i < n;i++ ) { 
     246                for ( int i = 0;i < mpdfs.length(); i++ ) { 
    243247                        dls ( i ) = new datalink_m2m; 
    244248                        dls(i)->set_connection( mpdfs ( i )->_rv(), mpdfs ( i )->_rvc(), _rv(), _rvc() ); 
    245249                } 
    246250 
    247                 for ( int i=0;i<n;i++ ) { 
     251                for ( int i=0; i<mpdfs.length(); i++ ) { 
    248252                        epdfs ( i ) =& ( mpdfs ( i )->_epdf() ); 
    249253                } 
     
    253257                int i; 
    254258                double res = 0.0; 
    255                 for ( i = n - 1;i >= 0;i-- ) { 
     259                for ( i = mpdfs.length() - 1;i >= 0;i-- ) { 
    256260                        /*                      if ( mpdfs(i)->_rvc().count() >0) { 
    257261                                                        mpdfs ( i )->condition ( dls ( i )->get_cond ( val,cond ) ); 
     
    272276                vec smpi; 
    273277                // Hard assumption here!!! We are going backwards, to assure that samples that are needed from smp are already generated! 
    274                 for ( int i = ( n - 1 );i >= 0;i-- ) { 
     278                for ( int i = ( mpdfs.length() - 1 );i >= 0;i-- ) { 
    275279                        if ( mpdfs ( i )->dimensionc() ) { 
    276280                                mpdfs ( i )->condition ( dls ( i )->get_cond ( smp ,cond ) ); // smp is val here!!