Small changes
authorJoris Mooij <jorism@osun.tuebingen.mpg.de>
Wed, 24 Sep 2008 12:54:06 +0000 (14:54 +0200)
committerJoris Mooij <jorism@osun.tuebingen.mpg.de>
Wed, 24 Sep 2008 12:54:06 +0000 (14:54 +0200)
STATUS
include/dai/exceptions.h
include/dai/properties.h
include/dai/weightedgraph.h
src/exceptions.cpp
src/weightedgraph.cpp

diff --git a/STATUS b/STATUS
index 96a993c..5b19fe5 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -35,6 +35,7 @@ util.h
 util.cpp
 bipgraph.h
 weightedgraph.h
+weightedgraph.cpp
 clustergraph.h
 clustergraph.cpp
 varset.h
@@ -51,15 +52,14 @@ exact.h
 exact.cpp
 alldai.h
 alldai.cpp
+properties.h
+properties.cpp
 
 FILES IN SVN HEAD THAT ARE STILL RELEVANT:
-weightedgraph.cpp
 ChangeLog
 README
 TODO
 prob.h
-properties.h
-properties.cpp
 factor.h
 factor.cpp
 factorgraph.h
index 2a5e8f4..9eddcaf 100644 (file)
@@ -52,6 +52,7 @@ namespace dai {
               NOT_ALL_PROPERTIES_SPECIFIED,
               MULTIPLE_UNDO,
               FACTORGRAPH_NOT_CONNECTED,
+              IMPOSSIBLE_TYPECAST,
               INTERNAL_ERROR,
               NUM_ERRORS};  // NUM_ERRORS should be the last entry
 
index 1399ca9..2f48cfd 100644 (file)
@@ -29,6 +29,7 @@
 #include <map>
 #include <cassert>
 #include <typeinfo>
+#include <dai/exceptions.h>
 
 
 namespace dai {
@@ -51,7 +52,7 @@ class PropertySet : public std::map<PropertyKey, PropertyValue> {
             PropertySet::const_iterator x = find(key); 
 #ifdef DAI_DEBUG            
             if( x == this->end() )
-                std::cerr << "Get cannot find property " << key << std::endl;
+                std::cerr << "PropertySet::Get cannot find property " << key << std::endl;
 #endif
             assert( x != this->end() ); 
             return x->second; 
@@ -100,8 +101,10 @@ class PropertySet : public std::map<PropertyKey, PropertyValue> {
                 return result;
             } else if( val.type() == typeid(ValueType) ) {
                 return boost::any_cast<ValueType>(val);
-            } else
-                assert( 0 == 1 );
+            } else {
+                DAI_THROW(IMPOSSIBLE_TYPECAST);
+                return ValueType();
+            }
         }
 
         /// Shorthand for (temporarily) adding properties, e.g. PropertySet p()("method","BP")("verbose",1)("tol",1e-9)
index 9423059..231a37d 100644 (file)
@@ -93,7 +93,6 @@ class UEdge {
 
 typedef std::vector<UEdge>  UEdgeVec;
 typedef std::vector<DEdge>  DEdgeVec;
-std::ostream & operator << (std::ostream & os, const DEdgeVec & rt);
 template<class T> class WeightedGraph : public std::map<UEdge, T> {};
 typedef std::set<UEdge>     Graph;
 
index 6f8f787..65b6464 100644 (file)
@@ -37,6 +37,7 @@ namespace dai {
         "Not all mandatory Properties specified",
         "Multiple undo levels unsupported",
         "FactorGraph is not connected",
+        "Impossible typecast",
         "Internal error"
     }; 
 
index b88219a..2cfdf08 100644 (file)
@@ -31,15 +31,6 @@ namespace dai {
 using namespace std;
 
 
-ostream & operator << (ostream & os, const DEdgeVec & rt) {
-    os << "[";
-    for( size_t n = 0; n < rt.size(); n++ )
-        os << rt[n] << ", ";
-    os << "]";
-    return os;
-}
-
-
 /// Calculate rooted tree from a tree T and a root
 DEdgeVec GrowRootedTree( const Graph & T, size_t Root ) {
     DEdgeVec result;