Some small bug fixes
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Mon, 16 Nov 2009 15:47:49 +0000 (16:47 +0100)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Mon, 16 Nov 2009 15:47:49 +0000 (16:47 +0100)
Makefile
Makefile.WINDOWS
include/dai/util.h
src/emalg.cpp
src/matlab/dai.cpp
src/matlab/dai_potstrength.cpp
src/util.cpp
tests/testdai.cpp
tests/testfast.out

index 2d3de41..1a715db 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -230,11 +230,11 @@ tests/testbbp$(EE) : tests/testbbp.cpp $(HEADERS) $(LIB)/libdai$(LE)
 matlab/dai$(ME) : $(SRC)/matlab/dai.cpp $(HEADERS) matlab$(OE) $(LIB)/libdai$(LE)
        $(MEX) -o matlab/dai $(SRC)/matlab/dai.cpp matlab$(OE) $(LIB)/libdai$(LE)
 
-matlab/dai_readfg$(ME) : $(SRC)/matlab/dai_readfg.cpp $(HEADERS) factorgraph$(OE) matlab$(OE) exceptions$(OE)
-       $(MEX) -o matlab/dai_readfg $(SRC)/matlab/dai_readfg.cpp factorgraph$(OE) matlab$(OE) exceptions$(OE)
+matlab/dai_readfg$(ME) : $(SRC)/matlab/dai_readfg.cpp $(HEADERS) factorgraph$(OE) matlab$(OE) exceptions$(OE) bipgraph$(OE)
+       $(MEX) -o matlab/dai_readfg $(SRC)/matlab/dai_readfg.cpp factorgraph$(OE) matlab$(OE) exceptions$(OE) bipgraph$(OE)
 
-matlab/dai_writefg$(ME) : $(SRC)/matlab/dai_writefg.cpp $(HEADERS) factorgraph$(OE) matlab$(OE) exceptions$(OE)
-       $(MEX) -o matlab/dai_writefg $(SRC)/matlab/dai_writefg.cpp factorgraph$(OE) matlab$(OE) exceptions$(OE)
+matlab/dai_writefg$(ME) : $(SRC)/matlab/dai_writefg.cpp $(HEADERS) factorgraph$(OE) matlab$(OE) exceptions$(OE) bipgraph$(OE)
+       $(MEX) -o matlab/dai_writefg $(SRC)/matlab/dai_writefg.cpp factorgraph$(OE) matlab$(OE) exceptions$(OE) bipgraph$(OE)
 
 matlab/dai_potstrength$(ME) : $(SRC)/matlab/dai_potstrength.cpp $(HEADERS) matlab$(OE) exceptions$(OE)
        $(MEX) -o matlab/dai_potstrength $(SRC)/matlab/dai_potstrength.cpp matlab$(OE) exceptions$(OE)
@@ -318,5 +318,24 @@ clean :
 else
 .PHONY : clean
 clean :
-       -del *$(OE) *.ilk *.pdb *$(EE) matlab\*$(ME) examples\*$(EE) examples\*.ilk examples\*.pdb tests\testdai$(EE) tests\testem\testem$(EE) tests\*.pdb tests\*.ilk utils\*$(EE) utils\*.pdb utils\*.ilk $(LIB)\libdai$(LE)
+       -del *$(OE)
+       -del *.ilk
+       -del *.pdb
+       -del *$(EE)
+       -del matlab\*$(ME)
+       -del examples\*$(EE)
+       -del examples\*.ilk
+       -del examples\*.pdb
+       -del tests\testdai$(EE)
+       -del tests\testbbp$(EE)
+       -del tests\testem\testem$(EE)
+       -del tests\*.pdb
+       -del tests\*.ilk
+       -del tests\testem\*.pdb
+       -del tests\testem\*.ilk
+       -del utils\*$(EE)
+       -del utils\*.pdb
+       -del utils\*.ilk
+       -del $(LIB)\libdai$(LE)
+       -rmdir lib
 endif
