See  Modules level for the last state of dependencies between libraries. This report has been generated with  boostdep.

Next follows a list of dependencies to be removed in order to break the cycles.

Cycle (MPL, TypeTraits?, Utility, TypeOf?)

Level 3

mpl ⇢ config0 core2 predef0 preprocessor0 static_assert1 type_traits3 utility3 type_traits ⇢ config0 core2 mpl3 preprocessor0 static_assert1 typeof3 typeof ⇢ config0 core2 mpl3 preprocessor0 type_traits3 utility ⇢ config0 core2 mpl3 preprocessor0 static_assert1 throw_exception2 type_traits3

MPL -> Utility -> MPL

<boost/utility/value_init.hpp>

from <boost/mpl/for_each.hpp>

Suggestion: Move value_init.hpp to Core?

MPL -> TypeTraits? -> MPL

Suggestion: Split MPL into MPL and MPL.Core, resulting in

MPL -> TypeTraits? -> MPL.Core

TypeTraits? -> Typeof

<boost/typeof/typeof.hpp>

from <boost/type_traits/common_type.hpp>

Suggestion: Create the submodule TypeTraits?.CommonType?

TypeTraits?.CommonType? -> TypeTraits? Typeof

Cycle (Context, Coroutine )

Level 10

context ⇢ assert1 config0 coroutine10 smart_ptr4 coroutine ⇢ assert1 config0 context10 core2 exception5 move3 range9 system3 throw_exception2 type_traits3 utility3

<boost/coroutine/detail/config.hpp>

from <boost/context/detail/rref.hpp>

Suggestion: Context should not depend on Coroutine.

Cycle (LexicalCast?, Math )

lexical_cast ⇢ array3 assert1 config0 container9 core2 integer2 math10 mpl3 numeric~conversion6 range9 static_assert1 throw_exception2 type_traits3 math ⇢ array3 assert1 atomic4 concept_check4 config0 core2 detail4 format6 fusion8 lexical_cast10 mpl3 predef0 range9 smart_ptr4 static_assert1 throw_exception2 tuple4 type_traits3

<boost/math/special_functions/fpclassify.hpp>

from <boost/lexical_cast.hpp>

<boost/math/special_functions/sign.hpp>

from <boost/lexical_cast.hpp>

Suggestion: Move these functions to a specif Math.SubModule?

Cycle (DateTime?, Serialization, Interprocess, Thread, Chrono, Pool, Spirit )

Level 12

date_time ⇢ algorithm11 assert1 config0 io1 lexical_cast10 mpl3 range9 serialization12 smart_ptr4 static_assert1 throw_exception2 tokenizer7 type_traits3 utility3 gil ⇢ algorithm11 array3 bind3 concept_check4 config0 core2 filesystem10 function4 integer2 iterator6 lambda7 lexical_cast10 mpl3 numeric~conversion6 preprocessor0 smart_ptr4 static_assert1 type_traits3 parameter ⇢ config0 core2 detail4 mpl3 optional5 preprocessor0 python11 type_traits3 utility3 pool ⇢ assert1 config0 integer2 thread12 throw_exception2 type_traits3 serialization ⇢ array3 assert1 config0 core2 detail4 integer2 io1 iterator6 mpl3 optional5 predef0 preprocessor0 smart_ptr4 spirit12 static_assert1 type_traits3 utility3 variant11 spirit ⇢ (unknown)0 algorithm11 array3 assert1 concept_check4 config0 core2 filesystem10 foreach10 function4 function_types5 fusion8 integer2 io1 iostreams11 iterator6 lexical_cast10 math10 mpl3 optional5 phoenix11 pool12 predef0 preprocessor0 proto10 range9 regex8 serialization12 smart_ptr4 static_assert1 thread12 throw_exception2 type_traits3 typeof3 unordered10 utility3 variant11 thread ⇢ (unknown)0 assert1 atomic4 bind3 chrono6 concept_check4 config0 container9 core2 date_time12 exception5 function4 functional7 intrusive8 io1 move3 mpl3 optional5 predef0 preprocessor0 smart_ptr4 static_assert1 system3 throw_exception2 tuple4 type_traits3 utility3 winapi1

DateTime?->Serialization

Suggestion: Create the submodule DateTime?.Serialization

DateTime?.Serialization -> DateTime? Serialization

Serialization->Spirit

Suggestion: Split the Serialization Module on two modules Serialization and Archive

Spirit->Serialization

<boost/serialization/vector.hpp>

from <boost/spirit/home/support/detail/lexer/serialise.hpp>

Suggestion: Remove the unused file.

Cycle (Bimap, PropertyMap?, DisjointSets?, Graph, GraphParallel?, MPI )

