Restored TProb<T>::makeZero, TProb<T>::makePositive, TFactor<T>::makeZero, TFactor...
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Mon, 19 Oct 2009 11:47:50 +0000 (13:47 +0200)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Mon, 19 Oct 2009 11:47:50 +0000 (13:47 +0200)
ChangeLog
OBSOLETE [new file with mode: 0644]
TODO
include/dai/factor.h
include/dai/prob.h

index 70e8455..e28f7e0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,4 @@
 * Added TProb<T>::divided_by(const TProb<T>&) const
-* Removed TProb<T>::makeZero(double), TProb<T>::makePositive(double),
-  TFactor<T>::makeZero(double), TFactor<T>::makePositive(double)
 * Fixed bug in BipartiteGraph::eraseEdge()
 * Added python and octave ports for examples/example_sprinkler.cpp
 * [Patrick Pletscher] Added SWIG wrapper code for python and octave
diff --git a/OBSOLETE b/OBSOLETE
new file mode 100644 (file)
index 0000000..d4f22b8
--- /dev/null
+++ b/OBSOLETE
@@ -0,0 +1,22 @@
+The following functions are obsolete and will be removed in the next major release (0.3.0):
+
+TFactor<T>& TFactor<T>::makeZero( T epsilon );
+TFactor<T>& TFactor<T>::makePositive( T epsilon );
+TProb<T>& TProb<T>::makePositive( T epsilon );
+TProb<T>& TProb<T>::makeZero( T epsilon );
+virtual void InfAlg::clamp( const Var &v, size_t x, bool backup = false ) = 0;
+void DAIAlg<GRM>::clamp( const Var &v, size_t x, bool backup = false );
+virtual void FactorGraph::clamp( const Var &v, size_t x, bool backup = false );
+size_t FactorGraph::VV2E(size_t n1, size_t n2) const;
+const Edge& FactorGraph::edge(size_t e) const;
+void FactorGraph::indexEdges();
+size_t FactorGraph::nr_edges() const;
+const std::vector<Edge>& FactorGraph::edges() const;
+bool BipartiteGraph::_edge_indexed;
+std::vector<Edge> BipartiteGraph::_edges;
+hash_map<Edge,size_t> BipartiteGraph::_vv2e;
+void BipartiteGraph::indexEdges();
+const Edge& BipartiteGraph::edge(size_t e) const;
+const std::vector<Edge>& BipartiteGraph::edges() const;
+size_t BipartiteGraph::VV2E(size_t n1, size_t n2) const;
+size_t BipartiteGraph::nr_edges() const;
diff --git a/TODO b/TODO
index 2e66d9c..cdb7ee1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,27 +1,29 @@
+To do for the next release (0.2.3):
+
 Improve documentation:
 
-index.h
-factor.h
-weightedgraph.h
-factorgraph.h
-clustergraph.h
-regiongraph.h
-properties.h
-util.h
-daialg.h
-alldai.h
-exactinf.h
-mf.h
-bp.h
-jtree.h
-hak.h
-treeep.h
-lc.h
-mr.h
-gibbs.h
-bp_dual.h
-bbp.h
-cbp.h
-evidence.h
-emalg.h
-doc.h
+       index.h
+       factor.h
+       weightedgraph.h
+       factorgraph.h
+       clustergraph.h
+       regiongraph.h
+       properties.h
+       util.h
+       daialg.h
+       alldai.h
+       exactinf.h
+       mf.h
+       bp.h
+       jtree.h
+       hak.h
+       treeep.h
+       lc.h
+       mr.h
+       gibbs.h
+       bp_dual.h
+       bbp.h
+       cbp.h
+       evidence.h
+       emalg.h
+       doc.h
index cdb324c..7fe40e9 100644 (file)
@@ -283,6 +283,24 @@ template <typename T> class TFactor {
             return pointwiseOp(*this,f,std::minus<T>());
         }
 
+        // OBSOLETE
+        /// Sets all values that are smaller than epsilon to 0
+        /** \note Obsolete, to be removed soon
+         */
+        TFactor<T>& makeZero( T epsilon ) {
+            _p.makeZero( epsilon );
+            return *this;
+        }
+
+        // OBSOLETE
+        /// Sets all values that are smaller than epsilon to epsilon
+        /** \note Obsolete, to be removed soon
+         */
+        TFactor<T>& makePositive( T epsilon ) {
+            _p.makePositive( epsilon );
+            return *this;
+        }
+
         /// Returns pointwise inverse of *this.
         /** If zero == true, uses 1 / 0 == 0; otherwise 1 / 0 == Inf.
          */
index b5ad484..04b566b 100644 (file)
@@ -370,6 +370,28 @@ template <typename T> class TProb {
             return *this;
         }
 
+        // OBSOLETE
+        /// Sets entries that are smaller (in absolute value) than \a epsilon to 0
+        /** \note Obsolete, to be removed soon
+         */
+        TProb<T>& makeZero( T epsilon ) {
+            for( size_t i = 0; i < size(); i++ )
+                if( (_p[i] < epsilon) && (_p[i] > -epsilon) )
+                    _p[i] = 0;
+            return *this;
+        }
+        
+        // OBSOLETE
+        /// Sets entries that are smaller than \a epsilon to \a epsilon
+        /** \note Obsolete, to be removed soon
+         */
+        TProb<T>& makePositive( T epsilon ) {
+            for( size_t i = 0; i < size(); i++ )
+                if( (0 < _p[i]) && (_p[i] < epsilon) )
+                    _p[i] = epsilon;
+            return *this;
+        }
+
         /// Adds scalar \a x to each entry
         TProb<T>& operator+= (T x) {
             std::transform( _p.begin(), _p.end(), _p.begin(), std::bind2nd( std::plus<T>(), x ) );