index 5a2fa4e..6f86439 100644 (file)
@@ -56,7 +56,7 @@ CC=cl
 # Output filename option of the compiler
 CCO=/Fe
 # Flags for the C++ compiler
-CCFLAGS=/EHsc -DWINDOWS
+CCFLAGS=/EHsc -DWINDOWS -DNOMINMAX
 # Flags to add in debugging mode (if DEBUG=true)
 CCDEBUGFLAGS=/Ox /Zi -DDAI_DEBUG
 # Flags to add in non-debugging mode (if DEBUG=false)
index 979973b..a824e82 100644 (file)
@@ -95,7 +95,7 @@ inline Real exp( Real x ) {
 }
 
 /// Returns maximum value of a std::vector<Real>
-Real max( std::vector<Real> v );
+Real max( const std::vector<Real> &v );
 
 
 #ifdef WINDOWS
index cc03952..3e50ec2 100644 (file)
@@ -64,7 +64,7 @@ Prob CondProbEstimation::estimate() {
     for( size_t parent = 0; parent < _stats.size(); parent += _target_dim ) {
         // calculate norm
         size_t top = parent + _target_dim;
-        Real norm = std::accumulate( &(_stats[parent]), &(_stats[top]), 0.0 );
+        Real norm = std::accumulate( &(_stats[parent]), &(_stats[parent]) + _target_dim, 0.0 );
         if( norm != 0.0 )
             norm = 1.0 / norm;
         // normalize
index 7c28e42..3402854 100644 (file)
@@ -14,6 +14,7 @@
 #include "mex.h"
 #include <dai/alldai.h>
 #include <dai/bp.h>
+#include <dai/jtree.h>
 
 
 using namespace std;
index 0a62d62..6894805 100644 (file)
@@ -34,7 +34,7 @@ using namespace dai;
 
 
 void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray*prhs[] ) {
-    long ilabel, jlabel;
+    size_t ilabel, jlabel;
 
     // Check for proper number of arguments
     if ((nrhs != NR_IN) || (nlhs != NR_OUT)) {
@@ -49,8 +49,8 @@ void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray*prhs[] ) {
 
     // Get input parameters
     Factor psi = mx2Factor(PSI_IN);
-    ilabel = (long)*mxGetPr(I_IN);
-    jlabel = (long)*mxGetPr(J_IN);
+    ilabel = (size_t)*mxGetPr(I_IN);
+    jlabel = (size_t)*mxGetPr(J_IN);
 
     // Find variable in psi with label ilabel
     Var i;
index e72b0b3..54eae31 100644 (file)
@@ -48,7 +48,7 @@ double log1p( double x ) {
 namespace dai {
 
 
-Real max( std::vector<Real> v ) {
+Real max( const std::vector<Real> &v ) {
     if( v.size() == 0 )
         return INFINITY;
     else
index 9b61d57..1f2b59f 100644 (file)
@@ -354,6 +354,8 @@ int main( int argc, char *argv[] ) {
                         md = me;
                     if( isnan( ae ) )
                         md = ae;
+                    if( md == INFINITY )
+                        md = 1.0;
                     cout << md << "\t";
                 } else
                     cout << "N/A    \t";
index ff968e5..5a7ba58 100644 (file)
@@ -612,7 +612,7 @@ LCBP_FULLCAVin_SEQRND                       1.225e-03       5.589e-04       N/A             1.000e-09
 # ({x13}, (5.358e-01, 4.642e-01))
 # ({x14}, (6.285e-01, 3.715e-01))
 # ({x15}, (1.359e-01, 8.641e-01))
-LCBP_FULLCAV_NONE                              1.318e-02       2.644e-03       N/A             inf     
+LCBP_FULLCAV_NONE                              1.318e-02       2.644e-03       N/A             1.000e+00       
 # ({x0}, (3.859e-01, 6.141e-01))
 # ({x1}, (5.569e-01, 4.431e-01))
 # ({x2}, (4.719e-01, 5.281e-01))
@@ -629,7 +629,7 @@ LCBP_FULLCAV_NONE                           1.318e-02       2.644e-03       N/A             inf
 # ({x13}, (5.350e-01, 4.650e-01))
 # ({x14}, (6.290e-01, 3.710e-01))
 # ({x15}, (1.364e-01, 8.636e-01))
-LCBP_FULLCAVin_NONE                            1.318e-02       2.644e-03       N/A             inf     
+LCBP_FULLCAVin_NONE                            1.318e-02       2.644e-03       N/A             1.000e+00       
 # ({x0}, (3.859e-01, 6.141e-01))
 # ({x1}, (5.569e-01, 4.431e-01))
 # ({x2}, (4.719e-01, 5.281e-01))
@@ -714,7 +714,7 @@ LCBP_PAIRCAVin_SEQRND                       1.564e-02       5.284e-03       N/A             1.000e-09
 # ({x13}, (5.282e-01, 4.718e-01))
 # ({x14}, (6.240e-01, 3.760e-01))
 # ({x15}, (1.409e-01, 8.591e-01))
-LCBP_PAIRCAV_NONE                              1.869e-01       6.816e-02       N/A             inf     
+LCBP_PAIRCAV_NONE                              1.869e-01       6.816e-02       N/A             1.000e+00       
 # ({x0}, (3.558e-01, 6.442e-01))
 # ({x1}, (5.320e-01, 4.680e-01))
 # ({x2}, (4.581e-01, 5.419e-01))
@@ -731,7 +731,7 @@ LCBP_PAIRCAV_NONE                           1.869e-01       6.816e-02       N/A             inf
 # ({x13}, (6.323e-01, 3.677e-01))
 # ({x14}, (8.161e-01, 1.839e-01))
 # ({x15}, (1.676e-01, 8.324e-01))
-LCBP_PAIRCAVin_NONE                            1.869e-01       6.816e-02       N/A             inf     
+LCBP_PAIRCAVin_NONE                            1.869e-01       6.816e-02       N/A             1.000e+00       
 # ({x0}, (3.558e-01, 6.442e-01))
 # ({x1}, (5.320e-01, 4.680e-01))
 # ({x2}, (4.581e-01, 5.419e-01))
@@ -816,7 +816,7 @@ LCBP_PAIR2CAVin_SEQRND                      1.535e-02       4.445e-03       N/A             1.000e-09
 # ({x13}, (5.280e-01, 4.720e-01))
 # ({x14}, (6.250e-01, 3.750e-01))
 # ({x15}, (1.411e-01, 8.589e-01))
-LCBP_PAIR2CAV_NONE                             1.894e-01       7.196e-02       N/A             inf     
+LCBP_PAIR2CAV_NONE                             1.894e-01       7.196e-02       N/A             1.000e+00       
 # ({x0}, (3.525e-01, 6.475e-01))
 # ({x1}, (5.395e-01, 4.605e-01))
 # ({x2}, (4.567e-01, 5.433e-01))
@@ -833,7 +833,7 @@ LCBP_PAIR2CAV_NONE                          1.894e-01       7.196e-02       N/A             inf
 # ({x13}, (6.444e-01, 3.556e-01))
 # ({x14}, (8.185e-01, 1.815e-01))
 # ({x15}, (1.841e-01, 8.159e-01))
-LCBP_PAIR2CAVin_NONE                           1.894e-01       7.196e-02       N/A             inf     
+LCBP_PAIR2CAVin_NONE                           1.894e-01       7.196e-02       N/A             1.000e+00       
 # ({x0}, (3.525e-01, 6.475e-01))
 # ({x1}, (5.395e-01, 4.605e-01))
 # ({x2}, (4.567e-01, 5.433e-01))