Changed license from GPL v2+ to FreeBSD (aka BSD 2-clause) license
[libdai.git] / include / dai / weightedgraph.h
index fd58358..edb1422 100644 (file)
@@ -1,17 +1,14 @@
 /*  This file is part of libDAI - http://www.libdai.org/
  *
- *  libDAI is licensed under the terms of the GNU General Public License version
- *  2, or (at your option) any later version. libDAI is distributed without any
- *  warranty. See the file COPYING for more details.
+ *  Copyright (c) 2006-2011, The libDAI authors. All rights reserved.
  *
- *  Copyright (C) 2006-2010  Joris Mooij  [joris dot mooij at libdai dot org]
- *  Copyright (C) 2006-2007  Radboud University Nijmegen, The Netherlands
+ *  Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  */
 
 
 /** \file
  *  \brief Defines some utility functions for (weighted) undirected graphs, trees and rooted trees.
- *  \todo Improve general support for graphs and trees.
+ *  \todo Improve general support for graphs and trees (in particular, a good tree implementation is needed).
  */
 
 
@@ -41,18 +38,10 @@ namespace dai {
 class DEdge {
     public:
         /// First node index (source of edge)
-        union {
-            size_t first;
-            /// \deprecated Please use member dai::DEdge::first instead
-            size_t n1;
-        };
+        size_t first;
 
         /// Second node index (target of edge)
-        union {
-            size_t second;
-            /// \deprecated Please use member dai::DEdge::second instead
-            size_t n2;
-        };
+        size_t second;
 
         /// Default constructor
         DEdge() : first(0), second(0) {}
@@ -80,18 +69,10 @@ class DEdge {
 class UEdge {
     public:
         /// First node index
-        union {
-            size_t first;
-            /// \deprecated Please use member dai::UEdge::first instead
-            size_t n1;
-        };
+        size_t first;
 
         /// Second node index
-        union {
-            size_t second;
-            /// \deprecated Please use member dai::UEdge::second instead
-            size_t n2;
-        };
+        size_t second;
 
         /// Default constructor
         UEdge() : first(0), second(0) {}
@@ -142,7 +123,7 @@ class GraphEL : public std::set<UEdge> {
         /// Construct from GraphAL
         GraphEL( const GraphAL& G ) {
             for( size_t n1 = 0; n1 < G.nrNodes(); n1++ )
-                foreach( const GraphAL::Neighbor n2, G.nb(n1) )
+                foreach( const Neighbor n2, G.nb(n1) )
                     if( n1 < n2 )
                         insert( UEdge( n1, n2 ) );
         }
@@ -260,39 +241,6 @@ template<typename T> RootedTree MaxSpanningTree( const WeightedGraph<T> &G, bool
 }
 
 
-/// Constructs a minimum spanning tree from the (non-negatively) weighted graph \a G using Prim's algorithm.
-/** \param G Weighted graph that should have non-negative weights.
- *  \note Uses implementation from Boost Graph Library.
- *  \note The vertices of \a G must be in the range [0,N) where N is the number of vertices of \a G.
- *  \deprecated Please use dai::MinSpanningTree(const WeightedGraph&, bool) instead
- */
-template<typename T> RootedTree MinSpanningTree( const WeightedGraph<T> &G ) {
-    return MinSpanningTree( G, true );
-}
-
-
-/// Constructs a minimum spanning tree from the (non-negatively) weighted graph \a G using Prim's algorithm.
-/** \param G Weighted graph that should have non-negative weights.
- *  \note Uses implementation from Boost Graph Library.
- *  \note The vertices of \a G must be in the range [0,N) where N is the number of vertices of \a G.
- *  \deprecated Please use dai::MinSpanningTree(const WeightedGraph&, bool) instead
- */
-template<typename T> RootedTree MaxSpanningTree( const WeightedGraph<T> &G ) {
-    return MaxSpanningTree( G, true );
-}
-
-
-/// Constructs a random undirected graph of \a N nodes, where each node has connectivity \a d
-/** Algorithm 1 in [\ref StW99].
- *  Draws a random graph of size \a N and uniform degree \a d
- *  from an almost uniform probability distribution over these graphs
- *  (which becomes uniform in the limit that \a d is small and \a N goes
- *  to infinity).
- *  \deprecated Please use dai::createGraphRegular(size_t, size_t) instead
- */
-GraphEL RandomDRegularGraph( size_t N, size_t d );
-
-
 } // end of namespace dai