Level 15

bimap ⇢ concept_check4 config0 core2 functional7 iterator6 lambda7 mpl3 multi_index13 preprocessor0 property_map15 serialization12 static_assert1 throw_exception2 type_traits3 utility3 chrono~stopwatches ⇢ accumulators14 assert1 chrono6 config0 format6 system3 disjoint_sets ⇢ graph15 graph ⇢ algorithm11 any9 array3 assert1 bimap15 bind3 concept_check4 config0 conversion5 core2 detail4 disjoint_sets15 foreach10 function4 functional7 graph_parallel15 integer2 iterator6 lexical_cast10 math10 move3 mpl3 multi_index13 optional5 parameter12 preprocessor0 property_map15 property_tree14 random10 range9 serialization12 smart_ptr4 spirit12 static_assert1 test11 throw_exception2 tti6 tuple4 type_traits3 typeof3 unordered10 utility3 xpressive11 graph_parallel ⇢ assert1 concept_check4 config0 core2 detail4 disjoint_sets15 dynamic_bitset4 filesystem10 foreach10 function4 functional7 graph15 iterator6 lexical_cast10 mpi15 mpl3 optional5 property_map15 random10 serialization12 smart_ptr4 static_assert1 tuple4 type_traits3 variant11 log ⇢ array3 assert1 bind3 config0 core2 date_time12 exception5 filesystem10 function_types5 fusion8 intrusive8 iterator6 lexical_cast10 move3 mpl3 optional5 parameter12 phoenix11 preprocessor0 property_tree14 proto10 range9 regex8 smart_ptr4 spirit12 static_assert1 system3 thread12 throw_exception2 type_traits3 utility3 winapi1 xpressive11 mpi ⇢ assert1 config0 core2 function4 graph15 integer2 iterator6 mpl3 optional5 property_map15 python11 serialization12 smart_ptr4 static_assert1 throw_exception2 type_traits3 property_map ⇢ any9 assert1 bind3 concept_check4 config0 core2 function4 iterator6 lexical_cast10 mpi15 mpl3 multi_index13 optional5 serialization12 smart_ptr4 static_assert1 throw_exception2 type_traits3 utility3

Bimap->PropertyMap?

Suggestion: Create the submodule Bimap.PropertyMap?

Bimap.PropertyMap? -> Bimap PropertyMap?

PropertyMap?->MPI

Suggestion: Create the submodule PropertyMap?.Parallel

PropertyMap?.Parallel -> PropertyMap? MPI

Grapth->DisjoinSet?->Grapth

Suggestion: Move DisjoinSet? to Graph.

Grapth->GraphParallel?

<boost/graph/distributed/breadth_first_search.hpp>

from <boost/graph/breadth_first_search.hpp>

<boost/graph/distributed/concepts.hpp>

from <boost/graph/breadth_first_search.hpp>

<boost/graph/distributed/connected_components.hpp>

from <boost/graph/connected_components.hpp>

<boost/graph/distributed/depth_first_search.hpp>

from <boost/graph/depth_first_search.hpp>

<boost/graph/distributed/dijkstra_shortest_paths.hpp>

from <boost/graph/dijkstra_shortest_paths.hpp>

<boost/graph/distributed/fruchterman_reingold.hpp>

from <boost/graph/fruchterman_reingold.hpp>

<boost/graph/distributed/graphviz.hpp>

from <boost/graph/graphviz.hpp>

<boost/graph/distributed/one_bit_color_map.hpp>

from <boost/graph/one_bit_color_map.hpp>

<boost/graph/distributed/page_rank.hpp>

from <boost/graph/page_rank.hpp>

<boost/graph/distributed/rmat_graph_generator.hpp>

from <boost/graph/rmat_graph_generator.hpp>

<boost/graph/distributed/strong_components.hpp>

from <boost/graph/strong_components.hpp>

<boost/graph/distributed/two_bit_color_map.hpp>

from <boost/graph/two_bit_color_map.hpp>

<boost/pending/property_serialize.hpp>

from <boost/graph/adj_list_serialize.hpp>

Suggestion: Remove all the graph distributed specializations declarations in Graph as e.g.

#ifdef BOOST_GRAPH_USE_MPI
    template <class DistributedGraph, class ColorMap, class BFSVisitor,
              class P, class T, class R>
    void bfs_helper
      (DistributedGraph& g,
       typename graph_traits<DistributedGraph>::vertex_descriptor s,
       ColorMap color,
       BFSVisitor vis,
       const bgl_named_params<P, T, R>& params,
       boost::mpl::true_);
#endif // BOOST_GRAPH_USE_MPI

The definition of these specializations are already in GraphParallel?.